IT企業のソフトウェアエンジニア職を目指す方の中には「どういった対策をしたら内定できるの?」「プログラミングは大学から始めたけど大丈夫?」などといった疑問があると思います。
そこでGAFAMインターンに参加しメガベンチャー複数社に内定した方に、これまでのプログラミング経験、就職活動、選考対策、後輩へのアドバイスについて寄稿いただきました!
自己紹介とこれまでのプログラミング経験
GAFAMの長期インターンを経験した、情報学を専攻する都内の大学院生です。この記事では、私が大学に入学してからどのようにプログラミングを学び、どのようにインターンや就活に向き合ってきたのかを紹介します。
最初にプログラミングの経験についてですが、高校以前はなく、学部も機械系でした。大学入学後に入ったサークルの広報担当としてHPの更新作業をするようになって、HTMLとCSSを学んだのが最初です。
大学の授業では、2年の前期、統計の授業でRを書くようになり、秋にソフトウェアの授業でPythonとC言語を履修。その後WEBベンチャーでインターンをするようになって、実務の経験を積みました。3年になると授業でデータサイエンスや基礎的なアルゴリズムを学ぶようにもなりました。そんな中で、SWEもアリだなと考え始めたのが実際のところです。
4年で学科の中ではソフトウェア寄りの研究室に入り、C++やPythonを使っていました。大学院では機械学習を専門にし、PyTorchなどの深層学習ライブラリを使うようになりました。
学部1年:サークルの仕事でHTML/CSSを学ぶ。
学部2年:統計の授業でRを学ぶ。ソフトウェアの授業でPythonとC言語を履修。冬ごろに小さなWEBベンチャーにインターンで入り、週1で2年間ほどやっていた。
学部3年:データサイエンスやアルゴリズム、ロボットの授業をとり、ロボット制御に使うMATLABやOpenCV、OpenGLを学び、何らか動くものを作っていた。
ハードウェア開発の制限の大きさに比べ、ソフトウェア開発の手元で動かすことのできる面白さからSWEの方向でキャリアを考えるようになった。
後期には人工知能の授業も受けた。CNNの実装など初歩的なAIの課題に取り組んだ。
学部4年:研究室を選ぶにあたり、興味がソフトウェア寄りだったので、学科の中で関連性の高いロボット系の研究室を選んだ。ロボットプログラミングでC++、画像処理でPythonを使用。
大学院1年:使用言語はPythonでPyTorch。GPUサーバーを扱うようになった。言語学習は授業があるわけではないので、自学や先輩に教えてもらうなどした。
AtCoderをやったりやハッカソンなどにも出たりした。LeetCodeを友人と一緒にやったりもした。
私の就職活動について
就活を始めた時期ときっかけを教えてください
私は大学院に進むことを決めていたのですが、学部で卒業する友人に「就職活動」は早めにした方がいいとアドバイスされていました。大学4年生の3月に卒業論文が終わって、時間の余裕ができたことをきっかけに始めました。
ソフトウェアエンジニア職を志したのはどうしてでしょうか?
元々ソフトウェアエンジニア職だけではなくコンサルティングファームにも興味があり、説明会などに参加していたのですが「あまりコンサル就活で会う人と合わない」と感じていました。研究室や授業で出会うエンジニア志望の方とは気が合うと感じていたので、自然とソフトウェアエンジニア職に就職活動の軸が傾いていましたね。やはりものづくりが好きだったのかもしれません。
また、高い給料をもらえつつ、ワークライフバランスが良いこと。ソフトウェアを扱っていて手触り感があったことも志した理由になります。
どのように応募する企業を決めていましたか?
たくさん応募するのではなく、企業を絞って応募していました。元々知っていた「エンジニアならここ受けるよね」っていうメガベンチャーなどが中心です。企業の手玉が少ないようでしたら、就活サイトを使うのもアリと思いますが私は使わなかったです。
最終的にどんな企業のインターンに参加し、本選考で内定をもらいましたか?
最終的には外資IT1社、メガベンチャー2社のインターンに参加し、複数社から内定をもらうことができました。
景気などによって外資系企業は新卒採用自体をとりやめたり、大幅に採用人数を減らすことがあるので要注意です。こればかりは学生の立場ではどうしようもありません。
どのように入社先を決めるといいと考えますか?
インターンや面接は志望企業の社員と直接会話ができる貴重な機会なので、たくさんコミュニケーションをとって様々な話を聞いておくと良いと思います。SWEの情報は就活メディア等に十分あるとは言えない状況なので、自分で能動的に情報を取りにいく必要があります。
最終的に決めるときは、事業内容や待遇・WLBなど総合的に加味して、自分と合う企業を選択するとよいと思います。
ステップ別の選考対策
行動面接
多くの人がいろんな就活サイトを参考に準備するかと思いますが、英語の資料を漁ればさらに多く面接に関する情報が出てきます。外資IT企業を受ける人はもちろんですが、情報を英語で検索することはあらゆるリサーチにおいてオススメです。
面接で緊張する人、話すことが苦手な人はとにもかくにも場数を踏む&練習することです。そしてある程度エピソードの型を持っておくといいでしょう。「仲間内で衝突したことは?その時どう対応した?」といった頻出の質問はあるので、それらの質問にはちゃんと回答できるように準備しておきたいですね。
コーディング試験とコーディング面接
コーディング面接ですが、大切なことはコミュニケーションです。喋りながらコードを書く練習を友人と行いました。英語ですがオンラインでトレーニングできるサービスもあるので、そちらの利用も良いでしょう。
まずは計算量として悪いコードを説明しながら書くと、計算量について聞かれるので時間・空間計算量を答えるという流れが多かったです。そのうえで、計算量を減らす方法を面接官と話しながら答えていきました。
言語に関しては自由に選べる場合がほとんどです。Pythonは記法がシンプルで記述ミスが減らしやすいので有力な選択肢の一つだと思います。
多くの企業はAtCoderの茶色レベル、あるいはLeet CodeのEasyかMedeiumレベルを解ければ十分です。時間超過をしないようなコードを書く癖を練習段階で心がけましょう。
英語
外資系投資銀行のテクノロジー職や外資IT企業では面接の一部が英語で行われることがあります。安いオンライン英会話サービスがいくつかあるので、自分にあったものを探してトレーニングを積むことをオススメします。
多くの人は受験勉強をした経験から文法や単語力は十分にあると思うので、意識的にしゃべる機会をどれだけ作る事ができるかが大切になるでしょう。
後輩へのアドバイス
就活を終えて、後輩の就活生にアドバイスをお願いします
総合職の一括採用とは異なり、ジョブ型採用のSWEの就活は、そのときの世界的な経済状況など“時流”に大きく左右されます。例えば、GAFAMのようなトップ企業であっても、日本で毎年数十名採用していたところが大幅に減ったりすることがあります。
こういった時流による募集内容の変化はどうしようもないので、早くから自分のキャリアの方向性を意識して、しっかり固めておくことが大事だと思います。
大学の研究と就職活動の両立は忙しいですが、乗り越えるアドバイスはありますか?
自分のキャリアの方向性をある程度早めに意識していくと選択肢を絞りやすいので、大学院に進む学生は学部生のうちから周囲の就活している人から話を聞くなどして、キャリアへの意識を高めておくと良いと思います。また、研究室や専攻の先輩がどういった就職活動を行ったのかを参考にすることも、研究と両立して就活を進める手助けになると思います。
・【業界研究】エンジニア編
・ソフトウェアエンジニア職志望のための面接過去問まとめ-技術面接編-
・ソフトウェアエンジニア職志望のための面接過去問まとめ-一般質問編-
・ソフトウェアエンジニアとして活躍し続けるには?キャリアの軸はどう選ぶか?
・GAFMA企業にソフトウェアエンジニアとして就職する方法
・“普通の人”がGoogleのソフトウェアエンジニアになるには?採用ステップ、入社面接、評価ポイント、対策まとめ
・ 「大量の読書とインターンで技術を学んだ」“文系”学部からサイバーエージェントのソフトウェアエンジニア職内定を勝ち取るまで
・私はこうしてインターン経由でDeNAのソフトウェアエンジニア職に内定をもらえた
・ 【IT志望必見】GAFAMエンジニア内定者による『コーディング試験』の実態
マッキンゼー ゴールドマン 三菱商事
P&G アクセンチュア
内定攻略 会員限定公開
トップ企業内定者が利用する外資就活ドットコム
もっと記事を読む
マッキンゼー BCG ベイン・アンド・カンパニー アクセンチュア 等の内定攻略記事を会員限定に公開しています