Ipad

Q&A: 最高のテクノロジー関連の仕事に就くために本当に必要なこと

Q&A: 最高のテクノロジー関連の仕事に就くために本当に必要なこと
ゲイル・ラークマン・マクダウェル

ソフトウェアエンジニアのゲイル・ラークマン・マクドウェル氏は、マイクロソフト、グーグル、アップルなどの企業で働いた経験があるが、テクノロジー業界での職を求める人々にヒントや洞察を提供する著書『Cracking the Coding Interview』や『The Google Resume』でもテクノロジー業界で知られている。

マクダウェル氏は来週、シアトルで開催される一連の無料イベントでこのテーマについて講演します。サウス・レイク・ユニオンのThe Easyで開催される月曜日と火曜日の夜の最初の2つのイベントは満席ですが、本日午後時点で、8月15日(水)の夜にAmazon.comキャンパスで開催される講演には、まだわずかな枠の空きがあります。

GeekWireはシアトル訪問に先立ち、マクドウェル氏と電話で話を聞いた。

人材不足が続く中、エンジニアの面接事情はどのように変化したのでしょうか? 応募者側が有利になり、企業はエンジニアを獲得したいという強い意志から、面接が楽になったのでしょうか?

私が見た限りでは、特にありません。面接は依然として非常に熾烈な競争が続いています。エンジニア不足というよりは、優秀なエンジニアが不足しているのです。アメリカにはプログラマーがたくさんいます。仕事を探している人もたくさんいます。ただ、大手IT企業で働くのに十分な資格と才能を持つ人と、そうでない人の間には大きな差があるのです。基準は非常に高いままです。優秀な人とそうでない人の間には大きな差があり、能力に見合わない人を雇うには莫大なコストがかかるため、一般的に言って、企業は基準を下げようとはしません。

あなたの著書『The Google Resume』で印象に残ったのは、これには何年もの事前準備が必要だということです。こうした企業との初面接に臨む前に、人脈を築き、適切な準備をしておかなければなりません。そうしたことを怠った人は、一体どうしたらいいのでしょうか?

技術職を探している人にとって、実は1、2ヶ月でできることはたくさんあります。まずは、自分でもっとコーディングをしてみることです。エンジニアは週末に1回作業するだけで、かなり印象的なプロジェクトを構築できます。つまり、月に3、4回の週末をソフトウェア開発に充てれば、かなり質の高いポートフォリオを作成できるということです。これは、スキル向上だけでなく、テクノロジーに情熱を注ぐ人材であることを示す上でも大きな効果を発揮します。

あまり技術職ではない職種を探している人も、同じようなことができます。いきなりコーディングを学んでプロジェクトを立ち上げるのは難しいかもしれませんが、OdeskやElanceといった企業から人材を雇い、プロジェクトを立ち上げてもらうことは可能です。そして、テクノロジーの世界にどっぷりと浸かり始めることができます。スタートアップ企業の情報を読み、最新の情報を把握し、何が起こっているかを把握しましょう。最も重要なのは、テクノロジーへの情熱を示すポートフォリオをできる限り作成す​​ることです。

応募者側がコーディング面接で見かける最大の間違いは何ですか?

最大の間違いは、フルタイムの仕事がエンジニアだから準備は必要ないと考えている人たちだと思います。毎日コードを書いているにもかかわらず、実際には時代遅れになっていることに気づいていない人たちもいます。多くのデータ構造やアルゴリズムが錆びついているのです。面接で扱われる内容は、実際に日々行っていることとは異なります。ペンと紙、あるいはホワイトボードがあればそれを使って、コーディングの準備と練習をしっかり行う必要があります。そうすれば、実際の面接にかなり近づけることができます。

もう一つ目にするのは、諦めてしまう候補者です。緊張して、自分のパフォーマンスが本当に悪いと思い込み(実際はそうでもないのに)、完全に諦めて「これは解けない、助けてほしい」と言ってしまう候補者もいます。あるいは、問題解決は終わったと思っても、実際には十分に考え抜いておらず、諦めてしまう候補者もいます。

