web-dev-qa-db-ja.com

プログラマーがプログラミングに情熱を持っているかどうかをインタビューで知るにはどうすればよいですか?

ほとんどの面接の質問は、候補者の現在の知識に焦点を当てているか、アルゴリズムの問​​題を解決するために彼/彼女のスキルをチェックしていますが、プログラミングに情熱を傾ける開発者を雇いたいと思います。

次のような質問をする代わりに

テクノロジー「X」について何を知っていますか?

ソフトウェアエンジニアリングの問題の解決に直接関連しない知識をチェックしますが、ITにどれほど興味があるかを示します。

たとえば、Java開発者を探す場合、Java世界で最も影響力のある人は誰か、または基本的なScala抜粋し、候補者にコードの解釈を依頼します。

私はアランチューリングの写真を見せて、インタビュイーに写真に誰が写っているのかを推測させることさえ考えました。この練習は意味がありますか?

102
Nutel

あなたがしなければならないのは彼に彼が最も楽しんだ彼が取り組んだプロジェクトの1つについてあなたに話すように頼むことです。次の60秒で、亡くなった著名人の写真を見せることができる以上に、彼の熱意について詳しく知ることができます。

229
Robert Harvey

たとえば、Java開発者を探す場合、Java世界で最も影響力のある人は誰か、または基本的なScala抜粋し、候補者にコードを解釈するように依頼します。アランチューリングの写真を見せて、面接担当者に写真に写っている人物を推測させることさえ考えました。

それは雑学と技術知識です。彼らがプログラミングに情熱を持っているかどうかを知りたい場合、あなたは彼らの情熱に従事する必要がありますある意味で、これを行う簡単な方法がいくつかあります。

  • 彼らがプログラミングのブログや雑誌を読んでいるかどうかを調べる
  • 彼らが仕事を趣味としてプログラムしているかどうかを確認する
  • ユーザーグループや組織に参加しているかどうかを確認する
  • 何が彼らをプログラミングに導いたのか、そしてそれがまだ彼らのモチベーションであるかどうかを尋ねます
  • StackExchangeアカウントを持っているかどうかを確認する

ない場合は、それらのライトa sparkが目に入っている場合は、おそらく情熱的なプログラマーがいないでしょう。他のもので忙しすぎるものにぶつかる可能性がありますが、きっと歴史を見るか、少なくともこれらのポイントのいくつかにぶつからなかったときの本当の後悔を見なさい。

71
DKnight

警告、長い投稿、一部のみトピック

ええと、私は長い間同じことを求めてきました。約6年前、私は採用担当者に私たちが何であるかを理解してもらうことを試みていました(彼らはあなたが言うようにボックスをチェックしました)。

その時私は書いた:

あなたは私たちのようにオタクですか?(採用担当者と候補者への公開書簡)。

私たちの文化はすべて私たちにとって重要です。ここでは人種について話しているのではありません。背景に基づいており、仕事に対する見方、仕事から抜け出すつもり、仕事への取り組み方、他の人との関わり方に基づいています。

私は以前に人種の意味であると誤解されていたので、はっきりさせておきます。これは人種に基づくものではなく、考え方と原動力です。私たちは素晴らしいレースの数々と協力してきました。私たちはまた、明白にそして単に役に立たない多くの人々を知っています。したがって、人種は私たちが何を求めているのかを定義するものではなく、「文化的な」適合です。

オーストラリアには多くのサブカルチャーがあり、それらのほとんどを組み合わせて使用​​することはありません。私はそれについて説明しようとしています-The Geek。

  • 多くの人は明確な指示を必要とします: "A> B> C> D"他にあなたが彼らにAといくつかの背景を与えると、彼らはB> C> DとEをすべて自分で解決します。 2つ目のグループを探しています。
  • あなたは彼らに対して「先輩」なので、人々は単にあなたに同意するでしょう。他の人は彼らの意見を表明し、彼らのアイデアを提供します。 2つ目が欲しい。これに対する副次的判断は、決定が彼らに反する場合でも、彼らは自分たちをそれに投じます。
  • 一部の人々は暗記で学んだ:あなたはA、B、Cの順でXを与える。他の人々は学び方と考え方を学んだ。身近な問題を乗り越え、根本的な問題を解決してください。

