FizzBu​​zz-本当に?[閉まっている]


60

「インタビューテスト」の質問に関しては、FizzBu​​zzの主題がしばしば取り上げられます。それについてのCoding Horrorの投稿もあります。

さて、このようなサイトを読むのが面倒なら、おそらくFizzBu​​zzを些細なもの以外の何かと思うプログラマーの人口統計学にいる可能性は低いでしょう。

しかし、プログラマの99%がそれに苦労するのは本当ですか?

本当に?

これを裏付ける証拠は何ですか?

いくつかの実際の例は、この質問に答えるのに非常に役立ちます。


57
プログラマの99%ではなく、応募者の99.5%です(多くはプログラマではありません)。
webbiedave

4
私はインタビューでそれを得るまでそれを信じませんでした-私は後で仕事を得て、後でそれについて最高経営責任者とまだチャットしました。どうやら99%はほぼ正しい。Oo
Fishtoaster

3
フィズバズの質問は神話だと思っていたのか、それとも新入生の初心者向けだと思っていましたが、ある日、インタビューで尋ねられました。ええ、多くの候補者は本当にこれで問題を抱えていますか?
-DarenW

2
私はインタビューでFizzBu​​zzテストを定期的に実施し、定期的に失敗させています。ある日、グラフィックデザイナーが合格しました。.....少し驚いた:)
ブランドンワンボルト

4
@ローグコーダー-ねえ、私たちは愚かではなく、ただ奇妙です。そして、私たちのほとんどは数学を吸います。
イナイマティ

回答:


46

99%?いいえ。かなりの割合ですか?はい。人とのインタビューの私自身の直接の経験から、私はこれに証言することができます。取るに足らないように思えるかもしれませんが、プログラミング分野には、多かれ少なかれ何年も偽造してエントリレベル以外のポジションに応募し、これに失敗する人がたくさんいます。

簡単に解決できたとしても、そのような些細な仕事をするように頼まれることについて、あなたは私に大きな静寂を与えます。チームの一員であるということは、楽しみではないが必要なことを時々しなければならないことを意味します。すぐに、一緒に仕事を始める前に、私があなたに頼んだことを上回っているというあなたの特別なステータスを試して、主張することが最善であると思うなら、それはあなたに対するマークとして機能します。

あなたのソリューションがどれほどエレガントであるかは必ずしも気にしません(それは良いことですが)が、ホワイトボードであなたがそれを突き刺すのを見て、それを通してあなたの方法を話すことは、あなたが少なくともそれを突き刺すことをいとわないことを示しています。inして、「私はコードサルではなく、問題解決者です!」その後、ペグをノックダウンします。

私は、インタビューを始めようとさえすることを拒否するインタビューを受けた人たちがいた。ただ拒否するだけです。いいえ。しません。1つまたは2つ以上の丁寧な質問をして、彼らの時間に感謝し、インタビューを終了します。

私はこれをマネージャーとして、また開発者として言っています。


1
それを試みることを拒否した理由は何ですか?
ジョンホプキンス

3
直接聞いたことはありません。二度目の拒否の後、私はさらにいくつかの質問をして、インタビューを締め切りました。私がGUESSに行くとしたら、彼らは試してみるのが緊張しすぎている(私が慈善活動をしている場合)か、彼らは実際にその場でそれを理解することができません(私はより冷笑的である場合)。
トッドウィリアムソン

1
インタビューでコーディングすることを拒否する男を知っています。また、数秒のグーグル検索で検索できるものは何でもメモリにコミットすることを拒否します。彼は「問題解決者」です。
kirk.burleson

4
繰り返しになりますが、ホワイトボードのコーディングは、インタビュアーがあなたに与える問題です...おそらく解決する必要がありますか?私にとって、インタビューでのコーディングを拒否することは、インタビュアーが抱えている問題の解決を拒否することと同等です。したがって、「問題解決者」という用語との矛盾は、男が「問題解決者」であるようなものです。
スポイケ

@Spoikeいや、問題解決者はプログラミング言語の構文を知る必要がないからです。
ピエールアラード14

25

私は、仕事に応募する(そして仕事を手に入れない)プログラマの99%が仕事に苦労するかもしれないと思います。しかし、生産的に仕事をしているプログラマの99%ではありません。

