TOP 競技プログラマーのための就活講座就職活動について3-3

3-3面接突破のためのテクニック

  • 一方的に説明するのではなく、相手との会話を意識する
  • 慣れることも大事。友人や家族との練習だけでなく、社会人とコミュニケーションを取れる機会に積極的に飛び込むこと

面接の基本的な意識・ポイント

 まず、面接コミュニケーションの3つの基本ポイントは以下の通りです。
  ①想定される質問の準備はしっかりと!
  ②質問に対する結論から話し、根拠・理由を添える
  ③スピーチではなく会話(話過ぎず、端的に)

 面接では、プレゼンテーション【説明】ではなく、コミュニケーション【会話】が求められます。話したい内容など必要な準備をした上で、用意したものを正確に話そうというよりは、多少間違えたり、噛んだりしても自分らしい言葉で相手の質問に答えていくようにしましょう。笑顔や相槌、アイコンタクトは「印象値」評価を上げるだけでなく、会話を円滑にもしますので、慣れるまではオーバーアクションと感じても、意識的に実践していくと良いです。
 
 また、「面接・プレゼンテーションといったシーンでは緊張してしまう・・・」といった苦手意識を持っている相談をよく受けます。まず、大前提として「面接は緊張しても良いものだ!」と思うようにしましょう。実際面接官は、緊張している/いないを評価基準に入れることはほとんどなく、できるだけ学生の良さを引き出そうと考えています。そのため、緊張をほぐそうとする努力を一緒にしてくれるケースもあるくらいです。
 どうしても緊張しすぎてしまう人については、面接の雰囲気・緊張感を早めに作るという対処方法があります。緊張とは過度に力が入りすぎている現象です。筋肉の緊張は時間が経ることで疲労から力が抜けていくため、面接会場の付近や企業の入っている建物のオープンスペースなどで、早めに緊張状態を作っておくと良いでしょう。その際に、鏡で自分の緊張状態を確認する、息を吐くことを意識して呼吸すると効果的です。

先輩競技プログラマーが語る面接の準備・心構え

 競技プログラマーとしての経験は、質問の受け答えへの自信にも繋がっているようなコメントが多かったですが、一方で自己PRなど自身を掘り下げる質問には苦戦する傾向にあるようです。自身の研究やプログラミングスキルを整理することと合わせて、自己分析についても取り組むようにしましょう。
 また、面接のようなコミュニケーション経験を積むことも大事です。友人や家族と練習をする、複数の企業の面接を受ける、社会人とコミュニケーションを取れる機会に参加する(インターンシップや就活イベントなど)といった機会を自分の取り組みやすいものからチャレンジしてみましょう。

≪先輩競技プログラマーからのアドバイス/1.心構え≫
 ・ 決して自分を飾らないこと/ありのままを話す/素の自分を見せる
 ・ 見栄を張らないでやってきたことを誠実に伝えることです。
 ・ 時間を守る、挨拶をする、コミュニケーションする(陽キャという意味ではない)など、基本的なことをおさえていれば、あとはマッチングなので気張らずに臨む。
 ・ 雑談だと思って話すこと。ゼミのグループディスカッションと変わらない。
 ・ 相手が研究内容に関する知識がない前提で、用語や説明をなるべく噛み砕いて説明するようにした。
 ・ 面接の前後に自分のご褒美を想定し、メンタルを良い方向に保っていた。
 ・ 選んでもらうだけでなく、自分が企業を選ぶというつもりで臨む。落ちても凹まない。
 ・ 場数を踏んで慣れた結果、見栄を張らない方がよいことを学習しました。見栄を張ると、突っ込まれたときに自分の言葉が出てこなくなるので、結果的に悪い評価になっていそうでした。多少面接の場としてふさわしくなさそうな素直な発言をしても、意外と好意的に捉えられることもあります。

≪先輩競技プログラマーからのアドバイス/2.準備≫
 ・ 近頃は競技プログラミングに対して、社内に競技プログラマーがいなくても、案外良い印象を抱かれることが多いみたいです。スキルをプロダクトにどのように活かせるかを練った上で、メイン or サブスキルとしてアピールすると良いでしょう。
 ・ 想定質問に対する回答を用意しておく。一貫したストーリーを考えておく。
 ・ 質問に対する回答だけでなく、回答の根拠も用意しておくとよいと思います。回答した後に、回答の根拠についても聞かれることがあるので、用意しておくと焦らずに答えられると思います。
 ・ 自分も巷で言う、いわゆる自己分析などを面倒だと思ってしまうタイプなのですが、志望理由や自分のスタンス、事前に想定できる質問に対する答えぐらいは考えておいた方が良いと就活をしている中で感じました。
 ・ 先方がどのような人材を望んでいるのかをやんわりと把握しておくことじゃないでしょうか。自分が内定をもらった企業はプログラミングの能力がある程度高いことが求められるところだったので、学生時代にプログラミング系で頑張ったことを事前に思い出して文章にして喋る練習をしていました。(思い出しておくだけでも効果があると思います)