過去14年間の私たちの仕事の多くは、主に会社が間違ったタイプのスタッフを雇ったことが原因で、失敗したプロジェクトをクリーンアップして完了する必要があるために発生しました。違う。

ここで、「いいね」と言ったときに、次のような種類の人を選んでみます。

  • 優れた発明家、素晴らしいアイデア、ひどいプロジェクトの仕上げ。これは私自身を説明しています。この問題に対処するために人々を雇う必要があります。
  • 素晴らしいオプティマイザと「実行」者、もしあなたがそれをうまく動かしたければ、それらを手に入れましょう。フリップサイドの焦点が狭くなり、そこに到達するまでに長い時間がかかります。一般的に優れた技術特性ですが、通常、外界と会話することはできません。
  • 「正しい方法」と「エンドツーエンド」の作業が非常に得意であり、知っている。彼らはプロジェクトを最初から最後まで見ることができ、見逃すことはありません。 「それはそのように行われるべきだから」。これは私たちがここで持っている態度です。クライアントはこれを知っていて、お金を払います。これを「実行者」と組み合わせると理想的です。
  • 即時の結果への最短経路。それについてみんなに大声で言ってください。 (気にしないでください)。スタートアップには良いが、一貫性を必要とする確立されたビジネスには悪い。純粋なサポート/メンテナンスの役割では、他の開発者が後でクリーンアップを行う場合はこれで十分です。プロトタイピングと概念実証の作業は素晴らしいです。
  • 一般的に興味があります。何が起こっているのか、それについて教えてください。何がで​​きるか、どうすれば知識や汗として価値を付加できるでしょうか(必要に応じて、彼らが見ているものに取り掛かります)。
  • Roteの学習者/プロセスワーカー。プロジェクトが最終学位まで計画されており、彼らには「彼らのやるべきこと」があり、それだけです。非常に大規模なチームに適しています。 「タンジェント」がとられる危険はなく、1/200人から予期せぬ結果が生じます。彼らは彼らの「何をすべきか」リストを手渡されることを期待し、それから彼らはそれを行い、次のビットのために戻ってきます。世界中の多くの文化(人種と学校の両方)は、腐った学習者やボス/アンダーリングスタイルの労働者に向いています。このスタイルの人は私たちには役に立たないので、大企業に送ってください。
  • チームのメンバーは平等であり、クライアントが設定した目標を達成するためにチーム内で働くことが期待されています。
  • あなたは仕事を着陸させるために必要なことは何でもします。
  • 執着することなく、意見や見解を与えます。
  • 物事をじっくり考え、境界ケースを分析します。

言語は私たちと一緒に働くことへの障壁です。私たちはほとんどここに私たち自身の言語を持っています、あなたには少なくとも英語とユーモアのセンスと組み合わされたいくつかの技術的なスキルが必要です。

私たちを理解していないと、何をする必要があるのか​​、または私たちの残りがソリューションの実装にどのように取り組むかについての要件を把握できません...あなたは長続きしません。

なぜ私たちと一緒に働きたいのですか?

  • あなたは支払いを受けます。 「現実の世界」で稼ぐのと同じではありませんが、そのいいお金です。
  • あなたは決定に参加することができます。監督は最終的に、すべての人、彼らがどう思うか、どのようにそしてなぜそれを考えるのかについて聞きたいと言います。それはすべて役立ちます。
  • 自分のものを調べます。オタクなもの、コーディング、新製品、最新のMS対Linuxの戦争開発、設計手法に興味があります。あなたが毎週時間を与えられて、あなたが何をしたいかを研究して発見するこれらすべてのもの。他の人と共有するだけです。
  • 新しいテクノロジーを試すことができます。研究や新しいプロジェクトを通じて、新しいことに挑戦し、新しいものをデザインしたいと考えています。私たちがそうすることを可能にするプロジェクトがあります。 (ただし、クライアントに役立ち、プロジェクトよりも費用がかからない場合)
  • スーツを着る必要はありません。訪問者のクライアントやイベントのように、状況がそれを必要としない限り。
  • 私たちはあなたにもっと学びたいと思っており、あなたが知っていることを改善するためにターゲットを絞ったトレーニングを行います。
  • 通常、9-5を実行する必要はありません。 9-5の契約のサポートを実行している場合は実行します。それ以外の場合は、仕事を完了させ、特権を乱用しないでください。
  • 一緒に働く素晴らしいチーム。とにかく、私たちはそう思うと思いますが、礼儀正しさからジョークを笑いあうことはありません。
  • 私たちはオタクでもあります。私たちの一部にはガールフレンドと子供がいますが、それであなたを騙さないでください。
  • 私たちはいくつかの非常に大きな企業の尊敬を楽しんでおり、疑いなく参入することができます。
  • 私たちのクライアントベースはオーストラリアと世界中に広がっています。旅行の余地をたくさん残し、
  • 私たちは、クライアントやその従業員と非常に良い関係を築いています。つまり、飲みに行ける人がたくさんいます。
  • 必要や問題がある場合は、時間をかけて問題を解決してもかまいません。あと数時間で差をつければ。
  • あなたのアイデアは評価され、それらのアイデアに対するより大きな報酬を得ることができます。
  • Redgumの成功を共有します。

