技術試験



今日、とあるWeb系企業様の二度目の採用面接で、技術試験を受けた。
実際に動いているアプリケーションに対してある項目を追加するという課題で、それに伴う記述も簡単なものだった。


結論から言うと、現時点ではまだまだ技術的に足りなかった。
担当してくださったエンジニアの方々は自分が緊張しているのを察してなんとか実力を出し切れるよう配慮して頂いたのに、申し訳ないくらいできなかった。
モニターに向かいながら「緊張しすぎて頭が回らない……マズいな」と思ったけど、要因はもっと根本的な部分だった。


今回、どれだけ緊張していようとタイピングして文字入力することはできた。
あの課題内容は実際にアプリケーションを作るにあたって頻繁に書くような基礎の部分であり、目をつぶっててもタイピングできるのと同じように「身体が覚えている」必要のあるスキルだった。


Web企業に入社してプロジェクトに参加するということはプログラミングのお勉強教室に入るわけではなく、目まぐるしく成長していくサービスを牽引する形でそれ以上のスピードでコードを書いていく必要がある。
必要最低限の基礎的なスキルについては、たとえ緊張していようが環境がいつもと違おうが、寝起きにパソコン渡されて「はいスタート」という状況だろうが難なくこなせるくらいのレベルで「身に付けておく」必要があった。
これはたとえ未経験者を歓迎している企業でも同じことだと思う。






これは本当に恥ずかしい話で、インターネットの海に流すのはためらわれるけど、自戒の念を込めて書いておく。


ここまで独学でやってきて、いわゆるスクールに通わなくて良かったと感じる点が一つある。
スクールだと他の受講者と並んで学習するわけで、そこで周りの受講者と自分を見比べて「おっ。自分なかなかできてるじゃん」と初心者レベルで満足していた可能性があった。
つまり「低いレベルで満足して慢心してしまう」ということ。


それを分かっていながら、ネットを通じて同じような現象に陥ってしまっていた。
ツイッターで情報収集をしていくなかでいわゆる「#駆け出しエンジニア」の枠に自分を当てはめ、2,3個動くアプリケーションを作ったくらいで心のなかでは調子に乗っていたんだと思う。書いててゲロ吐きそうなくらい恥ずかしい話だ。


今回の課題だったRails/Vue.jsの基本的なスキルに関しても、一度動くものを作って頭で理解できたから大丈夫だろう、と思ってVue CLIを使ってみたりNuxt.jsを調べてみたり、結果として基礎の部分をすっ飛ばしてしまっていた。


「エンジニアとして重要なのは暗記ではなく、仕組みを理解して参照先の情報を頭に入れること」というような文言を真に受けすぎたかもしれない。
ただRailsのモデルにカラムを追加するのにいちいちビクビクしてたんじゃ話にならない。とてもじゃないが実際のプロジェクトには参加できない。


結局は、書いてきたコードの量が全然足りなかった、という話。


今後はさらにバシバシ自作のプロダクトを積み上げていく。その過程で基礎的な部分は自信を持って書けるようにとにかく数をこなして経験を積む。
そして、また同じ轍を踏まないとも言えないので、Wantedly経由で企業に話を聞きに行って「その程度じゃ話になんねえぞ、クソたわけが。アホか」と言ってブン殴ってもらう機会を設けたいと思う。


これまでお会いしたエンジニアの方々はどの方も柔和でスマートで、採用過程においても新卒時にスーツを着て就職活動をしたときのような無駄な謎の儀式や堅苦しさがなく、とても合理的で魅力的な、これまでの自分からすると別世界のように感じた。


そんな業界に自分もエンジニアとして参加するため、今まで以上に速いサイクルでアプリケーションを作っていく。
そして喜ばしいことは、自分がその過程を「汗水たらして苦しんで取り組むべき課題」とは微塵も感じてないという事実。


プログラミングそのものを楽しくて仕方ないと感じるのは、エンジニアになる上で有効なパスをひとつ持っているようなものだと思う。
努力するべきことがあるとするならば、腰痛の予防だろうな。