それが現代の求職プロセスの性質です。応募する多くの人は資格がありません。

このCoding Horrorの投稿は、今日のコンピューターサイエンスの教え方についても語っています。過去(特にMIT)では、Lispのようなことを学ぶ必要がありました。Lispでは、再帰のような概念を理解する必要があります。

現在、Javaは業界で広く使用されているため、人々にJavaを教えています。Javaは深いプログラミング思考ではなく構文に焦点が移りました。私はJavaが嫌いではありません。実際、理想的な最初のプログラミング言語だと思います。しかし、インストラクターがそれを使って深いプログラミングの原則を教えているのを見たことはありません。


11
ええ、私たちの教育システム(少なくとも米国では)はこれの大きな部分だと思います。私は、ソフトウェアプログラミングで2年の学位を取得し、優等で卒業し、コードの読み書きができなかった人を知っています。
レイチェル

8
Javaを教えることに反対する議論は弱いものです。概念はほとんどの言語で教えることができます(たとえば、再利用はJavaで簡単に記述できます)。教えられた概念の教えが弱くなっていることに異議はありませんが、実装言語についてarbitrarily意的に非難することはありません。
スティーブンエバーズ

1
ああ、再帰のようなものは教えられます、彼らはただ慣れません。100行のIFステートメントを書くことで、再帰関数を書くのと同じ成績が得られます(少なくとも、私が行った場所でやったことです)。また、100行のIFステートメントは、急いでいるとき(つまり、 '宿題をする必要がある5分前まで宿題をスキップしました)
レイチェル

1
@SnOrfus:Javaのせいでもありません。私はJavaを教えることに反対しませんでした。はい、これらの概念をJavaで教えることができますが、私が取ったJavaクラスではなく、それが起こるのを見たことはありません。とはいえ、MITは当初、導入プログラミングクラスにSchemeを選択しました。これは、非常に単純な構文を持っているため、言語の構文にあまり集中せずに、プログラミングの概念について早期に考え始めるためです。
ロバートハーベイ

4
いったい誰が「ジャワを教える」大学に行くのか。プログラミング言語学校は(Java、C ++、Lispなど何であれ)役に立たない。それはあなたがアメリカに持っているものですか?私が CS 学んだところで、あなたは多かれ少なかれ必要に応じてプログラム言語学んだ(例外はパラダイムクラスだと思う)。大学のコースでは、数学、CS理論、複数のプログラミングパラダイム、計算などを学びました。それを卒業すれば誰でも簡単にFizzBu​​zzを解決できます。
アンドレスF.

20

私はこれを言うのが嫌いですが

プログラミングの質問に答えられない主な理由は、回答者ではなく質問者のせいです。

一定の時間で実行される特定のコレクション検索アルゴリズムを作成する方法を尋ねられたインタビューの1つを明確に思い出すことができます(コレクション内のアイテム数に関係なく、同じ数のルックアップ)。私はあきらめて、あきらめる前に20分間それをぶちまけました。面接を行うこの天才は、ほぼ一定の時間で動作するものの、一定の時間ではないものとして答えを実証し始めました。「ゼロの答えをくれ」と言ってから0.1を受け入れるようなものです。

手短に言えば、インタビューをしている人が次の基準を満たしていない質問をしているケースがあまりにも多く見られます。

  1. 彼らはすべての可能な正解を知っています。
  2. 彼らは正しい答えが正しい理由を知っています。
  3. 彼らは、答えを明かすことなく、実際に十分な情報を提供する方法を知っています。
  4. 「問題解決」の質問は、非公開の事実の知識に依存しません(これは私が見た最大の問題です)。
  5. あなたがそれを理解する必要がなければ、答えを書くのに1分もかかりません。コードを入力するだけで5分かかる場合、面接の口頭部分に収まるよりも多くの問題解決が本当に必要です。
  6. 質問は、「一度遭遇した問題、または学校で与えられた問題であるため、今すぐ解決する方法を知っておく必要があります」だけではありません。答えるのに2分以上かかったと思いますが、なぜ候補者に同じ礼儀を与えないのでしょうか。

真剣に(1)、インタビューの口頭部分でコードを書くように人々に頼むことは愚かだと思います。

真剣に(2)、コードを書くように頼まずに人々にインタビューすることも愚かだと思います。

真剣に(3)、「宿題」を与えるか、コードサンプルを持ち込むように依頼するか、ラップトップといくつかの質問と静かなオフィスを与えて作業する必要があります。その後、作業中はそのままにしておきます。外部ヘルプ(チート)を取得する能力が制限されるため、通常は後者のアプローチを使用します。


インタビュアーとの議論で、なぜ彼らの解決策が一定の時間ではなかったのかを説明しましたか?もし私がインタビュアーであり、あなたが簡潔にでき、悪意なく私を納得させられなかったなら、私はその場であなたを雇うことを間違っていました。
ネミ

1
@Nemi-はい。問題の人は雇用権限を持つ人ではありませんでしたが、私はその職について申し出を受けました。
MIA

8
int? result; for (int i = 0; i < int.MaxValue; i++) { T item = (i < array.Length) ? array[i] : someDummyItem; if (item == whatWereLookingFor) result = i; } return result;-一定時間:)
コンフィギュレー