今でも、あなたは私たちのために働きたいですか?どうして?

結論

私は2004/05に自分で50回または60回のインタビューを行ったと書きました。14かそこらの人材派遣会社と協力して、私にボックスをチェックした人を投げました...これのほとんどは時間の無駄であり、私はピッキングを吸いましたインタビューからの人々。

これまでのところ、私が得た最も大きな成功は、上記の背後にある意味と私が探していたものを理解し、適合した人々にリストをフィルタリングできる単一の採用担当者を見つけることです。

これで、信頼できる採用担当者が1人います。私のビジネスを知っていて、私のニーズを知っています。追いつくために隔月で昼食をとっています...私は彼に行かせ、時間を与え、彼に適切な候補者のみを表示することを信頼します。

採用は特定の領域であり、1日の終わりに最終的な発言をしますが...お金があれば、スキルセットを持つ人々に自分のことをやらせてください。

彼らが誰かを見つけたら、私は彼らにインタビューし、彼らの経験、彼らの興味、彼らをやる気にさせること、彼らが行った最もクールなプロジェクトについて質問します...上記に対する彼らの答えを聞いてください...昼食時のチームへの2回目のインタビューでは、チームの他の全員が質問し、親指を上げたり下げたりすることを教えてくれます。その後、採用します。

29
Robin Vessey

Alan Turingは少しやりすぎですが、影響力のある人物に名前を付けることは私には大丈夫だと思います。私がこの質問をされた場合、私は言うだろう、男は効果的なJavaを書いた...

採用は双方向です。最初に自分の人材プールを知る必要があります。情熱的なプログラマーを雇いたい場合は、まずいくつかの質問をする必要があります。彼らが解決するエキサイティングな問題はありますか?第二に、あなたは競争力のある補償を提供していますか?

実際には両方を提供できない場合は、スキルとプロ意識に重点を置くほうがよいでしょう。

21
thinkanotherone

37 Signalsの人々は、優れたプログラマーの採用を扱う 素晴らしい投稿 を書きました。

詳細については投稿を読むことができます(それは価値があります!)が、次のように大まかに要約できます。

  1. 彼らはどのように考えていますか?
  2. 彼らはオープンソースプロジェクトにどれくらい貢献していますか?
  3. 彼らはプログラミングをどのくらい楽しんでいますか?
  4. 彼らは実際に出荷しますか?
  5. 彼らは何を習得しましたか?
  6. 彼らはどれだけうまくコミュニケーションをとっていますか?

小さなプロジェクトに参加して、彼らがどのように機能するかを確認することで、誰かを雇うリスクをさらに軽減できます。これにより、タスクの処理方法、時間の管理方法、通信方法などがわかります。

8
Soner Gönül
  • デザインパターン/アンチパターン/プログラミングの実践についてのカジュアルな会話を開始し、候補者がどのように情報を得たかを確認します。彼らの意見はどれほど興味深いか、さわやかです。そして、彼らがこれらについて自分の考えを持っているかどうか
  • 現実の問題について話し、候補者がどのように解決策を提案し始めるかを見る
  • 特定のテクノロジーや言語に言及せずに、候補者がプログラミング(力学ではなく哲学)についてどれだけ(およびどのくらい)話せるかを確認します。候補者がビジョナリーであるのか、それともすべてが基本的なのかを確認する
  • プログラミング言語で彼らの最も空想的な機能について話すように彼らに頼んでください-情熱的なプログラマーは常に機能の空想を持っています
  • 彼らにプログラミングの引用を聞いて、人気のあるものを知っているかどうかを確かめます
  • プログラミングに関するユーモアのセンスをテストする
