私は多くの本を読みあさったが、プログラマーの面接テクニックに関する良いアドバイスは実はそれほど多くないことに気づいた。
また、とても才能のあるプログラマーが面接のときによく失敗するのは、彼らがほとんどの時間を技術開発に費やし、面接テクニックを学ぶ重要性を軽視しているからだろう。
これはまさに悲劇ではないだろうか。効果的な面接テクニックがあれば、その分野にあまり詳しくなくても、仕事をうまく得ることができるのだ。
1. 自分に非常にプロフェッショナルな履歴書を作成する
私のアドバイスは、採用される可能性を高めたいのであれば、お金をかけてプロフェッショナルな履歴書を作成するのが最善だということだ。将来得られるかもしれない大きな成果に比べれば、これは本当に小さな投資にすぎない。
2. 面接官をリサーチする
私がプログラマーに面接を連絡するとき、いつも事前にメールを送り、自分の名前とブログのURLを添えている。しかし驚いたことに、面接をしたとき、彼は私についてまったく知らなかったのだ。
逆に良い例を挙げると、面接で、私が以前書いたブログ記事や作成した教育ビデオの内容について雄弁に語れる開発者に出会ったこともある。
どちらを推薦すると思うだろうか?
面接官も人間であり、人間的な弱さや特性を持っている。デール・カーネギーは、相手に自分に興味を持ってもらう最も簡単な方法は、まず自分が相手に興味を示すことだと述べている。
この方法が公平でないとしても、面接を成功させたいのであれば、事前に応募する会社と面接官(わかれば)をしっかりリサーチすることをお勧めする。
今日の社会の情報は非常に発達しており、Facebook、Twitter、微博(Weibo)、ブログで誰の情報も見つけることができる。ざっと目を通すだけでも、多くの恩恵を得られるだろう。
3. 社内推薦を得る
仕事を見つける最も簡単な方法が何か知っていますか?それは社内推薦を得ることです。
これによって面接の機会が増えるだけでなく、採用確率も40%向上する。
少し前、私は気に入った会社を見つけた。そして直接履歴書を送った? NONO、私はどうしたと思う?
まず、自分と同じ考え方や意見を持つ開発者を見つけ、彼のブログをフォローし始めた。
次に彼のブログにコメントを残し、提案を投稿し、彼の仕事と会社に非常に興味があることを示した。そして最終的に、この貴重な社内推薦の資格を得ることに成功した。
多くのプログラマーは「でも、あの会社の中には誰も知らないよ」と言うだろう。もしそれを理由に諦めたいなら、私は何も言わないことにする。試してみる気があるなら、きっと目的を達成する方法を見つけられると賭けてもいい。
ただし秘訣がある。まずオンラインで自分の「名刺」を作成することだ。つまり、相手にあなたを知ってもらう機会を作るのだ。だから、今すぐやってみよう(do it now)。
4. アルゴリズム問題を解決できるようになる
これはすべての開発者が身につけるべき重要なスキルであり、実際に習得するのはそれほど難しくない。
多くの面接では、ホワイトボードやコンピュータでプログラミング問題を解くよう求められる。しかし、多くのプログラマーは、非常に優れたプログラマーであっても、突然頭が真っ白になり、まったく考えがまとまらないことがある。
この種の面接問題を解決する方法を学ぶために時間を費やせば、次に同じような場面に直面しても、それほど緊張しないだろう。
緊張するのは実はあがり症とは関係なく、主にこうした問題に慣れていないことと、解決できる自信がないことが原因だ。
この点で自信をつければ、もう二度と緊張しないだろう。
5. 活力にあふれて質問に答える
一語または一言だけで、教科書どおりに平凡に答えるのは、技術的には正しいかもしれないが、その機会を利用して自分の情熱を示すべきことを忘れている。それが開発者がチームにもたらす最大のポジティブエネルギーなのだ。
例えば、ポリモーフィズムとは何かと尋ねた場合、教科書の定義を繰り返してほしいのではなく、そのテーマについて自分の言葉で説明してほしい。そうすれば、さらに深く話し合うことができる。
6. 「罠」問題に注意する
なぜ転職したのですか?
あなたの最も大きな長所と短所を話してください。
最近、同僚との技術的な意見の相違をどのように解決しましたか?
質問に答える前に、面接官がこれらの質問をする目的を理解し、この種の質問に答えるテクニックを身につけるのがよいだろう。
まず最初の質問「なぜ転職したのですか?」について話しましょう。
ほとんどの場合、面接官が知りたいのは、あなたが陰口を言う人で、雇用主を中傷することに慣れているかどうかだ。だから絶対に引っかかってはいけない。
7. 決して嘘をつかない
最悪なのは面接中に嘘をつくことだ。
知っていることは知っている、知らないことは知らない。本当に知らないのであれば、賢そうに振る舞って答えをでっち上げてはいけない。
逆に、知らない、または100%確信はないが試してみたいと正直に言い、それから自分の考えを話すべきだ。話し終えたら、面接官に正解が何か尋ねるのも、それに非常に興味があることを示すよい方法だ。
実を言うと、ほとんどの面接官が尋ねる質問は彼らが知っている質問だ。そうでなければ、あなたがごまかして通った場合、彼らが愚かに見えるからだ。だから決して運任せにしてはいけない。嘘が発覚すれば、面接官はすぐにあなたの人柄を疑うだろう。
8. 正直すぎない
多くのプログラマーは自分の情報を過剰にさらけ出す。誠実さと完全な透明性が最良の方針だと思ってはいけない。過ぎたるは及ばざるが如しなのだ。
第7条で述べた嘘をつかないことは確かに正しいが、自分の生活の詳細や欠点をすべて面接官に話す必要はない。
個性があるのは良いことだが、性格の欠点をさらけ出すのは良くない。
想像してみてほしい。自分はギャンブルが好きだとか、World of Warcraftに夢中だと言ったら、面接官は間違いなくあなたを評価し直すだろう。だから自分の情報を話すときは慎重でなければならない。それは欠点をさらけ出すだけでなく、判断力の欠如を示すことにもなるからだ。
9. コンピュータサイエンスの基礎知識を身につける
そう、多くのプログラマーは面接の際に、リンクリストやスタックを知らないと堂々と言う。正規の教育を受けていないか、とっくに忘れてしまったからだ。
仕事で深いコンピュータサイエンスの概念を使わないことは私も認める。しかし、プロのソフトウェア開発者として、少なくともいくつかの基礎知識は知っておくべきだ。
例えば、自宅の配線をやり直すために電気技師を呼んだとする。その電気技師が電気工学の基本知識をまったく知らなかったら、あなたは彼に頼むだろうか? 私たちも同じだ。
10. 経験について
これは最後の点だが、最も重要でないわけではない。多くの開発者、特にこの業界に入ったばかりの初心者は、関連する経験が不足していることが多く、いわゆる実務経験をどうやって増やせばいいのかも分からない。
これはニワトリが先かタマゴが先かという問題に少し似ている。
では、どうやって経験を増やせばいいのだろうか?
鍵となるのは創造的な方法を使うことだ。実際に会社に勤めなくても、仕事の経験を得る方法はたくさんある。
ヒントをあげよう:
- オープンソースプロジェクトに参加する
- オープンソースプロジェクトを立ち上げる
- モバイルアプリを作って、App Storeに公開する
- 小さなWebアプリケーションを作成する
- コード交流やユーザーグループに参加する
これらの方法はすべて実務経験として履歴書に書くことができる。アイデアがあれば、経験に困ることはない。
おわりに
これらのテクニックが皆さんの役に立つことを願っている。異なる考えがあれば、遠慮なく教えてほしい。
出典:http://www.codeceo.com/article/10-skills-programmer-interview.html