はじめに
こんにちは、しんりゅう (@shinryuzz__)です。
僕はソフトウェアエンジニアとしてキャリアを築きたいと考えている大学院生です。 今はサマーインターンの選考が終わり、本番に向けて体力を蓄えているという状況です。 就職活動自体はまだ終わっていませんが、自分の中では一区切りついた部分もあるため、このタイミングで何か書き残しておこおうと思います。
まず筆者について。 僕は九州在住の修士1年(非情報系・電子工学専攻)であり、今までソフトウェアエンジニアとしてインターンシップに参加したことはありません。 そのためこの4ヶ月ほどの経験は全てが初めてで、その中で学べたこと非常に多かったですし、ここで得られたことは僕と同じような環境の学生の方にもきっと役に立つのではないかと思います。
ということでそこら付近も参考にしていただきつつ、読んでいただければ幸いです。 どうぞよろしくお願いいたします。
本記事の目次は以下になります。 (Table of Contents 機能を早く実装したい。。)
- はじめに ← イマココ
- 目的と目標
- 選考結果
- 逆求人イベントの活用
- 技術面接対策
- さいごに
目的と目標
まず、僕が設定したサマーインターンの目的と目標を述べます。 上述の通り、インターンに応募するのは今回が初めてでした。 これまで地元のいくつかの企業で開発経験はあるものの、インターンを通した有名企業のつよつよエンジニアの技術力や雰囲気、全国の同年代のレベル感は全くと言っていいほど知りませんでした。 そのため、自分の能力を客観的に測る機会もなく、そこにむず痒さを感じながら日々を送っていました。
そこで「現時点の自分の技術力を客観的に知ること」を目的としました。 (...と、綺麗に書いていますが、今になって振り返ったときに、このように理由づけすると綺麗に納得できるなあという部分が大きいです。)
これはインターンの本番自体だけがこの目的達成に寄与するわけではありません。 選考結果自体はもちろんですが、選考過程で得られる学びや気づき、フィードバックも目的達成のための大きな要素になります。 つまり、腕試し的な気持ちが非常に大きかったということです。 「インターン先で何をやりたいか」より「インターンの選考&参加によってどれだけ学びを得られるか」という気持ちの方が圧倒的に強かったと思います。
以上をもとに目標も自然と定まります。以下の2点にまとめました。
- 「企業とできる限り接点を持ってフィードバックをもらう」
- 「一般的に高倍率・高難度な企業に応募してそこに参加する」
また、「エンジニアの方と楽しく話して企業で働くエンジニアの人物像を知る」ということも非常に大事にしました。 普段エンジニアの方と話す機会が少ないため、エンジニアの方々と話したいという思いがとにかく強くありました。 そのため、座談会があれば積極的に参加したり、人事の方に直談判してエンジニアの人と話す機会を設けていただいたりしました。
以上が目的と目標になりますが、非常に漠然としたものだと思います。 これはインターン経験が(少)ないから、と言わざるを得ません。
僕の普段の環境には、ソフトウェアエンジニアを目指している人がほとんどいません。 常に孤軍奮闘的な状態であるため、このような考えに至るのはごく自然なことかもしれません。 ...と環境のせいにするのはよくありませんね。 自分で動こうと思えば動けましたし、学部生の時はソフトウェアエンジニア関連以外にもたくさん手を出してモラトリアム的な時間を満喫していましたから。 やっぱり僕にとってはちょうどいいタイミングだったのかもしれません。
選考結果
長くなりましたが、ここからが具体的な振り返りになります。 まず、選考結果は以下のようになりました。
合計エントリー社数: 6社
内訳: 3社通過(1社辞退)、1社最終面接後に辞退、2社不合格
この6社の中にはいわゆるメガベンチャーと呼ばれる企業も3社ほど入っており、1社は参加確定、1社は選考途中で辞退、もう1社は落ちました。 元から興味があった&一般的に狭き門と呼ばれている企業の選考にもパスすることができたため、素直に嬉しかったです。
途中で選考を辞退した2社は、大学院の活動や他社のインターンとのスケジュールの都合によるものでした。 企業からすれば、「じゃあ最初から応募しないでほしい」というのがごもっともな気持ちだと思いますが、ここは学生の特権を行使して、利己的に考えさせていただきました。 できる限り多くの接点を持って企業のことを知り、自身の学びを得る機会も増やそうということでこのような選択を取りました。 ご迷惑をおかけしてすみません。
また、途中で辞退したものの非常に魅力を感じた企業もありました。 そちらの企業については早期本選考も行っていたため並行でエントリーし、なんと内定をいただくことができました。 僥倖としかいいようがありません。。
不合格の2社については、1社はコーディングテスト、もう1社は人事面接で落ちました。
前者は今まさに脂が乗っているスタートアップ企業で、超少数精鋭でつよつよエンジニアたちがプロダクト開発を推し進めているといった雰囲気でした。 そのため選考基準もかなり厳しく、コーディングテストは満点近く取らないと通過できなかったのではないかと思います。組織規模的に受け入れ人数も必然的に少なくなるはずですし。
後者は某メガベンチャー企業で、以前お世話になった企業の代表がここの出身であったために受けました。 こちらもコーディングパスがあったのですがそれは通ったものの、次の人事面接で学生時代のエピソードについてかなり深ぼられ、曖昧に答えてしまいました。 そこで一貫性がないと評価され、不合格につながったんじゃないかなと勝手に考察しています。
ここからは就活で役立ったサービスや自分が行った対策、気づきなどを述べます。
逆求人イベントの活用
まず、逆求人イベントを行なっているサービスに登録しました。 具体的には、以下の2つです。
これらのサービスは、絶対に登録すべきです。地方在住で就活ビギナーな一般学生には、尚更おすすめです。 僕の場合、学部卒業後の3月末が就活を意識したタイミングで、このときに上記2つのサービスへの登録を行いました。
逆求人のサービスに登録して得られるものとしては、以下のようなものがあると思います。
- 本イベント参加に一定レベルの腕試しができる (イベント参加のためには書類選考を通過してなければいけません。この時点で一定の評価を得ることができます。)
- これまでの開発経験の整理・自己分析ができる (イベントに向けて5分間のプレゼン資料を作成する必要があります。強制的にこれまでの振り返り・自己洞察を行うことができます。)
- 運営スタッフからメンタリング・フィードバックが得られる。 (どれだけ自分の中で準備しても主観的にしか考えることができません。企業の人と会う前後で客観的なFBをもらうことで、自分でも気づかないような強み・指向性などに気づくきっかけになります。単純に就活に関する相談もできます。)
- インターン・本選考のプロセス短縮ができる (これが大きいですね。面談である程度評価されれば、書類選考やコーディングテストのパスをもらうことができます。)
- お小遣い稼ぎができる (イベント参加毎もしくは面談企業数、そして面談後のオファーの承諾などによって、アマギフがもらえます。僕も⚪︎万円くらいは貰いました。)
3月末から4月中旬にかけて、合計4回の逆求人イベントに参加しました。合計20社ほどの人事・エンジニアの方と話す機会を得ました。超有名な企業から、あまり知られてはいないけど非常に魅力的な企業まで、さまざまな企業が参加されていました。 どの企業との面談も非常に有意義な時間になりました。 ですが日によっては10社連続、朝10時から夜19時までというかなり過酷なスケジュールということもありました。。。 学生側も企業側もほんとに大変だと思います。
ここで僕が意識したことは、とにかくメモを取るということです。 イベントでは企業側のプレゼンの時間もあったため、そのプレゼンの印象から実際の面談内容、その他気づきや感想をメモとして残しました。 僕は記憶力がよくないため、ここで全ての企業のメモを取ったのは後々非常に役立ちました。 あらかじめ優先順位をつけて必要な企業のみメモを取るという方法もあると思いますが、僕は上述した目的と目標のために、ひたすらデータに残すことにしていました。
また、自己紹介プレゼンも非常に重要だと思います。 時間をしっかり投じる価値はあると思います。 自己分析につながることはもちろん、企業からの評価がよければどんどん選考免除になるため、投資対効果が高いです。 タイムテーブルは企業プレゼン→学生との面談という流れがほとんどであったため、企業プレゼンのメモをもとに企業ごとに逆質問を用意しつつ、それを自己紹介プレゼンに盛り込みました。
技術面接対策
僕が選考対策として重要だと思ったことは、以下の3点です。
- 就職活動に注ぐことができるリソースを把握する
- 享楽を共有できるような楽しい会話をする
- 技術面接用のドキュメントを作成する
それぞれについて説明します。
1. 就職活動に注ぐことができるリソースを把握する
まず僕は大学院生であり、学業と研究活動が最優先でした。 また、これらに支障をきたしてまで就職活動をやるのは3流だと考えていました。(半分冗談、半分本気です。) 限られた時間は決して多くはなく、その上で目的と目標を達成するために動く必要がありました。
ここで「就職活動に注ぐことができる時間」とは、通常の面接や面談の時間に加え、企業のリサーチ、エントリーシート作成なども当てはまります。 まさにエントリーシート作成やコーディングテストの対策・受験は、非常に時間とエネルギーがかかるものであるため、できる限りスキップしたいと考えていました。
そこで逆求人イベントの活用です。 これを活用して選考免除のオファーをいただける企業を探しました。 そして、選考免除によって浮いたエントリーシート作成・コーディングテストの時間を技術面接対策に充てることで、より効率よく選考を進められるように意識しました。
僕は幸い企業での開発経験がありました。そのため、そこでの学びや技術力をアピールできれば、ある程度評価していただけるのではという謎の自負がありました。 これが大きかったと思います。
とはいえ志望度は高いけどコーディングテストは避けられない、といった企業もあったため、それは腕試し気分で受けたりもしました。 ただし対策の時間などはほとんど設けませんでした。設ける時間なかったという言い訳をさせてください。(真っ当に考えて普通はすべきです。)
とにかく自分のリソースを把握して、その中で選考を通過できるような企業/選考方法選びと、それに向けた準備はしっかり吟味していたと思います。 講義や研究などが特に忙しくなく、アルゴリズムとデータ構造をはじめとするコーディングテスト対策など十分に時間が充てられる方はちゃんとしてください。
自分のリソースとできる/できない領域を見極め、その中で最大成果をもたらすことできるよう立ち回ることが、よりよい自己実現につながるのではないでしょうか。
2. 享楽を共有できるような楽しい会話をする
技術面接は、相当ハイレベルな人材を求めているインターン・企業でない限り、しっかりと準備をすれば落ちることはあまりないんじゃないかなと思います。 実際に僕はコーディングテストと人事面接で落ちた2社以外、すなわち残り4社の技術面接は、全てパスすることができました。 面接で話した内容自体も、とても高度なことではありませんでした。
どの企業も、面接で質問することは大体共通しています。
- どんな技術が好きですか?
- なぜこの技術を使ったんですか?
- 開発のなかで一番困難だったことは何ですか?
また、このような質問がくるようにわざと「隙間」を作ることが大事だと思います。 面接というものは会話であり、コミュニケーションであるため、ボールを投げ合ってお互い気持ちよく会話ができるように意識しました。 どれだけ面接官が偉い人であっても、ナーバスになっても、その方のバックグラウンドはエンジニアです。 どんな時でもエンジニア的な享楽を共有できれば、お互い笑顔になって、楽しく面接をすることができると思います。 例えば「静的型付け言語は気持チェェ。ですよね?」とか。
技術面接を担当するエンジニアは、これから自分と働く仲間を探しています。 ですので「この人と働きたいか?」という単純な問いが、最も重要でインパクトのあるファクターだと思います。 そのエンジニアの所属企業がどのような方針で採用基準を設けているかはわかりませんが、「この人と働きたいか?」はどの企業でも絶対に共通していることだと思います。
ここを満たせるよう面接をするなら、やっぱりエンジニアとして享楽を感じる部分を共有できることが一番だと思います。 僕はそんな面接が本当に楽しかったですし、面接してくださるエンジニアの方も嫌な気持ちはしなかったのではないかと思います。 楽しい面接は、面接という枠組みを超えると思います。 いち人間といち人間の、対話になります。
この点において、僕の場合かなり評価をしていただいたと思います。 僕は興味のある人に対して、その人のことをもっともっと知りたい、お互いのことを知り合いたいと思う性格です。 「人との対話を大事にされている方ですね。意外とそんな方は希少です。」といったFBは、本当にありがたいことにさまざまな方から頂くことができました。
もしかするとこれが僕の強みの1つなのかもしれません。 そして選考において技術力だけが重要ではないということですね。
面接をしていただいた企業の皆さま、本当にありがとうございました。
3. 技術面接用のドキュメントを用意しておく
これは 2. を補填するような項目になります。 2. を実現するために、僕はあらかじめドキュメントを作成しました。 要は自分の学習ノートです。 今まで自分が取り組んだプロジェクトを列挙し、それぞれについて上で述べた共通質問に答えれるように書き出しておく。 こうすることで、これまでのプロジェクトにそこそこの洞察を得ることができ、技術力向上にもつながると思います。
また、プロジェクト単位で切り出すだけでなく、技術領域やキーワードで切り出して自分の言葉でまとめたりもしました。 例えば「CORSって何か」など。 僕は以前取り組んだプロジェクトでCORSエラーに悩まされた経験があり、その際にCORSを理解する必要がありました。 こういったことを面接で述べ、「じゃあCORSについて説明してください」なんて聞かれたこともありましたが、事前にドキュメントにまとめていたため、大体の概要は話すことができました。
パーフェクトな回答ではなくとも、ここで事前に用意していたかいないとでは、回答に雲泥の差があるのではないでしょうか。 ドキュメントがあれば、ちょっと安心して面接に臨むことができます。 お守りになります。 もちろん、面接中に見返すとかはないですよ。 まとめる作業を通して頭にメモライズするんです。
ドキュメント作成を通して感じたことは、これらをまさにZenn とか Qiita とかに投稿すればよかったなあということです。 僕はそういったアウトプットは一切行っていなかったので、ちょっと後悔しました。 だからこれからは定期的に振り返りを行って、自分が躓いたことなどは記事という形で積極的にアウトプットしていこうと思っています。 (このブログももちろんその一環です。)
さいごに
今回の選考を通して感じたことは2つあります。
まず1つは、やっぱり実務経験は最強であるということです。 一定程度の実務経験を持った上で基本的な準備をすれば、大体のインターン選考は通過できるのではないかと思います。
とはいえ、地方に住む人にとっては、この「実務経験」というものが超難関であると思います。 もしかすると、夏のインターンや本選考以上に難しいかもしれません。 逆に少しでも企業で開発経験を積むことができれば、あとは雪だるま式にキャリアは育てていけるんじゃないかと思います。
僕は地方在住ながらも、幸いなことにご縁を頂き経験を積むことができました。 運がいいことは間違い無いのですが、ある程度運をあげれるように努力をしたつもりでもあります。 ここら付近の「地方で実務開発経験を積む方法(提案)」みたいなものは、いつかやる気が出れば別の記事にまとめようと思います。
もう1つは、インターンにもっと前から参加して経験を積めばよかったということです。 ソフトウェアエンジニア系のインターンは通常、卒業年に関係なく参加することができます。 また、夏に限らず通年行われています。 僕は就職を意識したタイミングでインターンを探し始めましたが、できればもっと若い頃からエントリーすればよかったなあと思います。 インターンを通して早いうちから腕試しをして自分の技術力を客観的に知ることができることは、この上なくアドバンテージになります。
もしこの記事を読んでいる方で、まだまだ卒業まで時間があるという学生の方がいれば、今すぐに実務経験を積める企業を探して、それと並行してインターンにもエントリーしてみてください。 若ければそれだけで大きすぎるアドバンテージになります。 実務経験がなくとも個人開発をしていればインターンの選考もパスできると思います。 はやく、はやく動いて、ソフトウェアエンジニアとしてのキャリアをどんどん築き上げていってください。
...
まだインターン本番が始まってすらないのに、こんな長ったらしく書いてしまいました。 インターン本番も、本選考も、これから頑張ります。
もしよかったら X (Twitter) をフォローしていただけると嬉しいです。 学生の方はなんでも相談乗ります。
ここまで読んでくださり、ありがとうございました。