プログラマーがプログラミングできない理由

Reginald Braithwaiteからこの観察を読んだとき、私は信じられませんでした:







私と同じように、著者には、各プログラミングタスクの200人の応募者のうち199人がコードをまったく書き込めないという問題があります。 私は繰り返します: 彼らはまったくコードを書くことができません


彼が意味する著者はイムラン・ゴリであり、単純なプログラムを書くことができない多くのプログラマーに明らかに背を向けています







かなりの試行錯誤の後、コードの記述に問題がある人は、大きな問題や小さな問題に苦労するだけではありません(たとえば、リンクリストの実装を作成する)。 小さなパズルを解くには問題があります。



そこで、この種の開発者が識別できる質問を作成することにし、英国の学校で子供たちがよくプレイする(またはプレイを余儀なくされる)ゲームに敬意を表して、「FizzBu​​zzの質問」と呼ぶ質問のクラスを考え出しました。 Fizz-Buzzの問題の例は次のとおりです。



1から100までの数字を印刷するプログラムを作成します。ただし、数字ではなく3つの「フィズ」値の倍数、および5の倍数の「バズ」の場合。 同時に3と5の倍数の数値の場合-「FizzBu​​zz」。



ほとんどの優秀なプログラマーは、数分でこれを行うプログラムを紙に書くことができるはずです。 怖いものを知りたいですか? ほとんどのコンピューターサイエンスの卒業生はできません。 また、シニアプログラマーの候補者がソリューションを作成するのに10〜15分以上かかることもわかりました



ダン・ケーゲルは、エントリーレベルのプログラマーを雇う同様の経験がありました







驚くほど大きな割合の応募者は、コンピューターサイエンスの修士号と博士号を取得していても、失敗し、最も単純なプログラミングの問題を解決するよう求められます。 たとえば、「1から10までカウントするサイクルを書く」または「16進法でFの後の数字を教えてください」と答えられない卒業生に個人的にインタビューしました。問題。 これらは基本的なスキルです。 それらを持っていない人は、おそらく十分にプログラムされていないでしょう。



潜在的な新入社員にインタビューすることになっているソフトウェアエンジニアに代わって言えば、プログラミングに取り組むのが難しい候補者と話すことにうんざりしていると自信を持って言えます。 履歴書の各言語で1から10までのサイクルを正常に記述でき、電卓を使用せずに簡単な算術を実行でき、再帰を使用して実際の問題を解決できれば、すでに多くの先を行っています!



レジナルド、ダン、イムランの間で、私は少し心配し始めています。 私は、キャリアの開始時に新しく造成されたプログラマーに譲歩を与える用意ができています。 誰もがどこかから始めるべきです。 しかし、それは私を混乱させ、いわゆるプログラマーが単純なプログラムを書くことができずに仕事に応募することをoutします。 これは、プログラミングで生計を立てている人にとっては平手打ちです。







プログラムできる人とプログラムできない人の間に大きなギャップがあることはよく知られています。 プログラマーとして仕事に応募する人はすでにこの深aを越えていると思いました。 これは明らかに不合理な仮定です。 どうやら、FizzBu​​zzなどの質問による候補者の予備審査が単に必要になります。







FizzBu​​zzテストが単純すぎて目がくらむほど軽いとは思わないように、Imranのメッセージの解説者はその有効性に注目しています。







面接官に[FizzBu​​zz]テストを簡単すぎると却下させたくありません。 私の経験では、どれだけ多くの候補者が最も単純なプログラミング作業を行えないかは本当に驚くべきことです。



最初に彼のコードを見ずにプログラマーにインタビューを始めるのは愚かかもしれません 。 Vertigoでは、電話インタビューフェーズに進む前にサンプルコードが必要です。 また、オンサイトインタビューには、少しコーディングの練習が含まれています。 複雑なことは何もありません。1時間程度で小さなアプリケーションを作成するタスクを実行できる基本的な演習です。 1つまたは2つの顕著なスパイクがありましたが、ほとんどの場合、この戦略はうまく機能しました。 これにより、面倒なパズルの質問に頼ることなく 、インタビューで実際のソフトウェア開発に集中することができます。







本当にプログラムできるプログラマーにインタビューする贅沢可能にするために、非常に多くの予備チェックを行わなければならないのは残念です。 それほど悲しくなければ面白いでしょう。 私は認定のファンではありませんが、スティーブマッコネルが真のプログラミング専門職を作ることについて彼のすべての話で何かをするのに忙しかったことは本当に驚いています。







PS



費やした時間を検出することで、以下のJavaScriptの問題を解決することをお勧めします。 調査は匿名で、だましても意味がありません。 正解はこちらです。 グーグルを使用して67分かかったことを認めます。 確かに、彼は日本の方法を使用して時間を費やしました-最もばかげた仮定とそれらをタスクに当てはめると、確かによりエレガントな解決策があります。 ヒンドゥー教のコードをとかすのにもう少し時間を費やしました。 本当にたくさんいるの? :)







1から100までの数字をコンソールに印刷するプログラムを作成します。ただし、数字の代わりに3の倍数「Miss」を印刷し、5の倍数「Kiss」を印刷します。 3と5の両方の倍数である数字の場合は「MissKiss」と印刷します。 各印刷は、50msの遅延を伴うconsole.log関数の非同期呼び出しである必要があります。



All Articles