間違っている場合は修正しますが、ハッシュテーブルが適切に行われ、衝突がないと仮定すると、ハッシュテーブルのアクセス時間は一定であると思います。したがって、一定時間内にハッシュ関数を使用した検索が可能になります。
Trylks

ハッシュは衝突する可能性があります。だからこそ、通常は一定の償却時間と言われています。
リグ14

10

必要なのは、FizzBu​​zzで検索することだけです。ブログ投稿の巨大な波がそれにありました。一般的に言って、ブロガーは「(ある言語)でそれを書くように人々に言った、そして彼らが犯した間違いの種類はここにある:」とそれからいくつかの落とし穴をリストした。楽しみは、人々が「[はい!](他の言語)で取るに足らない、あなたが書く必要があるのはこれだけです」というコメントから始まり、その後にコードが続きます。次のコメントでは、必ず最初のコメントでバグを見つけます。一部の非常に優れた開発者は、どの言語でも最初は正しく動作しないようです。エラーの一部:

  • 1〜100を要求しましたが、1〜99または0〜99を実行しました
  • フィズやバズと一緒に数字を印刷するかどうかをめちゃくちゃにする
  • 「fizzbuzz」と「fizz-buzz」の不一致
  • 最適化に失敗しました。たとえば、一度比較すると2回比較すると
  • さらに多く

私が雇用するとき、私は人々にホワイトボードでコーディングするように頼みます、その近くには何もありません(私は知っています、あなたはそれが複雑だとは思わない)、多くの候補者は完全に失敗します。私は、vbスタイルのIf、Then、End Ifを書くがブレースも入れて(ちょうど安全側にあると思います)、C#を書いて(最初にC#?論理エラーで私を始めないでください!


2
@Jeffのほとんどの開発者は、まずコンパイルできないものを作成します。良いものは見て、単純な構文エラーを修正します。良いまたは落ち着いたokプログラマーは、関数を書きますが、それを呼び出すコードは書きません。極度に最適化されていないものを書きます。恐ろしいプログラマーは、どこにもコンパイルできないコードを書いたり、まったく間違ったことをしたりします。例えば、3または5にループするのは、99または100または101(ish。)にループするのではなく、問題になっているからです。まったくコード。あなたはそれを見るまで本当に信じられません。
ケイトグレゴリー

7
If {"If {} Then {} EndIf"は完全に失敗とみなされます} Then {あなたのインタビュースタイルに欠陥がある、および/またはそのような些細な方法で候補者を解任できることは驚くほど幸運です} EndIf
Sparr

7
私は毎月少なくとも12か国語でプログラムしています。コンピューターの前に座って、1か月間触れたことのないコンピューターで作業するように頼むと、溝に戻って最初の5分間はそのような間違いを犯します。コンパイラーまたはインタープリターによって出力されます。
スパー

2
@Sparr-確かに。したがって、ホワイトボードで目を通すように頼むと、おそらくそれを見つけて「おっと-私はたくさんの言語を使っている」と言うでしょう。そうでない場合は、「どの言語でそれを書いたのですか」と言います。そして、あなたはそうします。トリックの質問やquestionではありません。一部の人々は実際にコードを書いたことがなく、自分が持っていると主張しています。それがこのような質問のポイントです。
ケイトグレゴリー

