LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

一般人がエンジニアを目指して-1年未満目-

Posted at

Hello World. matonです。

上皇の命を受けQiita初投稿です。
この記事ではマイPCもなかった素人がIT周りを色々かじりまくって1年経たない時点から今までをざっと振りカエル(!?)ものとなっています。
いかんせんアドカレはおろかこういう記事を書くのも初験なので、つたない文章が長々と書き連ねていることはあらかじめ申し上げておきます。
それではどうぞ。

なんだこのヘビ!?

まず自分の生態から先に説明します。
遺伝子レベルでネットMEMEが刻み込まれたヘビのように見える生物で、文章では高頻度でネタを挟みます。
変温動物のため持病の蕁麻疹が辛いのが悩みです。
好物は🍎です。がOSはMicrosoft製です。
いい加減エンジニアっぽい話題に移りましょう。
主な使用言語はPython,C++で、フロントエンド周りの言語も一応読めます。直近の目標は何でもいいからオリジナルアプリを開発してその実績を盾に共同開発の経験をすることです。(友達いないの?という声は心のバグの原因になりうるので安易に用いるのは控えましょう)
趣味はkindleでITの入門書、技術書を読んで頭の中でレベルアップの音を聞くことです。最近は機械学習の実装や理論をサンプルコードを写経して勉強しています。
それに限ったことではないですが、勉強は時に辛くまるで将棋のようなものです(?)。記憶に新しい挫折の経験の一つについて、きっと多くの人も経験したであろう出来事をお話しします。

欠けてる前提

エンジニアにおいてコーディングできることは、数学でいえば読み書きができることと対等なほどに当たり前であることを最近感じています。数学の試験では数字を書くだけでは点は与えられません。内容がどうなのか、それが重要なのです。言語の入門書でありがちな変数の説明から始まるタイプの本は、未知の言語を学習するくらいしか自分はもう読まないと思いますが、書き方しか学べないものがほとんどだと思います。配列を例に挙げても、配列が何か、それがどう扱われているかを知っても、実際に使わなければ学びにはならないことは意識すべきだと思っています。

自分はOpenSiv3DというC++で書くゲームエンジンでゲームを勉強していますが、まぁ辛いのなんのって。そもそもGUIアプリ開発の経験もないまま取り組んだので、ライブラリの関数の書き方や基本的な変数の取り扱いすらもわけがわからないままサンプルコードをいじったり色々貼り付けたものを実行して挙動を確認したりしてとりあえず慣れることに注力するやり方をとっていました。今思えばアルゴリズム(といってもfor,ifレベルの)をうまく使えていなかったからだと思うのですが。

なんの何の話でしたっけ?そうそう素人の失敗談でしたね。
その程度の突っかかりなら調べるなり有識者に聞くなりChatGPTに丸投げするなりで解決しますが、直接コードで現れない問題もあるわけですね。あれは長いGitのインストールを終え、本にあったCommitというのを実行しようとコマンドを打った直後でした。見たこともない別の黒い画面が現れ、閉じることも理解することもできずあれやこれやして何とか実感の湧かないCommitを達成したという、小さな、小さな躓きでした。先輩はこれを使いこなしているのか、これは何も特別な技術ではないのか、力を一つ身に着けるたびにそれを難なく使える先人に畏怖する思い、自分がワンピースの頂上決戦でルフィが海軍三大将に挑むときのようにいかに無力なのか自覚する瞬間、ヘビは地を這うしかないのでしょうか。

ドン暗いをしましたが、要はプログラミングという小手先の技術よりも重要な考え方やツールが存在するから、そんなささいな(そう、実にささいな)ことで躓く新たなエンジニアの種に水をまきたいということです(冷やかしじゃないよ?)。
過去の話は歴史と黒歴史ぐらいにして、今後の抱負について語っていきます。

人はみな誰かの教育者

何かの初心者なんていくらでもいるでしょう。その道の専門家も一定数いるでしょう。しかしその道中にいる人間はどれほどいるでしょう。そのような人間にスポットライトを当てられる機会はあるでしょうか。エンジニアを目指すと言いながら、本当はティーチャーを目指しているのではと思う節が自分にはあります。ここで言う教師とは偏差値50を60にすることを目指すのではなく、今の50を45にすることを目指す者を指します。つまり、ポテンシャルがある人をさらに伸ばすことは他に任せ、全体の能力の底上げを自分は担当したいということです。自分は学校が嫌いなので教員免許は取りませんが。

本人たちに自覚はなくとも、自分は多くの学びを得られる、少なくともその意欲が湧かさせられる人間に囲まれています。時に辛く、その意味も見失いそうになっても、自分が勉強を続けられる理由たちがいます。自分も後の世代にとってそのような存在になりたいと思うわけですよ。技術は自分だけのものではないわけですしお寿司。