≪先輩競技プログラマーからのアドバイス/3.伝え方≫
 ・ 相手がどんな人に来て欲しいかは求人に書いてあって、それと自分の共通項をなるべく見つけて話し、違うところは話さないことを心がけました。ただ、譲れないところは違ってもしっかり聞きました。
 ・ 競技プログラミングのおかげでアルゴリズムの質問は一切苦労しなかったので、それを面接官にきちんと表現することを意識していました。
 ・ 自分のアピールばかりに走らず、足りないところは正直に話した上でフォローする。
 ・ 面接における定型文は暗記してしまい、それ以降は半分雑談をしに来たような感じでリラックスして取り組むのが良いかと思う。
 ・ 自己紹介で噛むなど、面接の最初のほうで軽い失敗をすると雰囲気がよくなることが多かったように思います。
 ・ 考えがすぐにはまとまらない場合は、少し考えてもいいか聞いて、止めてもらっていました。これは、就活生はやりにくいと思いますが、相手からすれば何ともないことのようで、私の場合は特に滞りなく進みました。逆に、意味がよくわかっていないのに曖昧に答えても相手も困ってしまうので、回答をきっちり出せてから答えるくらいでいいと思っていました。面接は瞬発力を見る場ではありません。

≪先輩競技プログラマーからのアドバイス/4.主要質問の回答をどう考えたのか≫
 ・ 競技プログラミングの経験をアピールするときに、「頑張って水色になりました」だと、他の人との差分が出ない気がしていました。なので、私は「Pythonを勉強する目的で始めたけど、面白すぎてハマってそのためだけにC++に乗り換え、今となっては趣味になっています。ほとんど未経験から独学で一年で水色(上位15%)になりました。」みたいな話し方をしていました。こう話すと、大抵「何を意識して勉強したのか」、「困難をどう乗り越えたのか」という質問が返ってくるので、アウトプット(解説記事執筆など)を意識したり他人と議論したりライブラリを作るようになったりした話をしていました。当たり前だと思ってることもしっかり言語化しないと伝わらないと思っていました。
 ・ なぜエンジニアなのかを説明するときは、データサイエンスのインターンや研究でのエピソードを交えて話していました。「データを使ったプロジェクトにおいて最もボトルネックになるのは、データ分析自体というよりデータ取得・保持・運用のフェーズであると感じた。その解消に寄与できるのはエンジニアであり、ビジネス上で最も価値があると思う」みたいなロジックを使っていました。その中で競プロで培った実装力が活かせると思うみたいな言い方をするとなお良いと思っていました。
 ・ 大規模な開発経験については、はっきりとないと伝えた上で(伝えないで突っ込まれるより先にこちらから言う方が印象が悪くなりにくい)、入社前や入社後に勉強していくつもりだと伝えていました。素直に話すと、それを認めてくれる企業もあるので(もちろん技術力不足だと思われる企業もあります)、見栄を張る必要もないと思っていました。技術力不足だと思われそうな企業を受けたい人は、開発経験をなんとかして積んでおくべきなのかもしれません。

≪先輩競技プログラマーからのアドバイス/5. その他のコツ・工夫≫
 <プラスアルファの準備>
 ・ ポートフォリオを作っていく。
 ・ 作ったモノを実際に見せられると強くて、私はビデオ通話越しにモノを見せたりURL貼ったりしました。
 ・ (落ちるのもたくさんあるので)シミュレーションをすると良いかも(友達と交代で面接官役をやるなど)
 <反省や次に活かす>
 ・ 面接で訊かれたことと答えたことは全てメモとして残しておくこと。
 ・ 個人的には面接はやればやるほど上手くなると思っていて、面接後にフィードバックをくれる企業や面接のコツを事前に教えてくれる企業もあるため、早い時期から数をこなして面接になれておくと良いと思う。
 ・ とにかく場数を踏むことだと思っています。本命を受ける前に、その他のある程度興味がありそうな企業で雰囲気を掴んでおき、大失敗を防げるといいと思います。

 ※AtCoderユーザーに向けたアンケート調査より※原文抜粋(2020年12月)

 インターンシップや採用活動を行う競技プログラマー向けの企業を探してみよう!
  →AtCoderで評価されたレーティングを使って企業に応募できる「AtCoder Jobs」
  →20,000社以上新卒向け企業情報を扱うマイナビの関連特集ページ「ソフトウェア業界特集」

面接対策

IT人財採用で実施される面接形式や評価のポイント、面接を突破するためのテクニックについて、先輩競技プログラマーの事例を交えつつ解説します。苦手意識のある方でもすぐに実践できるノウハウをお伝えします。