2
しかし、私はそれらの質問はそのために良くないと思います。このコメントスレッドが開始される5分前に、VBがコードブロックの周りにブレースを必要としていたかどうか、私には言えませんでした。If / Then / EndIfのほとんどがVB [.Net]のように見えたことをお伝えできました。そして、私はVBでコードを3か月ごとに約2時間作成します(rentacoder.comのタスク、私は実際のVBの仕事は決して受けません、嫌いです)。
スパー

10

あなたが言及したコーディングホラーの記事を読みましたが、私の意見では、ジェフは正しいと思います...しかし、最後にインタビューを受けたのはいつですか?

面接を受けるとき、あなたは通常ストレスが高く、しばしば理論的な質問に答える必要があります(知性、グーグル、再研ぎ器、ストレスに悩まされるあなたの記憶だけ)。テストでも同じです。ストレスはあなたを助けません。

誰かがポジションに適しているかどうかを知る唯一の方法は、彼としばらく一緒に仕事をすることだということに気づきました。雇う???

雇用主は、モジュロを知っているコードモンキーではなく、問題解決者を雇うべきです。

「しばらくの間、すべての応募者」をテストすることはできませんので、面接が必要です。だからこそ、私は質問にそれを集中し(問題解決)、過去の参照チェックを行います。

私の意見では、開発者を探している企業にとって、FizzBu​​zzは成長を維持するのに危険だと思います。


28
ここでの問題は、FizzBu​​zzが非常に低い質問なので、ストレスがあっても答えられない場合、自分を「プログラマー」と呼ぶなら、人々を笑わせるに値するということです。「バブルの並べ替えを実装する」など、少し複雑なものであれば、これらの言い訳や懸念は正当化されますが、FizzBu​​zzの場合はそうではありません。
dsimcha

23
知らない人フィルタリング:Fizzbuzzは、それがために何が得意で人から何かを。そして、何かを知るだけではまだ仕事をするのに十分ではないかもしれません。これは採用決定テストではなく、「面接で私の時間を無駄にしている」テストです。一部の採用マネージャーは、fizzbuzzを使いすぎて自分の仕事をさせようとしません。
スティーブンエバーズ

31
私の良さ、モジュロはある種の難解な演算子ではありません。これは、すべての開発者が自分自身をプロのプログラマーと呼びたい場合に経験を積まなければならない中核的な操作です。とにかく、誰かがFizzBu​​zzを書くことができたとしても、それを雇うという意味ではありません。この人がタスクを完了するために必要な制御フローのレイアウトを試みることができるかどうかを確認するのは簡単な出発点です。
webbiedave

12
FizzBu​​zzが便利だと思うのは、それがとてつもなくつまらないものだからです。forループ、2つのifステートメント、モジュロおよびプリントが必要です。有意義なプログラミング経験のある人なら誰でも、ほとんど考えずにそれを打ち出せるはずです。誰かがインタビューで苦労した場合、完全に有効なリトマス試験だと思います。
アダムクロスランド

11
@snorfus:「他の人の問題」の下に提出。貴重な時間とお金のトレーニングを無駄にし、プログラミングの適性のない人からの結果を待っているよりも、社会的不安を抱えている優れた開発者のボートを逃したいです。他の人間の周りで自分を処理することはできませんか?セラピストをご覧ください。
アーロンノート

10

私は最近、主にPHPで作業する上級職のために50人以上のプログラマーにインタビューすることを任されました。

主に自分自身を楽しませるために、そして私は10の良い質問が欲しいのに9つしかなかったからです。当時の私の意図は、面接の質問であっても、私たちも楽しめることを人々に示すことでした。

申請者の80%が問題を解決しましたが、モジュラス演算子を使用しませんでした。

応募者の15%が問題を解決できませんでした。

申請者の5%がモジュラス演算子を使用して問題を解決しました。

私のサンプリングは非常に限られていますが(1国から50人の応募者)、私はあなたにそれを伝えることができます:

それらの95%は、CSカリキュラムでBS以上を有していました(ここの大学は、CSの音をより壮観にするために競います)。

本当にびっくりしました。まあ、おびえた..しかし驚いた。問題が非常に一般的になったため、結果を再現することに近づいたとは思いませんでした。これは、応募者の5%がスーパープログラマーではないことを示していますが、少なくともプログラミング関連のブログを読んでいます。