4
treecoder

いいえ、そのアプローチはまったく意味がありません。私はアランチューリングの写真を認識し、Javaの開発におけるいくつかの主要なライトを挙げることができますが、それはプログラミングが私たちに提供できるものについて私がどれほど情熱的であるかについて何も伝えません。私も取り組んだすべてのオープンソースプロジェクトを一覧表示します。その一部は簡単に習得できる知識であり、一部はCV /レジュメドレッシングによく使用されます。

実際の問題を説明するように依頼してください-たとえ些細なことであっても-ソリューションをプログラミングすることで修正できます。背後にあるインフラストラクチャを特定するほど実用的である必要はありません。何かをより良い方法にプログラムする方法について考えただけです。使用される言語は二次的に重要です。特定の言語にアタッチすることで、プログラミングに情熱を持っている人を必ずしも獲得できるわけではありません。

3
temptar

彼に実際の問題解決の質問をする

この候補者のスキルについて説明するだけでなく、熱心にに注意を向けると、彼はあなたが尋ねる実際の問題解決の質問にアプローチし、あなたは彼がプログラミングにどれだけ情熱を持っているかについて非常に良い感覚を得ることができます。また、さまざまな種類の問題解決の質問(コーディングの質問、アルゴリズムの設計の質問、システムの設計の質問)を彼に尋ねると、プログラミングのどの分野に最も熱心であるかがわかります。

私は読むことをお勧めします Joel on Softwareのゲリラインタビューガイド 彼はその情熱を見つける方法を教えるだけでなく、情熱はあなたが探している最も重要なものの1つではないことを教えてくれます-あなたは「スマート」と「物事を成し遂げる」を探しています。 (彼は情熱について言及していますが、彼の意図はそれがあなたが探している他の2つの事柄のサインであることだと思います(== --- ==)探しています)。

2
Ken Bloom

情熱の定義はここでは広いです。私はいくつかの種類のプログラマーを見てきました。それらをプログラマーと呼ぶことはできません。私は情熱的なプログラマーを定義します

  1. プログラミングの基本を知っている人(つまり、本当の基本を意味します)。真剣にそれは新しいものをその場で学習する態度と能力を示していますが、本番コードでは基本を直接使用していません。
  2. 彼は問題や技術を深く掘り下げることができなければなりません。ほとんどのプログラマーは既製のものを使うことに熟練していますが、それは拡張にのみ役立ちます。
  3. 彼は彼が持っている技術と産業のアップデートでアップデートしなければなりません。私は、物事を読む時間をかける準備ができていないプログラマーを本当に嫌っています。ここにいるほとんどの人々は問題を整理する準備ができているので賢いです。よく知られている問題に何時間も費やす賢い人々を見てきました。彼らが本当に欠けているのは、読む能力です。
  4. 情熱的なプログラマーは、ユーザーのコードよりもユーザーに情熱を傾けます。彼はユーザーの視点ですべてを行います。
  5. 適切なソフトウェアアーキテクチャを使用/作成する能力を、期間をかけて徐々に示す必要があります。
2
sarat

「情熱的な」人々または有能な人々が欲しいですか?私は、自分のビジネスを知っているが、コンピューター画面の外では何も知らない子供たちよりも、ビジネスと現実を区別できる人がほしいと思います。1日16時間(半分)貢献しているオープンソース以外の趣味はありません。名目上私のために働いている間)など.

2
jwenting

プログラミングに情熱を持っている人なら、他の人を見つけることができるでしょう。あなたがしなければならないのは、インタビュー中に難しいことではないプログラミングについて話すことです。そして、話をしている候補者に焦点を合わせます。彼らの情熱に関係なく、あなたが彼らの能力のレベルを認定していることを確認してください。そうでなければ、これはあなたの判断を曇らせる可能性があります。

1
JeffO

次の点を確認します。

  • StackExchangeサイトの質問に答えます
  • 彼らはブログやウェブサイトを持っていますか?
  • 彼らは副次的なプロジェクトを行う(おそらく商業的)
  • 彼らはオープンソースプロジェクトに貢献しています。
1
Scott C Wilson

情熱的なプログラマーを雇う前に、それが何を意味するのかを判断する必要があります。

