世の中の一流企業ではエンジニアの育成システムというか、どうやって自前で強いエンジニアを育てていくかという議論が日夜行われている。
Qiitaや個人ブログでそのような記事は少し探せばいくらでもヒットするしどれも傾聴に値するものばかりだ。
しかし、自分の短いエンジニア人生を振り返った時そんなものとは無縁だった。
一番最初のインターン先では右も左も分からぬまま実戦でコードを書いたし、次の会社ではエンジニアの上司はおらず、フルコミのエンジニアがそもそも自分しかいない中でひたすらコードを書き続けた。
正直、かなり効率は悪かったと思う。
何度「自分にエンジニアの師匠がいれば」と思ったことだろうか。
自分と同年代のエンジニアや年上の方々がTwitter上でテックリードに就任された事を報告していたり、CTOとして活躍されている姿を見て心底悔しく感じた。
エンジニアとして差が広がっていく一方の状況を指をくわえて見ている他なかった。
自分も単純なコーディング時間なら変わらないはず。
プログラミングに対する熱意も負けてはいないはず。
技術的負債に対する責任・意識も同年代にしては低くはなかったと思う。(結局自分に全て返ってくるというのもあったが)
しかし、お世話になっていた先輩が何度も仰っていた言葉があった。
「僕は誰かに教わったことはほとんどないよ。分からないことは全部調べて解決してきた。」
最初は信じられなかった。そんなこと、あるはずがない。
独学であの領域に到達できるなら苦労はしない、と。
しかし、あれから強いエンジニアと会っていく中で、疑念は確信に変わった。
今なお第一線で活躍されているエンジニアは勝手に一人で強くなって、勝手に一人で結果を出していた。
信じられなかったが事実だった。
僕はまだその境地に到っていない。
何か新しい言語・技術を扱う時書籍(2次情報)を探し、座ってお行儀よく勉強しようとしてしまう。
これでは今最前線で闘っている方々に追いつけるわけがない。
とにかく汚くて良いからアプリケーションコードを書くこと。
とにかくこれを徹底していくように心掛けている。
汚くても良いから動くコードを実装してからその言語ではどう書くのが正解なのかを調べていけば良い。
最初からきれいに一本道で行こうとするから失敗するのだ。
現在は仕事でKotlin, Spring Bootを扱う可能性が高いので写経しているがとにかく自分の手を動かしてプロダクションに近いコードを書くようにしている。
文法や言語の機能を勉強をおろそかにするつもりはない。
しかし、いちいちそこを本を買って勉強していたのではサービスで使えるようになる日がいつ来るかわかったものではない。
分からなかったらその都度リファレンスを参照して調べれば良い。
まず動くものを作る。
汚かったらアーキテクチャを再考してリファクタリングを敢行すれば良いだけの話。
話が逸れてしまった。
今回はエンジニアはどう強くなるか
というタイトルだったか。
一流のエンジニアは誰かの助けを求めずとも勝手に強くなる。
ちなみに再現性があるかと言われたら低いと思う。
もしこれを万人ができるなら世の中にスクールなどのエンジニア養成機関は乱立していないだろうし、企業がエンジニア育成文化を推進するはずがない。
これを出来るのはごく一部の才能ある人の技なんだとは思う。
しかし、それができなくては一流になれないというのも一定の事実だと思う。
自分が出来るかどうかさておき、一流を目指すことを諦めるような真似はしたくない。
一流を目指すことを諦めた時点でそいつは敗北者だ。
俺はまだそうなりたくはない。
なれるかどうか挑戦してから決める。
というわけで、勝手に強くなって勝手に結果を出すべく明日からも頑張ります。