モジュラーオペレーターを使用することが最も明白であると思っていたので、問題を解決した人の95%が他の何かを使用したことに驚いています。おそらくそれは、彼らが新しい卒業生であり、数学を自分でやったからでしょうか?
jmoreno

どのクラスでもモジュラス演算子を学んだことはありません。インターンシップやオープンソースプロジェクトへの貢献に時間を費やさなかったなら、産業界に入るまでそれを学んだことはなかったでしょう。また、イントロコンピューターサイエンスクラスの1つで、3項演算子は混乱しすぎて読みにくいため、コーディングの習慣が悪いと教えられました。
ロバートフレイザー

剰余演算子の代わりに何を使用しましたか?x - (x/y)*y
CodesInChaos 14

9

前回の採用では、3人の建設作業員が0人でした。ゼロを繰り返し、プログラミングの教育または経験をソフトウェア開発者の職に適用しました。* それが樽の底です。スキルの正規分布を仮定すると、平均スキルレベルが非常に低くなり、「平均以上」(応募者間)でも比較的悪いことがわかります。

さて、あなたがプログラミング能力のように思われるものを持っていた志願者だけを熱狂させているならば、あなたは今持っていることがわかります:

  1. 嘘つき
  2. 流行語愛好家(.NETに関する記事を一度読みました)
  3. 悪い実際のプログラマー
  4. テクノロジーを使用してプロジェクトを完了したが、それについては知らなかった人(これらを識別するためにidisposableに関するfizzbuzzの質問を参照)

さらに、私が見たいくつかの「フィズバズ」の質問はドメイン固有です。言語/フレームワークxを何年も使用して徐々に開発することができるため(xでz年の経験があります)、特定の部分に出会うことはありません(たとえば、UIコンポーネントの開発についてあまり知らないライブラリ開発者)

同様に、最近多くの開発者がメンテナンス開発を行っているため、一部の分野ではアーキテクチャ/設計スキルが弱い場合があります。

現在、99%が正確かどうかはわかりませんが、IMEはまだかなり高いです。少なくとも80%の範囲。

*いいえ、これらのアプリケーションを呼び出したり、再検討したりしませんでした。


3
同様の状況がありましたが、クライアントとの契約により、プロジェクトに4人のフルタイムの開発者が割り当てられ、プロジェクトは基本的に完了したと言われたので、契約の残りの週。
タングレナ

一部の政府給付プログラム/失業保険では、給付を受ける人が週に特定の数の仕事に応募することを要求しているときにも、そのようなことが起こります。それらのプログラムが、受信者が実際に資格のあるジョブに適用するなんらかの名目上の要件を持っている場合でも、資格のあるジョブを評価し、「ジョブに適用」要件の特定の部分を実施するためのリソースは非常に限られています。
ダニエルマーティン14

8

はい、そうです。おそらく99%ではありませんが、それでもかなり高いです。私はインターンシップとフルタイムの雇用のためにコンピュータサイエンスの学生にインタビューしていました。私は大学で約25人の学生にインタビューしたいと思います。生徒たちが話したので、同じ質問をしないように言われました。私はすぐにそれが問題ではないことを学びました。なぜなら、25人のうち、最初の質問に答えることができる学生は3人か4人しかいなかったからです。「strcmpを書き込む」

2つの文字列を比較する関数を作成するように依頼しました。この関数を使用して、辞書の単語をソートすることもできます。関数の書き方はもちろんのこと、2つの単語を比較する方法を理解していない学生の数には驚くでしょう。そして、これらの学生の一部は、CScですべてのAを取得したと主張しました。

問題はプログラミングが非常に難しいことです。多くの人はプログラミングの方法を知っていると思うのが好きですが、そうではありません。


3
グレードインフレはひどく、みんなの時間を無駄にします!
DarenW

8

いくつかの考え:

  • 彼らのプログラムにバグがあったとしても、彼らは明らかに正しい考えを持っていたなら、私は誰かに対してそれを保持しません。デバッグはプログラミングの一部です。

  • 非常に多くの人々が自分ができないことを知らない仕事に応募しているのは悲しいと思います。経済の問題のように思えます。

  • 人々に悪い質問をするのは本当に簡単で、唯一の「正しい」答えはインタビュアーが与えるものです。