学校に通っている場合でも、既に社会に出ている場合でも、いくつのプログラミング言語を学ぶべきかという問題についてはどうでしょうか。1つの言語に集中して、それを深く理解する方が良いのでしょうか。それとも、より幅広い言語に精通していても、それほど深く理解する必要はない方が良いのでしょうか。

言語はそれほど重要ではありません。候補者には主要言語の知識を身につけることをお勧めします。Java、C++などです。そして、Python、Rubyなどのスクリプト言語、あるいはWebベースの言語を習得しましょう。ただし、1つの言語に特化しているか、複数の言語を扱っているかは、それほど重要ではありません。あなたが優秀なソフトウェアエンジニアであれば、新しい言語を習得するのは非常に簡単なので、テクノロジー企業はあなたがどの言語で仕事をしているかをあまり気にしないでしょう。

面接であなたを驚かせた候補者たちを見ると、共通点や、彼らが本当に輝いていたこと、みんなに真似してみてほしいと思うようなことはありましたか。

重要なのは徹底性です。問題に遭遇した候補者は、質問を投げかけ、問題を本当に理解しているか確認します。急ぐ必要はありません。競争ではありません。様々な解決策に慣れ、トレードオフを熟考し、コードを書き、問題を徹底的に考えましょう。実社会と同じようにアプローチしましょう。自分の解決策が優れているとしても、他の解決策の方が優れている、あるいは劣っている場合もあることを理解し、トレードオフを理解している必要があります。プロセスのあらゆるステップを徹底的に行うことが重要です。

コーディング面接を受けたことがない方のために、コーディング面接とはどんな感じでしょうか?通常の就職面接と比べてどうでしょうか?

コーディング面接は緊張感に満ちています。他の面接とは全く異なります。優秀なソフトウェアエンジニアが不足しているため、技術レベルで本当に通用するかどうかが非常に重視されます。多くの企業は認めたくありませんが、実際には応募者の人柄やコミュニケーション能力はあまり重視されません。重要なのは、あなたは十分に頭が良いか?コーディング能力は十分か?といった点です。多くの点で、通常の面接というよりはクイズに近いと言えるでしょう。

給与はどうでしょうか?ここ数年、トップテクノロジー企業ではどのような傾向が見られますか?

大手テクノロジー企業は、どこが最も高い給与と最も優れた特典を提供できるかを競い合っています。特にGoogleとFacebookは大きく値上がりしました。大学新卒の初任給は10万ドルを超えており、他の業界に比べて労働時間がそれほど長くないことを考えると、これは非常に大きな数字です。大手テクノロジー企業は、企業同士だけでなく、スタートアップ企業とも競争しなければならなくなっています。そのため、誰にとっても厳しい状況になっています。

スタートアップでの面接は、Microsoft、Google、Facebook と比べてどう違うのでしょうか?

大手テクノロジー企業は、適性があり、3~6 か月で優れた人材に育てる人材を採用する意欲が強いです。一方、スタートアップ企業は、即戦力として活躍できる人材を求めています。また、面接では積極的に実験を行い、様々なことに挑戦しようとします。スタートアップ企業は、応募者がどのようなプログラミング言語を知っているかを重視し、応募者の人柄も重視します。なぜなら、小規模なチームで働いている場合やスタートアップ企業で働いている場合、役割は頻繁に変化することを理解しているからです。様々なタスクをこなせる能力は非常に重要になります。一方、大手テクノロジー企業は、「頭が良くてコードが書けるなら、当社の最新技術を知らなくてもあまり気にしない。教えるから」と言っています。大手テクノロジー企業は技術的なスキルを重視しますが、特定のスキルにはあま​​り重点を置いていません。

ゲイル・ラークマン・マクドウェル は、CareerCup.comの創設者兼CEOです。@gayle、facebook.com/gayle、そしてウェブサイトtechnologywoman.comで彼女をフォローしてください。