プログラマーの情熱を探すとき、彼らが解決しなければならなかった難しい仕事の問題について話し合うとき、それは彼らの声の熱意と関係があります。それは、いくらか深さの知識を得て、困難な問題を解決するためにステップアップするのに十分なほど情熱的であることと関係があります。彼らが仕事の外でプログラムするか、彼らの写真を見ることによって過去から3人の有名なプログラマーを指名できるかどうかとは何の関係もありません。

面接すると、質問への答え方に情熱を感じることができます。彼らは非情熱的な人々よりも深く入り、彼らは彼らの言うことに熱狂する傾向があります。彼らは自分がプログラミングしているビジネスドメインを理解し、問題を解決する方法や、プログラミングプロセスやアプリケーションの設計を改善するために自分の仕事で行った提案について話すことができます。彼らは特にそれらについて尋ねられることなくリファクタリングとデザインパターンについて話します。

彼らは彼らの成果について話すとき、彼らはモジュールの基本的なコーディングを超えたものについて話します。彼らはデザインに問題を見つけてリファクタリングした方法について話したり、難しい問題を解決するために使用する新しい手法を見つけた方法について話したり、熱意をもって話したりします。情熱的な人は黙ることが難しい。彼らは本当に自分の業績と将来の目標を説明したいと思っています。彼らはあなたの仕事が提供し、現在の仕事が提供していないことに特に取り組みたいことを持っているかもしれません。彼らはスキルの成長パターンと彼らがしていることの複雑さを示しています。

1
HLGEM

彼の余暇に彼が何をしているのか尋ねてください。それが彼の個人的なプロジェクトのコーディングと作業であるなら、それは情熱的なプログラマーのかなり確かな兆候です。すべての情熱的なプログラマーが余計にプログラミングするわけではありませんが、そうするほとんどの人は情熱的です

もう1つは、プログラミングに費やした時間数を見積もるように依頼することです。時間数が多いほど、情熱的です(年齢に合わせて調整します)。

PS。コーディングにall費やす必要があると言っているのではありません。あなたは人生や趣味などを持っている必要があります。しかし、私たちは愛するものに時間を費やす傾向があります(配偶者と子供に時間を費やすことは責任があります:)したがって、extra時間コーディングは良い指標DSです。

...そしてええええ、あなたは情熱のないプログラマーがあなたが望むすべてを私に降格することができます;)

DS。

0
Homde

インタビューの前に、情熱的な開発者と残りの人との違いを履歴書で確認できます。情熱的な開発者は彼らが何をしたかについて話し、残りは彼らがどのようにそれをしたかについて話します。情熱的な開発者が彼らのブログや個人的なプロジェクトなどをリストしています。残りはそれらを持っていません。

マネージャーは最初の数回の面接に腰を下ろし、面接中に候補者を技術スクリーニングすらしなかったときはほとんど床に座っていました。彼は後でなぜそれをスキップしたのかと尋ねました。 「私はすでに彼のブログで彼のコードを読んでいたので、彼がコードを書くことができることを知っている。」

インタビュー中、1つの質問で「テクノロジーに夢中になっている」という情熱を特定します。情熱的な開発者は、コンピューターを初めて使用し、プログラムを書いたときのように熱心に取り組み始めるため、などなど。残りの人からの返事を聞くと、あくびを抑えなければならないことに気づきました。

最後に、私の技術画面は、情熱的な開発者が気分を害するかもしれない質問から始まります(私はそのように言います)、情熱的でない開発者は、それらのいくつかまたはすべてにさえ正しく答えるかもしれません。情熱的な開発者は、あたかもチートシートを持っているかのように彼らを怒鳴らせます。

私のバイアスは、学び、成長することを熱望していない経験豊富な開発者よりも経験が少ない情熱的な開発者を雇うことです。単純明快な事実は、テクノロジーの変化が速すぎて、仕事を必要とせずに今後のトレンドに遅れをとらない人を雇うことができないことです。

これはばかげた証拠ではないことを十分に認識しています。私の方法のために、いくつかの質の高い才能が私の指をすり抜ける可能性があります。非常に熟練しているが、コンピューターを5歳にする人がいることを知っています。一方、私は情熱的なプログラマーに定期的に感銘を受け、長年の経験に関係なく、彼らからできるだけ多くを学んでいることにすぐに気づきました彼らは私からです。

0
Michael Brown