2
2番目のポイントについて...私の次のキャリアの動きを熟考し、さまざまな業界を研究し、就職活動に多くの時間を費やしてきたため、多くの異なることで自分の能力レベルを評価しようとするのは大きな困難でした。どうやらこれは(ほぼ)誰にとっても大きな、大きな問題です。
DarenW

@DarenW:あなたは私の同情を持っています。私はあなたが好きなことを知り、そこから仕事をすることが重要だと思います。個人的に私はいつも学校が好きで、工学への興味を疑うことはありませんでした。私の同胞は、彼らが何をしているのかほとんどすべて確信しています。1つはそうではなく、それが闘争であることは容易にわかります。あなたのホームページは、科学と芸術の交差点への関心を示しています-それは素晴らしいことです。一部の人々は若者で悪い経験をしており、それは今、すべてのエネルギーを使い果たすことができます。
マイクダンラベイ

7

このテストは、私が雇うプログラマーについて知りたいいくつかのことを非常にうまくカバーしています。

  1. まったくプログラムできますか?
  2. プログラムを最初から作成できますか(誰もができるわけではないため!!!)
  3. あなたはせずに問題を解決することができますにわたりそれを-thinking。

最後の点について詳しく説明すると、フィズバズに対する無数の解決策があります。読みやすくしますか?速度?簡潔?プログラムをすばやく書き終えようとしていますか?プログラマーがこの単純な問題をどのように攻撃するかは非常に重要です。プログラマーが解決策を選択して最後までそれを見ることができない場合、それはこの人が実際のタスクでどのように実行するかについて何を教えてくれますか?


6

残念ながら、印象的な外観の履歴書を持つ多くの人々は、基本的なプログラミングスキルを欠いているようです。私は履歴書にCとC ++をリストする人々がポインターについての基本的な質問に答えることができない多くのケースを見てきました。


3

FizzBu​​zzが私を避けるのを助けてくれることを願っています。

  1. プログラミングの知識がないか、プログラミングの関連知識がないチャンサー。通常、CVからこれらを認識できますが、常にではなく、単純なプログラミングタスクを与えることは、それらがプログラマではないことを明確にする良い方法です。
  2. プログラミングコースまたは学位を修了したが、実際にプログラミングの方法を知らないJavaの卒業生。これらの人々は、理論について話すことはできますが、実際的なスキルはないため、除外するのが難しくなります。単純な問題をそれらの前に置き、解決策と解決策の説明を求めることは、ペトラJavaとポーラBeanの違いを見るのに非常に良い方法です。

どちらの場合でも、完全な実装についてはあまり気にしません。開発者の仕事に応募する人々と一緒に行う必要があるテストは、彼らがまったくプログラムできることです。

そうは言っても、私はおそらくいくつかの理由でその特定のテストを気にしないでしょう。まず、それは非常によく知られており、上記のグループのいずれかがすぐに試してみるでしょう。次に、スティーブイェッジの電話画面の質問を使用して、プログラマー以外の人を選別する前に選別することを好むでしょう。職業を真剣に受け止め、確かにインタビューを保証する開発者の上位1%。同様に、誰かがここまたはSOで良い担当者を持っているなら、私は彼らにインタビューしたいと思うでしょう。


A)「良い」とはどの程度ですか?B)雇用していますか?:)
スパー

3

開発者が、FizzBu​​zzをコーディングできないのは、自分の作品をコピーして貼り付け、意識的にコードを書かないようにする「9対5」が表示されるまでです。上級開発者の1人がC#開発者に3年の「経験」を与えて辞書の使い方を教えているのを聞いたとき、私はそれを信じることができませんでした。インターフェース?デザインパターン?標準?ヤグニ?私のリードはヤグニのことを聞いたことがありませんでした!これらの人々が知らないことは驚くべきことです。

今信じています。また、十分なことをしている開発者が多すぎると思います。


3

なぜそんなに人気のある質問なのかというと、答える方法が複数あり、候補者がどの方法を選択するかによって、彼らがどのようにコーディングするかについての洞察が得られるからだと思います。Stack Overflowで10K担当者がいる場合、ここにいくつかの素晴らしい例を見ることができます。