クラスは継承できても自分の技術は継承できないエンジニアを優れているとは言いたくないのです。自分の一挙一動が他者にどう見られているか、それが他者の行動にどう影響を与えるのか、大いなる力には大いなる責任が伴うと紀元前4世紀から言われていますが、自分以外の責任を背負うことができるかどうかがその人の行く先を左右すると自分は考えています。どう見られてるかなんて気にしてたらこんなネタにしかされない記事は書かないわけですが。

誰がための悪魔か

何か作りたいから本を読んでたんですが、とある先輩エンジニア的には「こいつなんか作る気あんのか?」と思われていたようです。確かに本という媒体の情報はどれだけ現時点から早く出版されていても、鮮度で言えばそこらのブログや記事には劣るわけで、情報収集するならそちらを主にする方が最終的には吉なのでしょうが、それってあなたの感想ですよね?

今はブイブイ言わせている人でも、初めからそうだった人は異世界転生したなろう系主人公ぐらいしかいないのではないでしょうか?何事にも段階は存在し、段差を上るときに躓くことは誰しも経験があるはずです。何が言いたいかというと、愚直に素人ムーブをかます奴がいれば、自分だったらこうしてるぜ!ってことを言って優越感に浸れば、言った側は気分がよくなり、言われた側は一つ学びを得ることでWin-Winじゃねーの?ってことです。

「馬を水辺に連れていくことはできても、水を飲ませることはできない」という故事があります。我々も道を示すことはできても、その道を強制することはするべきではないし、そもそも不可能であるわけです。しかし、砂漠で迷う旅人にコンパスを渡し、「こっちにオアシスがあるから、頑張って歩いてね」と言うことがその人にとって救いになるのでしょうか?それは見守りではなく放任であると自分は思うわけです。

何も手取り足取り白刃取り介護すべきと主張するわけではないですが、オアシスを示す人だって、一本道でたどり着いたわけではないはずです。でしょ?その人の軌跡をたどるだけでも、砂漠をさまようよりはマシな学びがあるはずです。自分はそれをわかりやすく示すために日夜読書報告を次世代に技術を継承させるためにしています。実際にやらないと身につかないという主張はわかります。私も結局そうやって学んだし。

一方、そのような学習の伝承は本当にその人のためになるのか、確信があるわけではありません。私もまた一人の旅人であり、オアシスという幻覚を見ている狂人かもしれないからです。自分のマネをしてほしいとは到底思っていません。が、そんな私でも誰かの先人になり、半ばその人の能力について一定の責任を持つ(持たされる)時が今まさに来ようとしている(少なくともそう思っている)わけです。ある意味で自分は誰かを堕落させる悪魔にならざるを得ないのです。それは自分の実力不足でしかないのが原因ですが。

そのせいでわかりやすさを優先し、本質的ではない理解を助長させるような書物を布教することになっても、私は同じやり方を続けると思います。なぜなら、最初から完璧になることを目指すのは傲慢と無知ゆえの発想でしかないことを悟っているからです。仕組みがどうであるかを理解することを理想とし、まず独力で実装できることを目指す。それがどれほど単純なコードでも、できなかったことができるようになることが重要だと愚かな初学者は思うわけです。

何かを専門にして食っていくつもりなら完璧以上を目指さなければなりませんが、まだその方向性を持たないビギナーはITの常識を身に着けるところから色々広く浅くやればいいんじゃないかなと思います。狭い視野しかないとそれしかできないエンジニアの出来上がりだとどこかで誰かが言っていたような気がします。そしてそんな悪を布教する自分は、自分が悪魔になることを受け入れるつもりです。私の誤った悪を教えられた人でも、悪ならばそれを正すことができるという可能性をまだ信じているからです。

いや何を言ってんだこいつは

End Rollは終わらない

まだ読んでたの!!? 君は実に暇だなぁ。(クソ花)

そろそろ読者の時間を奪うことが心苦しくなってきたので、最後に有益な情報を残して締めといたします。これを読んでいる人は技術に詳しい人か自分の知り合いか野次馬かのどれかだと思いますが、技術それ自体に傾倒しては本末転倒だということを、私がわざわざ言うことではないですが、ここで記しておきます。人が対価を払ってでも手にしたい技術は、それが技術的に優れているかどうかだけでなく、それが相手にもたらすものに価値を見出されているから存在しているのです。ゲーム一本とっても、大手企業が出して大コケすることもあれば、インディーズゲームが世界を動かすこともあるわけです。技術のその先に目を向ける意識を忘れないことを覚えてくれれば、私のこの徒然なる長文もあなたにとって意味のあるものになるのではないでしょうか。

記事は終わりますが、私の人生はまだ続きます。あなたもおそらくまだ終わらないでしょう。

それでは、ここまでお付き合いくださり、

本当に

本当にありがとうございました

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up