ソフトウェアエンジニアを目指す人のブログ

ソフトウェアエンジニアになるために勉強したことを書いていきます

海外では「技術面接の突破法」なんて授業がある

最近Rui Ueyamaさんのturingcomplete.fmを聞いて初めて知ったんですが海外の大学では「技術面接の突破法」なんて授業があるんですね。 技術面接っていうのはいわゆるプログラミングなどコーディング面接です。 13. 自作アセンブラ、リンカの最適化、トリッキーなビット操作の楽しさ、外資系IT企業のコーディング面接対策 (hikalium)

以下はスタンフォード大学の授業のページです。スライドもすべて公開されています。 CS9: Problem-Solving for the CS Technical Interview

日本の大学ではこんなことまず教えないですよね。 いかに英語と日本語で情報格差があるかを実感させられます。

資料を軽く読んでみたので簡単に内容をまとめてみました。

履歴書について

履歴書の書き方の原則

  • 自分がやったことをすべてリストアップするな。戦略的に優先順位を付けて書くべし
  • 内容に嘘は書かず正直に書け
  • 履歴書に書いたことはすべて話せるように準備しておこう
  • 専門家であれ。あなたの履歴書は誰が読むかわからない

履歴書クイックチェック

自分の履歴書に以下の内容が入っているか確認しましょう。

  • 名前と連絡先
  • 目的(必要であれば)
  • 学歴
  • 職歴
  • 過去のプロジェクト(あれば)
  • スキルとプログラミング言語

以下詳細

名前と連絡先

以下のものは正確、かつ最新のものに

  • 名前
  • メールアドレス(へんな名前のメールアドレスは使わないように)
  • 電話番号
  • 住所

目的

履歴書に目的を書くことで職探しをする上であなたが何を気にするかを伝えることができる。 例えば、下記のような例がある。

  • 「ソフトウェアエンジニアのサマーインターンシップを探しています」
  • 「目的:大きな影響と成長の機会があるフロントエンドエンジニアのポジション」
  • 「人々の生活に幸せをもたらすデザインと開発の経験」

目的は必須ではないが戦略的に使えば非常に有効である。

学歴

  • 卒業大学、専攻など
  • GPAが良ければ(一般的に3.5+以上)載せましょう
  • 関連した専攻あれば最も重要なものの概要を載せてよい
  • 高校に関しては面接で聞いてほしいことがある場合のみ書いても良い

職歴

あなたが過去に携わった仕事の概要を以下の情報とともに記載

  • 会社の名前と場所
  • 働いていた期間
  • 仕事の名前

その後にあなたが仕事で達成したことを書く

業績について

特定の動詞を使うとよい。 "worked"や"programmed"といった動詞より"Designed", "implemented", "prototyped", "tested", "deployed", "maintained"のような動詞がよい。

  • 業績は可能ならば定量的に
  • 技術面接であればそこで使った技術の概要を簡潔に含めるとよい
  • 簡潔に書くべし。少ない文で書くことが難しければ重要なポイントをピックアップしてみる

最初の仕事の応募の場合

最初の仕事の応募である場合は職歴は必要ない。 以下のようなことを書いてもよい。

  • 他の分野で行ってきた仕事
  • クラブや組織でのリーダー経験
  • いままでやってきた個人的なプロジェクト(あれば)

極端に言えばあんたが「賢く」て「懸命に働く」ことが伝わればよい。

ちなみに、講義スライドでは「スタンフォード大学の学歴は非常に強い。同じ大学内の人と争う必要はない」とも言っている(笑)

過去のプロジェクト

個人的なプロジェクトを行っていればそれも書くことができる。 なくても心配しなくてOK! もし書くなら以下の情報を載せる。

  • プロジェクト名
  • 誰と一緒にやったか
  • プロジェクトの内容
  • あなたが特にやったこと
  • 可能であればプロジェクトのURL

プログラミング言語とスキル

あなたが使いこなせるプログラミング言語と技術を書く。 リストアップする際の注意点

  • あなたが履歴書で上げたプログラミング言語について面接で聞かれる可能性がある
  • 経験したすべての言語を書くのではなくあなたが本当に使いこなせる言語を書くべし
  • 「慣れている」や「いくつかの経験がある」といった書き方でもよい

履歴所については以上のような感じです。 他にもコーディング面接に関する講義資料もあったので気が向いたときに別途記事に したいと思います。