99%の統計については、その数値の出所を確認してください。おそらく偏っています。エントリーレベルのプログラマーが最初の仕事のためにインタビューすることに基づいている場合、そうです。特に、候補者の大部分が大学からまっすぐに来ている場合は可能です。私は実際に、おそらく100件のifステートメントをその問題の解決策として書き出す人を思い浮かべることができます。


3
私は、99%の数字が、すべての統計の87%がその場で構成されているという声明の真実(再帰的真実、それ以下)を指していると思います。
アダムクロスランド

1
@Adam Crossland:統計に関する統計の100%もその場で作成されます。
マッチャ

それでも、だれかが大学から熱狂を解決できなかったのは恐ろしいようです。それができない場合、彼らは何ができますか?
モーガンハーロッカー

2
@ironcode私は、fizzbuzzを理解し始めることさえできなかった誰かと一緒に学校に行きました... fizzbuzz値がハードコードされた100行を印刷するものを書くことができたら、私は驚かれることでしょう。彼らは栄誉をもって卒業しました。
レイチェル

2

プログラマーの99%が単純なコーディングテストをプログラミングしたり解決したりすることができないという声明を非常に誇張しています。FizzBu​​zzテストの場合、以前にこの問題に遭遇したことがあり、モジュロ演算子で簡単に解決できるか、以前に遭遇したことがなく、苦労します。インタビュアーにあなたのプログラミングスキルについて何も伝えません。

多くのプログラマーの問題は、インタビューで明らかに悪い印象を残しているのは、技術的なインタビュー方法の性質にあると思います。インタビュアーは、申請者がデータ構文、ハードウェアアーキテクチャ、設計パターンなどの言語構文、詳細、計算の複雑さを記憶し、即座に再現することを期待しています。コンピュータサイエンス/ソフトウェアエンジニアリングの分野は広大です。すべてを暗記することは不可能であり、無感覚です。

現実の世界では、あなたに割り当てられたプログラミング/設計の問題を理解し、問題を解決する方法(IDE、マニュアルページ、書籍、グーグルなど)を見つける場所を知ることが重要です。ただし、これはインタビュアーがテストしないものです。


14
FizzBu​​zzの簡単さを実感していますか?遭遇する必要はありません。あなたが苦労しているなら、キャリアの変更を検討してください。
ジョンスミス

ただし、除算を使用すると、モジュロなしで解決できます。%の代わりに/を使用する正しい解決策は、私にとってはうまくいくでしょう。したがって、彼らは非常に基本的な数学と非常に基本的なプログラミングを理解する必要があります。
アルモ14

0

私はまだ比較的後輩のプログラマーです(私は2年ほどお金をかけてコーディングし、その前に約2の専門的能力で副責任としてコーディングしてきました)ので、十分な塩分を使用してください。

私は大規模エンタープライズプロジェクトのコーダー向けの最初の画面を作成した経験があります(プロジェクトが運命にあることはわかっていましたが、とにかく支払いを望んでいました)。採用を行っている会社で唯一のプログラマーとして、履歴書をレビューし、応募者を選別するタスクを与えられました。

これは政府プロジェクトのためだったので、おそらく最も才能のある応募者を引き付けなかったかもしれませんが、実際にコードが表示されたgithubアカウントを持つ人からもポートフォリオを持っている人からも1つのアプリケーションを受け取っていなかったので、fizzbuzz(文字通り正確な問題)、彼らがプログラムできるように見えた人への最初のパスとして。

私はそれが愚かであることは知っていたが、動作するコードを見たいだけであり、彼らが望んでいるなら、同等以上の価値または本当に何かの別の例を送ることができると述べた擬似謝罪でそれを序文しましたが、そのfizzbuzzで十分です。

その結果、実際には正しい回答が1つも得られませんでした。これは、インターネット上の回答の量を考えると驚くべきものです。誰も盗用を気にしませんでした。失敗した以前のプロジェクトのイテレーションで以前働いていた人を雇うだけでした。

エクササイズの最初のショックと政府のソフトウェア/契約のねじれについての失望の後、私は自分のスキルについて非常に良く感じました。

編集:正しくないということは、オフバイワンエラー(つまり、99ではなく100を要求した)や、簡単な修正であるその他の無害なバグを意味しません。私は機能していない、つまり実行/コンパイル/などされないか、問題が読まれず理解されていないことを明確に示しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.