R#またはCodeRushを使用したことのある人なら誰でも、簡単なキーボードショートカットを使用して、簡単な構造を組み立てる(および複雑なものをリファクタリングする)速度を知っています。ただし、これらの生産性プラグインはインタビュー中に能力の誤った評価を引き起こしますか?
生産的なコードライターになること(およびインタビューで第一印象を良くすること)の一環として、優れたコードをすばやく作成できます。
候補者が2人いた場合:
プラグインを使用しません。彼女は問題について考え、在庫IDEを彼女のように見え、いつものように1〜2分でコードを入力するインタビューPCに座った。完了。パス。
プラグインを使用します。彼は問題について考え、在庫IDE=インタビューPCに座って、 "fe + tab"がforeachループを自動的に作成しないこと、そしてすべてのショートカットがなくなったことを認識します。キーボードの周りで通常のホットキーを押して奇妙なウィンドウをポップアップし、慌てます。通常30秒かかることを書くのに3分かかります。完了しました。IDE時々。これは初めてである必要がありますIDEしたがって、それについて、またはおそらく言語についてあまり経験がありませんでした。合格しましたが、名前の横に「meh」マークが付いています。
あなたの経験では、面接担当者または面接担当者としての面接中にプラグインをどのように処理しますか?候補者が本当に知っていることを取得するためのベストプラクティスは何ですか?コードを理解せず、R#を松葉杖として使用する候補者がいる可能性があります。また、組み込みのVSまたはEclipseテンプレートよりも単純なため、R#の内外を理解し、R#を使用する候補者もいます。 IDEをまったく使用しないのが最善でしょうか?彼らが自分のPCを持ってくるようにしますか?その他?
ごく最近、面接の候補者2でした。非標準のキーボードとなじみのないテストフレームワークを備えたPCにIDEをバニラインストールし、ユニットテスト付きの簡単なFizz-Buzzアプリを作成するように求められました。私は完全に初心者のように見え、コードをハッキングしようとして暗闇の中で偶然に出くわしたに違いありません。
私が学んだことは、プラグインに大きく依存しているということです。彼らはコードをより速くタイプするだけでなく、実際にコードについて私が考える方法を形作るとコードについて行く方法を示します。たとえば、変数名は事後に変更するのが面倒になる可能性があるため、変数名については慎重に考えていました。これとは対照的に、変数の使用方法について中途半端に推測し、コードをハックアウトし、変数にその目的を教えてから、Refactor-> Renameを押して、より適切なものを呼び出します。
これにより私は能力の低い候補者になりますか?ある意味で、私はそうだと思います。メモ帳でコードを記述し、それを正しくコンパイルして実行できる人は、IDE彼が得ることができるすべての良さを必要とする私よりも優れています。その観点から、私は完全に理由を理解していますどの会社も私のようなツールヘッドを雇わないことを選ぶでしょう。
一方で、私はまだ才能があり、有能なシニア開発者です。私は自分にとって何が有効かを学び、自分自身の弱点と限界を考えると、生産的になるような怠惰を実践しています。要するに、私は、私をそらせたような会社に本当に利益をもたらすことができる種類のプログラマーです。
興味深いことに、数週間前に別のインタビューを行いました。以前の経験に続いて、私はそれらを購入するための追加のツールや予算について質問することにしました。どちらもないことを発見したことで、theyがmeになったという(かなり寛大な)提案に断る理由がもう1つありました。
したがって、グルーチョを言い換えると、「私のような従業員がいるような会社には参加しません。 "
とにかく、ReSharperの使用を許可しない限りは。
彼らに(候補者、つまり)好きなように使わせる。古い、あなたに見せるためにスイスアーミーナイフでウォルマートを作るアプローチはとても古いです。彼らは毎日の仕事に必要なものは何でも使うつもりです(まあ、私は確かにそう望んでいます)。したがって、インタビューで好きなように使ってもらいます。重要なのは最終的な結果です。そして、市場で入手可能なツールとそれらを効率的に使用する方法を知っている候補者をはるかに喜んで雇い、次にすべてを手動で行う担当者を雇います。これはキラー業界です。
pS例として、Vim(またはEmacs)を考えてみてください-カスタマイズされた設定やプラグインなどなしで使用しますか?
私はReSharperのようなツールが実際にあなたをすべてより優れた候補にすると主張します。
まず、ReSharperのようなものは、あなたが知らなかったかもしれない言語構成について、そして問題について考えたり、読みやすくするためにコードを構成するためのより良い方法を教えるでしょう。 ReSharperは、ある意味では、コードをスリングするためのベストプラクティスに精通しているのではなく、悪い習慣や時代遅れの習慣、あるいは悪い種類の怠惰にフォールバックすることはありません。
優れたコーダーは、基本的な構造を理解する必要がありますが、手動で入力する必要はありません。優れた遅延は、ツールに生まれながらの大げさな仕事をさせることができ、節約された余分な時間は代わりに問題について考えることに費やされます。これは全体としてより良い開発者になります。
面接プロセスでスティックやナイフが好まれる場合、それは根本的に壊れていると述べて、推論の流れを完成させます。
すばらしい質問BTW-私はしばしばこれを考えました。
ツールを習得することは、優れた開発者になるための中心的なスキルです。開発者がを好むと主張するとき、私はいつも警報ベルが鳴るのを感じてきましたIDEを使用するためのメモ帳でのコーディング。それは彼が製品よりもプロセスにもっと興味があることを示唆しています。
それは鍬とトラクターで土を耕すのを好むようなものです。趣味の庭師なら大丈夫ですが、競争の激しい経済では工業農家としてはサポートできません。
ただし、ツールに依存するようになります。私たちのツールが突然削除されたという架空の状況で、私たちがどのように対処するかについて人々はびっくりしています。電卓を試験に許可することについても同じ議論がありました。
現実には、ツールは年々どんどん良くなり、ますます安くなり、ツールがなくなると想定する理由はありません。また、ツールは反復性の高い作業を高い品質で行うのに優れています。つまり、信じられないほどのホモサピエンの知識の全力を困難な(そして興味深い)部分に集中させることができます。
ReSharperはVisual Studioへのすばらしい追加です。私の現在の会社はインタビューを受けたときReSharperを持っていませんでしたが、インタビューでそれが伝道的であったので、私がインタビューに応じた開発者と同様に、ポジションを受け入れると、彼らは私にコピーを購入しました。現在、全社的に展開されています。優れたツールはすぐに元が取れます。
だから質問に答えるために:ツールへの依存かもしれませんはインタビューであなたの能力の誤った評価を引き起こしますが、それらはalways面接担当者の能力を正しく評価します。会社が面接でのツールサポートの価値を認識していない場合-表示する必要がありますそれらに光。それでも彼らがそれを見ない場合、私はそこでのポジションを受け入れることを非常に心配します。
これが、IDEではなくホワイトボードでコーディングするように私が人々に求める理由の1つです。それは競技場を平準化します。そして、人々は「親愛なる、リシャーパーは通常私のためにこれを処理します」と言います。組み込みのスニペットはループなどのハンドルであり、ホワイトボードでは提供できません。その場合、「句読点がそこにあるといいのですが、私はR#のやつです」などと言って、構文の問題が発生しないようにする必要があります。
ホワイトボードに理解しやすいコードを書く能力が必要です。それにより、私たちがどのように行うかを検討する会議を開くことができます。そしてもちろん、あなたがあなたの人生で実際にコードを書いたことがあるかどうかを見たいです。インタビューは異なる場合があります。