Web系でエンジニア採用やってる私が、もし学生に戻って就活するなら、やること7つ
Web系エンジニアとして数年働いた後に、エンジニア採用をしておりますムラカミです。
仕事柄、学生エンジニアや駆け出しエンジニアの方と話し、相談にのることも多いのですが、複数の方が共通して抱えるお悩みが見えてきたこともあり、相談の内容も似通ってきました。
そこで、仮にムラカミが学生時代に戻って勉強したり、就活したりするとしたらこうするなーっていうのをまとめてみました。
もし以下に書いてある内容を本当にやれるなら、新卒のエンジニアの就活で困ることは、現時点ではほぼないかなと思います。(書いてみたら、中途でもあんま困らんかもしれないレベルになった。)
前提:会社を代表した発言ではなく、一個人の発言です
これはムラカミが所属する会社を代表した発言ではなく、「こんなこと会社入って学んだから、自分が学生に戻ったらこうするな」という一個人の妄想でしかないことをご了承ください。
また、このムラカミの妄想は、所属する会社での経験の影響を受けていますが、Web系の会社をエンジニアとして志望するなら、それなりに汎用性のある内容と考えています。
1. 語れるプロダクトを作る
語れるプロダクトを作りましょう。
語れるというのは、作ったプロダクトに対して以下のようなことを説明できるということです。
これはもう100回くらい候補者様に言ってる気がします。
開発経験・制作経験・ポートフォリオが必要と思っている方は一定数いらっしゃいますが、その経験やポートフォリオに掲載されている内容を語れる方が意外と少ないです。
これは弊社の採用基準や採用人物像を無視しても、現場で必要とされる思考なので、語れるようになっておいて損はないかなと思います。
2. 何かしら、オーナーシップもって取り組む
会社ではチームで開発をする以上、チームワークやオーナーシップが大事になります。
チーム開発でなくていいので、何かしらにチームで取り組む際にそれをオーナーシップもって取り組みましょう。目的達成のために何が必要かを仮説をたて、それを複数人で実行していくサイクルは簡単なものでもいいので、回しておきましょう。
3. 研修ページを見てみる
よく候補者様からは、「新卒にどれくらいのスキルレベルが求められているかわからない」とよく言われます。その場合は、入りたい会社の研修内容を公開したページを参照してみるのもありです。
ちなみに、DeNAという会社の研修内容を一部公開したページは以下です。
技術研修で何を行ったかの概要が示されています。一部抜粋すると、
とあり、研修の終盤でチーム開発をするようです。逆に言えば、「研修終盤のチーム開発で一定の役割を果たせるくらいのポテンシャルは必要」 とも、自分が学生だったら解釈します。要件に基づき、仕様や設計を決め、チームで開発する力ですね。
研修経験者が↑の能力を、研修の前提として感じたようです。なら、そのようなスキルを習得しておいたほうがいいな、とも自分が学生なら解釈します。
4. 中途採用ページを見てみる
これは、研修ページを見ることの延長ですね。
中途採用のページを見ると、ほぼ必ず「求めるスキル」「あると望ましいスキル」みたいな内容が書いてあります。
例えばDeNAのこちらの中途の求人を見ると、以下のようにあります。
理論上、もしこの能力を持っているなら、中途社員レベル、つまり即戦力になるわけです。なのでもし、ポテンシャル採用が基本の新卒の就職をする時点で、上記のような経験を積めているなら、どこかに就職できる可能性は必然的に高まるでしょう。
(なお、中途だとポジション採用が多いので、言語やフレームワークの指定があるケース多いですが、新卒だとそうではない所も多いと思われるので、そこは要確認です。自分が所属している会社は、Go, Ruby, Java, C#, Python, Perl, C++, Swift, Kotlin, JavaScriptなど様々な言語を状況にあわせて使っています)
5. Skill Roadmapを見る
このようなロードマップを見て、自分がどれをどこまで理解していて扱えるか、を認識しておきましょう。全てをできる人はいないので、全てを扱える必要はないですが、無知の知が大事です。
どこに無知で、何が必要な知識かを認識し、少しずつ研鑽していきましょう。
6. 新しい技術を勉強する際、他の技術との関連や差分を意識して勉強する
エンジニアとしての人生を歩もうとすると、勉強の連続です。
なので、効率よく学習するのは割と大事な話になります。でないと挫折します。
自分がその際大事にしてるのは、最初は勉強時間を一定確保するのは前提として、新しい技術を学ぶ際にその技術同士の関連や差分を意識することです。
たとえば、
といった要領で考えてみるわけです。WebサーバーもApacheやらnginxやら色々あるし、開発手法もTDDやらDDDやらあるが、なぜ違うものが生まれたのか。
・技術Aは技術Bの何を解決したのか。
・何をトレードオフとしたのか。
・何を残された課題としたのか。
・従来の技術とは併用されうるのか。そもそも同じレイヤーの概念か。
といったことを考えるわけです。
RDBのペインを知っていれば、NoSQLが誕生した背景がわかりやすくなり、その技術の差分を理解し、学習するのが早くなります。Webフロントエンドとか進化が早すぎるので、マジこの辺意識しないと、嫌になって疲れます。
7. GitHubはアピールしたいリポジトリのピン留めを
8. (おまけ)制作物紹介には、動画/ソーシャルログインを!
まとめ
ということで、まずは思いついたものをまとめてみました。Web系のエンジニアやソフトウェアエンジニアを志す際に、少しでも参考になったら幸いです。
また、技術的なこと以外に、広くエンジニアや社会人としてのキャリアや人生について悩まれている方は、そういった方向けに3000円/hでコーチングを実施しております。ご興味ある方は、以下のTwitterまでDMでどうぞ。
え、マジっすか、サポートいただけるんですか? え、大感謝以外は、返せないですよ?