こんにちは @7riatsu です。
本記事は21新卒ソフトウェアエンジニア職の就活振り返り記事です。
自分が就活をする上でウェブ上に公開されている情報に大変助けられたため、新卒ソフトウェアエンジニア職で就活をしているorする予定の方の役に立てればと思い書きました。
就活経験を通じて得られた教訓や、企業名を伏せて各社の就活結果を書いています。
なお、本記事は DeNA 21 新卒 Advent Calendar 2020 の6日目分でもあります。(ネタバレ)
特にお伝えしたいことは、自分が就活をする前に知っておきたかったことや、就活をする際にやっておいてよかったことです。
対して、具体的な企業を推測できる内容については、内定承諾先を除いて記載していませんのでご了承ください。
自分の特徴としては、1年休学してエンジニア経験を積んだ、非情報系、プログラミング開始時期が遅めといった点と認識しています。共通点のある方には特に参考になるかもしれません。
本記事の目次は、以下となっております。
前半は自分についての話が多くなってしまっているので、興味のない方は ソフトウェアエンジニア職の就活tips から読んでいただけると、自分が本記事で一番お伝えしたかった就活をする際に役立ちそうなことを把握できるようになっています。
自己紹介
東京都立大学の学部4年生です。専攻は工学(機械系)です。プログラミングは長期のインターンでの開発を通じて学びました。大学の授業ではほとんどやっていません。コンピュータサイエンス系の知識(アルゴリズム、低レイヤーなど)に弱い自覚があります。
大学1年生の5月から職種を問わずインターンをしていました。(ウェブマーケティング/プロダクトマネージャー(以下PdM)/ソフトウェアエンジニアなど)
大学3年生から4年生に上がるタイミングで1年間大学を休学して、PdM兼エンジニアとしてスタートアップ数社で働いていました。元々エンジニアリングのわかるPdMになりたいと思い1年間でエンジニアリングスキルを身に付けて、PdM職で就活するぞと休学を決意したのですが、エンジニアリングの奥深さに魅せられた結果、ファーストキャリアはソフトウェアエンジニアとしてスタートすることにしました。
プログラミングは大学2年生の12月に始めました。そのため、休学期間を含めてプログラミング歴が2年と2ヶ月のタイミングで就活を開始したことになります。中高生や大学入学直後から始めている強い人が目立つ中、比較的遅い方かと思います。
最初は1人で簡単なWebアプリを作ったりしていましたが、途中から実務経験を積みながらスキル向上を目指すスタイルに切り替えました。休学していた間は創業直後のスタートアップで働くことが多かったため、PdMとして開発全般を見たり、エンジニアとして手を動かしていました。時間比率としてはPdM:エンジニア=3:7くらいの感覚です。
ちなみに大学の夏や春の長期休暇に合わせて開催されるエンジニアインターンには参加したことがありません。これは後ほど言及しますが、参加しておくべきだったと非常に後悔しています。
就活開始タイミングのスキル感
就活を開始したタイミングでの自分のスキル感を列挙してみます。
-
アルゴリズム: 受けた企業のうちコーディングテスト通過は半分くらい。AtCoderのABCのA~C問題はほぼ解けるが、D問題以降は壁を感じていた。
-
フロントエンド: あまり得意ではない。既存のコードを参考にしながら開発を行うことはできていた程度。CSSに苦手意識がかなりある。
-
バックエンド: バックエンド開発を担うことが多かったので最も得意。Ruby on Rails, Node.jsが特に得意で、一応Goも使える。一番得意なRailsでは、サブスクリプション課金やポイントシステムなど難易度の比較的高そう(主観)な実装も行っていた。
-
モバイル: ほぼ未経験。見様見真似でFlutterのコードを書いていた時期もあるが開発速度はすごく遅かった。一時期Swiftを独学したがあまりハマらなかった。
-
インフラ: 得意でも苦手でもない。クラウド系のサービスは触ったことがあるが、表面的にしか理解できていない感覚がある。
-
低レイヤ: OSやコンパイラの自作系のプロジェクトを途中までやったことがあり、ざっくり仕組みを知っている程度。
まとめると、特にバックエンドが得意で、その他は少々かじったことがある程度と思っていただけると良さそうです。
企業の選定基準
自分が応募や内定承諾するにあたっての企業の選定基準は以下でした。
-
企業規模: 大企業。いわゆるメガベンチャーを受けるケースが大半だった。スタートアップ経験を積んだ結果、大企業の方が今の自分にはメリットがあると判断。
-
カルチャー: 新卒でも色々任せてもらえそうか、面談や面接で会った人たちの雰囲気が自分に合うかどうかを見ていた。前者は具体的な例や数(新卒の活躍事例やPdMになっている人の数)を聞いて、後者は自分が心地よく働けそうかをフィーリングで判断した。
-
技術: 新しい技術を取り入れる姿勢があるかどうか、技術的な強みを持つことを裏付ける理由があるかどうかを見ていた。 逆にあまり重視しなかった点は以下です。
-
事業領域: どうしても携わりたいと思うようなドメインがなかったので、そこまで意識しなかった。ただし人の役に立つ、幸せに繋がるようなものを作りたいとは常々考えていた。
-
会社の自由度: 自分が受けていたウェブ業界は比較的自由な雰囲気の会社が多そうだったのであまり意識しなかった。
-
待遇: 高い方が良い(それはそう)とは思ったが、1-3年でどうこうというより、長い目で見てプラスになりそうかを意識した。
就活結果
先に結果をお伝えすると、8エントリーして3内定、4落ち、1辞退でした。
選考期間は大学3年生の2月から大学4年生の7月の5ヶ月間です。
前提として応募したのは全てサーバーサイドエンジニアかソフトウェアエンジニアの募集です。明確にフロント,モバイル,インフラ,機械学習を指定した職種には応募していません。
また、コロナ禍がすでに始まっていたため、A社を除いてオンライン上で完結する就活となりました。自分は都内に住んでいますが、移動がなかったので時間と交通費の節約になり良かったです。特に不都合を感じることもありませんでした。
それでは大まかな時系列に沿って各社の振り返りをします。
A社
2月に初旬にエントリーして、2月中旬にホワイトボードコーディングインタビューで落ちました。逆にここで落ちて発破がかかり、本格的に就活と向き合えました。
B社
3月初旬にエントリーして、即内定をいただけました。内定が出たのが3月初旬で、就活開始直後のタイミングだったのでその後控えていた他の企業の面接にリラックスして臨むことができました。一つ内定を持っているだけで精神的余裕に天と地ほど差が生じるので早めに内定を一つ獲得できると良さそうです。
C社
3月下旬にエントリーして、4月中旬に内定をいただけました。企業の選定基準とも合っていましたし、なんとなく自分に合いそうな雰囲気を感じていたので、就活開始時の志望度は最も高かったです。しかし、最後の最後までH社と悩んだ結果、内定を辞退する運びとなりました。
D社
3月下旬にエントリーして、4月中旬に次が最終面接というタイミングで志望度の高かったC社から内定をいただいたため、選考を辞退させていただきました。
E, F, G社
これらの企業は3月から4月にかけてエントリーして、4月中旬にコーディングテストで落ちてしまいました。 自分が受けていたいわゆるウェブ業界では珍しく、G社だけSPIがありました。ほとんど対策をしていなかったので手間取った記憶があります。
H社
3月下旬にエントリーして、7月初旬に内定をいただくことができました。こちらの企業は複数回インターンの選考で落とされていたことがあったので、ダメ元で応募していたのですが予想に反してスルスルと進むことができました。インターンで落ちても本選考は通過する場合もあるようです。採用プロセスが比較的ゆっくりだったことと、二次面接通過までコミュニケーションを取る機会が少なかったため、当初の志望度はそこまで高くありませんでした。しかし、最終面接前から内定後にかけて非常に手厚く面談を組んでいただき企業理解が進んだため、志望度が急上昇しました。最後の最後までC社と悩んだ結果、こちらのH社の内定を承諾しました。(チームによると思いますが)少数精鋭で事業を作っている雰囲気や、エンジニア出身者がPdMをになっている事例の多さ、ロジカルに物事を進める雰囲気が内定承諾の決め手でした。
振り返ると面接までたどり着けた企業はほぼ落ちていないのですが、コーディングインタビュー/テストで落ちすぎですね。自分の勉強不足が露見してしまいました、、。
逆に面接は得意な自覚がありましたが、振り返ってみると結果に反映されていることがわかりました。
結局どこ行くの?
記事冒頭でネタバレしてしまいましたが、DeNAに入社予定です。職種はソフトウェアエンジニアです。就活結果に記載していたH社はDeNAでした。内定承諾をした理由は上に記載してある通りです。
来年から働くのが楽しみです!
ソフトウェアエンジニア職の就活tips
ここからは就活を経験した結果、事前にやっておいたり、知っておくと良さそうなtipsを主観的に書いていきます。自分が就活をする前に知っておきたかったことと、自分が就活をする際にやっておいてよかったことがあるので、分けてお伝えしていきます。
就活をする前に知っておきたかったこと
長期休みのインターンには絶対に参加した方が良い
各社夏と春にインターンを開催していますが、絶対に参加しておくのがおすすめです。自分は携わっていたプロジェクトの兼ね合いで参加できなかったのですが、本選考にエントリーする際に参加しなかったことをかなり後悔しました、、。
企業側からすると本選考に繋がる超大事なイベントな訳で、自社の魅力を存分に伝えるべく力を入れて企画しているはずです。参加することで企業によっては本選考が有利になったり、カルチャーのような言語化が難しい側面を身を以て体感できると思います。期間に関しては参加できる数は減ってしまいますが、1-3日程度のプログラムよりある程度長いプログラムの方が実態を知れると思うので良いと思います。
あとは同年代のエンジニア達と繋がりを作っておくと就活時期に情報共有ができて良さそうです。自分は同年代の知り合いが極端に少なかったので情報収集に手間取りました。
コーディングテスト/インタビューの準備は必須
自分が受けたようないわゆるウェブ系の企業では、大体エントリー後にコーディングテストが最初に課されることが多かったです。ここを突破できないと面接にすらたどり着けず、受験で言えば足切りを食らうも同然なので、しっかりと準備が必要だったなと思います。また、面接時にホワイトボードにアルゴリズムを書かされるコーディングインタビューにも遭遇しました。
これらの対策としては、いわゆる競技プログラミング系の練習サイトで練習したり、人に説明しながらホワイトボードや紙にプログラムを書く練習をすると良さそうです。
内定承諾の基準は選考開始前に考えておく
自分はC社とH社どちらの内定を承諾するか非常に悩みました。悩んでいる時間が長いほど、その他のことに割ける時間が減るのは自明です。悩む時間を減らすためには、選考開始前にある程度内定承諾の基準を考えておくと良いと思います。
自分の場合、選考が進むとあれこれと比較項目が増えてしまい、自分が本当に大事にしたい判断基準を見失ってしまいました。本当に大事にしたい基準は多くないはずです。ここだけは譲れないという基準を1~3個程度明確にしておくと自分のように決断に時間をかけすぎずに済むと思います。
普段使っている技術は深掘りしておく
自分が普段使っている技術は深掘りしておくと良いと思います。技術はあまり深く理解していなくても動かせてしまう場合がありますが、それでは少し外れたことをやろうとしたり、問題が起こったときの対処が取れなくなりがちです。この人はどの程度深く技術を理解しているのか、普段どのように技術と向き合っているのかという観点を見られるので、日常的にしっかり深掘りする癖をつけるのが大事そうです(自戒)。
具体的にはその技術の動作原理、生まれた背景、何を解決するものかを把握すると良いと思います。
就活をする際にやっておいてよかったこと
内定しても行かない会社にはエントリーしない
内定をたくさんコレクションしても結局は一社に決めるので、無駄にいく気のない企業を受ける必要はないと思います。内定がない状態ならまだしも、一つでも納得のいく内定が出れば絞って良さそうです。
面接はある程度回数をこなして面接慣れする
無駄にエントリーする必要はないと思う一方で、受ける企業を絞り過ぎる(1, 2社だけ)のもどうかなーと思います。理由としては、面接で聞かれる内容は大体どこの会社も似通っていて、回数をこなすことで面接慣れするからです。
絶対どこでも受かる自信あるぞという強い人は別として、いきなり本命企業の面接にいくよりも、ある程度面接慣れした状態で行った方が、無駄を省いてエピソードを話せるようになったり、面接に対して緊張や恐怖を抱かなくなると思います。
落ちても自分を責めない
採用に落ちても自分を責める必要はないです。企業や面接官との相性、コーディング面接の問題との相性など、どうすることもできない要素で落ちたかもしれませんし、単純に運が悪かっただけかもしれません。どうして失敗したかはきちんと振り返った方がいいと思いますが、そのあとは割り切ってしまうのが精神衛生上良いなと感じました。失敗を引きずってその後の選考に悪影響を与えることは一番避けなければなりません。
面接を楽しむ
結局のところ、面接は人と人とのコミュニケーションの場です。同じ1時間を過ごすなら、打ち解けた雰囲気で相互理解できるのが最良です。
自分の面接時はかしこまりすぎず、お互いに楽しめるよう打ち解けた雰囲気を作るようにコミュニケーションを取るようにしました。自分の緊張は相手にも伝播するので、「緊張しすぎず楽しんでいくぞ」というマインドで臨むと、自然と良い結果に繋がると思います。
まとめ
随分と長くなってしまいましたが、最後まで読んでいただいてありがとうございました!
これから就活をする方々の参考になる内容となっていれば幸いです。
もしこの内容が参考になると思ったら、SNS(Twitter, はてなブックマーク, Facebookなど)で拡散していただいたり、就活中の友達にリンクを送っていただけると大変励みになります!
また、DeNA 公式 Twitter アカウント @DeNAxTechでは、 Blog記事だけでなく色々な勉強会での登壇資料も発信しているのでぜひフォローして下さい。
最後に、何か聞きたいことや要望などがございましたら、Twitterの @7riatsu までDMやリプライにてご連絡いただけますと幸いです。