最近の卒業生は基本的なプログラミングの概念に精通していると思いますか?[閉まっている]


9

大学で数年間プログラミングを勉強している人に期待することと実際に知っていることの間には大きな違いがあるようです。

面接で複雑すぎる質問をしているような気がしません。私の通常の質問のいくつかは:

  • 参照型と値型の違いは何ですか?

    インタビュイーが自分の答えを実際に理解していないようである場合、または使用している用語がわからない場合は、int i = 0と書くとどうなるかを説明するように依頼して、詳細を調べます。メソッドでは、オブジェクトo = 0、オブジェクトo = new MyClass()などはどうですか...

    基本的に、面接対象者をだましてコールスタックやヒープなどを教えてくれるようにできる限りのことを行い、言語にとらわれない概念にとどまろうとします。インタビュイーがC、C ++、またはc#をたくさんやったと私に言った場合、私は特定の言語と、場合によっては実装の詳細について詳しく説明します。

    必要に応じて、インタビューの対象者に、コールスタックとは何か、または選択した命令型言語で関数に渡された引数が格納される場所を尋ねます。

    ほとんどのインタビュー対象者は、コールスタックが何であるか、ボクシングの考慮事項はもちろんのこと、何も知りません。

  • 抽象クラスとインターフェースの違いは何ですか?どちらを使用するべきですか?

    通常、私はまた、いくつかの継承といくつかの抽象的なファクトリを使用することを目的としたユースケースを備えた小さなライブラリの設計を想像するように依頼します

    インタビュー対象者のほとんどは、実際の目的がどのような継承であるかをまったく知りません。彼らは通常、いくつかのキーワード(仮想、オーバーライドなど)を知っていますが、仮想テーブルが何であるかを説明することは言うまでもなく、それらをいつ使用するか本当に知りません。

事前にCVをスクリーニングしていますが、複雑なアーキテクチャを含む実際のプロジェクトで5年の経験がある人でも、面接対象者全員がこれら2つの質問に正しく答えることができるのは25%未満です。そして、私が適切に言うとき、私は「詳細」を意味しません...概念が何であるかについてのおおよその考えを持っているだけです。

後輩については、時間の整理の仕方がわからない人や、産業の構築プロセスなどに慣れていない人を雇っても大丈夫ですが、「コールスタック」は、コンピューターサイエンスを数年勉強した後、愚かであるか、やる気がなくなったか、大学を非常に賢く選択しませんでした。

私はここで過激すぎると思いますか?大学を卒業した後、これらの基本的な概念を学ぶことは一般的ですか?これらに精通しておらず、数年後に非常に優れたソフトウェアエンジニアになった人々をご存知ですか?そして、私の会社には才能のある人々を引き付けることに問題があると思いますか、それともあなた自身の雇用プロセスで同じ種類の問題を経験しますか?


編集。「即時型」については、通常はフランス語でインタビューを行うので、それはフランス語から英語への文字通りの翻訳でした。私の質問ではそれを修正しました。しかし、それでも、皆さんは私が何を意味しているのかを完全に理解していると思います。


4
ほんの少しの発言ですが、私はあなたが即時型、値型で何を意味するのかわかりませんが、一方で説明できます。しかし、CSの学位を取得した人なら誰でも、この2つの質問に答えられるはずだと思います。あなたの質問を改善するために、多分あなたはあなたが期待する答えがどれくらい徹底的であるべきかの例を与えることができます。
sebastiangeiger、2011

大学で2年間以上言語を勉強していて、他の科目とのコンテストでは、テストが終わった後、学生は最低限のことしか学べません。あなたが確信できる唯一のことは、彼らがその情報を学ぶことができるか、彼らがかつてそれを知っていたことです。実践的な経験だけが知識を永続させることができます。Joel Spolskyが、プログラマーが期待する多くの能力が学生に欠如している理由と好例を彼のブログ記事(http://www.joelonsoftware.com/items/2009/10/26.html
Justin Shield

@sebastiangeiger; あなたは正しく更新されました!
ブラン、2011

2
彼はほとんど何も知らないことを知らなければなりません。これは、時間の経過とともに改善するための重要なポイントです。
deadalnix、2011

興味深いことに、この質問に回答したすべての人が「即時型」(翻訳エラー)について言及し、それが何であるかを知らないと言っています。あなたのインタビュアーは言っています:「私はこれらの問題を詳細に研究していませんか?」それとも彼らは、例えばランタイムの詳細やコンパイラーの深い理解の専門家であると主張していますか?
Pindatjuh 2011

回答:


15

用語は面接状況でよくある落とし穴です。

あなたは何かを意味する用語を使ってインタビュー対象者に質問をしますが、インタビュー対象者は別の用語でそれを知っているかもしれませんし、特定の言語や環境に適用せずに一般的な理論を知っているかもしれません。誤解が続きます。どちらのパーティーも幸せではありません。

実際、インタビュー対象者は、一部の値がレジスタに直接格納されている可能性があり、他の値が別の場所にあるメモリのチャンクを参照していることを完全に理解していることがわかりました。あなたが面接対象者にあなたに伝えたいことは、実際には伝わりません。

たぶん、あなたはインタビュー対象者が突然クリックして「ああ- それがあなたが話していることだ」と行き、それからかなり適切に説明する多くの状況に遭遇します。

大学を出たばかりのプログラマーは、チーム環境での実際の開発で得られるような多様な経験をすることができないので、これは厳しいバランスです。その一方で、経験豊富な開発者は、大学で学んだすべてのことを覚えていない(または興味さえ持っていない)ことがよくあります。

これらの2種類の人々(うん、それはインタビュー対象者とインタビュアーです)はお互いについて学ぶ前にお互いにコミュニケーションする方法を学ぶ必要があります。責任は、これを確実にするために、より優れた経験を持つ人(インタビュアー)にあります。

一部の人々がインタビューで完全な記憶障害を起こすという事実は言うまでもありません。私も含まれます。私はCでプログラムを書くように求められたことを覚えていますが、私は一生、ポインター(->)からメンバーにアクセスするために使用される記号を思い出せず、誰かに尋ねなければなりませんでした。初めての仕事でもありませんでした。少年は、過去15年間私を悩ませたその瞬間を持っています:-)

私の意見でははるかに有用なのは、コミュニケーションをとり、問題を効率的かつ完全に解決できることです。物をすばやく拾う。前向きな鋭い姿勢を示す。他の人々とうまくやり取りし、他のコアバリュー

面接対象者は即時型が何であるかわからないため、あきらめないでください。進め。


@Brann-即時型->値型。指摘
Roger Attrill 2011

まあ、私の質問の文言からは十分に明確ではないかもしれませんが、用語の問題がないことを確認するために私は本当に多くのことをします。特定の状況で彼が選択した言語で何が起こるかをインタビュー対象者に尋ね、コールスタックが何であるかを彼が知っているかどうかを尋ね、異なる種類の思い出があるかどうかを尋ね、関数に渡される引数の場所を尋ねます彼が選んだ命令型言語で保存されています。本当に、用語の問題だとは思いません。場合によっては、インタビュー対象者が、クラスがインスタンス化されたときに舞台裏で何が起こるかについてのアイデアをまったく持っていないことがあります。
ブラン08

「前進する」ことに関して、それは私が通常行うことです。しかし、私の経験では、インタビュー対象者が値の型が何であるかを知らない場合、スレッドの同期についても、ジェネリックの目的についても知りません。したがって、いくつかの質問の後、候補が明らかになったとき仕事に適さない、私は通常彼に技術面接でより良いパフォーマンスをするために何を学ぶべきかについて彼にいくつかのアドバイスを与え、そして次の候補者と進みます:)
Brann

12

言語固有の知識を求めていますが、使用する用語がすべての言語で同じように使用されているわけではありません。私は-一つに-「即時型」が何であるかを知りません。

また、大学で教えられていることは、Xの標準コードをいかに作り出すかではなく、多くの基本的な概念を学び、さまざまなプログラミングパラダイムを見たことであると考えてください。言い換えれば、それは運転免許証のようなものです-基本的な理論を知っていても、実際に多くの練習が必要です。


「値型」に更新しました。しかし、問題は、インタビュー対象者が質問を理解できない場合は、通常、より詳細に説明し、インタビュー対象者をだまして、コールスタック、ヒープなどについて教えてくれるようにさまざまなことを試みます(そうです、私は知っています)これらは実装の詳細ですが、それでも実際には言語固有のIMOではない一般的な概念です)
Brann

「コールスタック」の概念は、あなたが話している一般的な概念の1つだと思います。質問を10の異なる方法で言い換えて、メモリ割り当て、コールスタック、値の型などについて教えてくれると期待していることをインタビュイーが知っていることを確認した後でも、多くの場合、空の視線を取得します...
ブラン08

私があなたを正しく理解しているなら、開発者がポインタを知っているかどうか、そしてポインタが何をしてどのように使用するかを知りたいですか?

いいえ、しません。私は、開発者が選択した言語の機能xまたはyを使用するときに、舞台裏で何が起こるかについて、少なくとも大まかな考えを持っていることを確認したいと思います。ポインターについて彼に尋ねることは、彼にメモリ割り当てに関して知っていることについて彼に話させるための単なる方法です。
ブラン

3
@Brann、コールスタック、ヒープなどに関するすべての詳細なものは、基本的に適用される単なるポインタです。

3

「私は聞いて、忘れてしまった。私は見て、覚えている。私は理解している。」(そして、私の意見では、理解することはより良い記憶保持につながります。)

簡単に言えば、最近の卒業生はあまり経験がないので、他の誰かが指摘したように、「選択された」言語が何であっても、最低限の知識以上のものはないでしょう。

私は、自分が選んだ専攻についての学習を効率化するように特別に設計された大学に行きました(たとえば、CS専攻の場合、歴史文学はありません。歴史文学に最も近いのはサイエンスフィクションです)。大学のまっすぐが、私は、インターフェイスが何を伝えることができなかっただろう、我々は抽象化について学ぶでしたが、抽象クラスに一人でその違いを聞かせて(とインタフェースがネットにあふれ、技術は私が学びました)。インターフェースに触れたかもしれませんが、クラスを渡すために知っておく必要がある他のすべてのもので失われました。特に意味のある方法でインターフェイスについて学んだのは、大学を卒業して初めてのことでした。

フランス語でインタビューを行うとのことでしたが、これは私たちがさまざまな国にいることは明らかであるため、マイレージは異なる場合がありますが、ここ米国では、大学はテクノロジーに関して時代遅れで有名です。したがって、成熟した言語(C / C ++、COBOLなど)を扱っていない限り、何年にわたって使用していたものが、学生が習得したバージョンでは利用できない可能性があります。たとえば、.Net 3.0はEntity Framework、WPF、WCF、およびその他の多くの優れた機能を導入しましたが、私の学校でさえも.Net 1.1および2.0にとどまっていました(つまり、ADO.NETに固執し、オブジェクトについても学習していませんでした) -リレーショナルマッピング)。PHPを使用している学校は、(非OOP)PHP 4でスタックしている可能性があります。

また、学生は多くの場合短期間しか使用されない大量の情報を取得する必要があることにも注意してください。抽象化のような「高度な」概念は、多くの場合、クラスの終わりに向かって教えられます。そこでは、学生はそれで遊ぶのに1週間程度しかないかもしれませんが、他のクラスと競合し、おそらく、アルバイトまたはフルタイムの仕事のトップ。それらをすべて組み合わせると、その人が何かを思い出せるのは不思議です。

米国では、少なくとも、最近の卒業生は一般的な基本(値渡しと参照渡しの違い)を超えて何も知らないと見なされることがよくあります。これは、一般的な理論と問題解決が主な部分であることが理解されているためです。学校、特定の言語の内面と外面を学習していません。

あなたがより多く持っていた質問をあなたがそれらを教える/再教えるために必要なもののゲージとして使用することをお勧めします(たとえ彼らがあなたが使おうとしている用語を学習しなかったとしても、それが完全に可能であることに注意してくださいあなたはそれがユビキタスだと思う)、インタビュー対象者が「価値がない」かどうかとは対照的に。それを、彼らがどれだけ進んで学習するか、そして彼らの一般的な問題解決スキルがどのようなものかを測定することと組み合わせてください(真剣に、彼らに解決方法を教え、彼らがそうする方法を確認してください)、あなたはあなたが将来のロックスターを持つことができます彼らはあなたが「コールスタック」が何を意味するのかを知らなかったために過ぎ去ったのかもしれません。


まあ、フランスでは(ほとんどの場所で同じだと思います)、すべてのCSカリキュラムには、C(または類似の言語)での必須のコーディングが含まれています(特にメモリ割り当てについて学ぶ場合)、およびC ++ / java /での必須のコーディング.net(OOPについて学ぶ場所)。これに加えて、あなたは多くの分野をカバーできる多くのことも行いますが、仮想メソッドが何であるかを知らずに卒業した場合、それは彼が彼の研究をあまり真剣に受け取らなかったことを意味します...私は確かに何を知っていましたそれは私が卒業したときでした...シリーズが何であるかを知らない数学の学生についてどう思いますか?
ブラン08

@Brann-コンピュータサイエンスとは何か(私の以前の理解と同様)に関する私の(迅速な)研究によれば、CSはプログラミングの専攻ではありません。はい、それはプログラミングを含んでいますが、必ずしもそれの主な焦点ではありません。さらに言えば、「コンピュータサイエンス」は広範で曖昧なため、学校によって異なる場合があります。スタンフォードは米国でトップのCSスクールの1つであり、秋と冬のコース選択リスト(www-cs.stanford.edu/courses)では、実際のプログラミングに焦点を当てているように見えるコースが6つ未満あります(単なるプログラム理論)、約50クラスのうち。
Shauna、2011

つまり、学生は1〜2学期は任意の言語を使用し、その後の学生のキャリアではその言語に触れない可能性があります。その上、彼はロボット工学と遺伝的プログラミングについても学んでいます。これらは標準のデスクトップ/組み込みシステム/ファームウェアプログラミングとは大きく異なります。
Shauna

シリーズが何であるかを知らない数学の学生についてどう思いますか?-それは、学生がどのような数学を専門としていて、彼が実際に取り組んでいることに依存します。繰り返しになりますが、学生はそれを学んだ(したがって、技術的にはそれが何であるかを知っている)可能性は十分にありますが、暗号や離散数学を使用する日常の作業では決して使用していません。数学とプログラミングは、一般的に「使用するか、失うか」というトピックと見なされます。
Shauna、2011

3

かなり多くの狭いビューがあり、暗黙的にそれらを想定しています。

  • 大学で数年間プログラミングを勉強している人に期待することと実際に知っていることの間には大きな違いがあるようです。

    私の知る限りでは、人々が数年間プログラミングを学ぶ大学はありません。大学はコンピュータサイエンスのコースを提供していますが、その1つがプログラミングです。

  • 参照型と値型の違いは何ですか?

    経験則:Lispが区別なしで実行できる場合、それは混乱です;)

  • 基本的に、面接対象者をだましてコールスタックやヒープなどを教えてくれるようにできる限りのことを行い、言語にとらわれない概念にとどまろうとします。

    言語に依存しない概念について話すことは良い考えです。ただし、ヒープもスタックも言語に依存しません。

  • インタビュイーがC、C ++、またはC#をたくさんやったと私に言った場合、私は特定の言語、そして場合によっては実装の詳細について詳しく説明します。

    これらの言語にはすべて仕様があります。実装は言語によって定義されていません。CおよびC ++は、LLVMを使用してクロスコンパイルして、Flash Playerまたは任意のJavaScriptランタイムで実行できます。これにより、ヒープとスタックの割り当てに関する仮定が無効になります。
    C#では、ほとんど同じです。C#は実行前にJITされ、多くの最適化が行われます。クロージャによってキャプチャされたローカル変数は、スタックではなく、最終的にヒープに巻き上げられますが、エスケープ分析では、スコープにローカルオブジェクト(通常はヒープに移動する必要があります)をスタックに格納することができます。適切なレジスタ割り当てにより、スタック割り当ての必要性も大幅に減少します。

  • 必要に応じて、インタビューの対象者に、コールスタックとは何か、または選択した命令型言語で関数に渡された引数が格納される場所を尋ねます。

    Haskellでプログラミングの経験が豊富な人に何を尋ねますか?:P

  • ほとんどのインタビュー対象者は、コールスタックが何であるか、ボクシングの考慮事項はもちろんのこと、何も知りません。

    オートボクシングの背後にある基本的な考え方は、プリミティブをオブジェクトとして処理することもできるということです(または、少なくともタイプの値は実行時に検出できます)。その抽象化に関して、3種類の言語があります。

    1. それが存在しないもの。Objective-Cが標準的な例だと思います。
    2. それが本当に成り立つもの
    3. それは存在するが保持しないもの。Javaが最良の例だと思います(今では修正されていると思います)。

    カテゴリ1の言語を使用してはならない理由はわかりません(実際にはそれは良い考えです)。カテゴリ2の言語を使用している人が本当に気にする必要がある理由はわかりません。そして、カテゴリー3の言語、つまりコアとなるセマンティック機能が単純に壊れている言語を使用しているすべての人が、間違った言語を使用していると思います。

  • 抽象クラスとインターフェースの違いは何ですか?どちらを使用するべきですか?

    今、それは非常に主観的であり、本当に言語に依存しています。C ++にはインターフェースがありません。Objective-Cには抽象クラスはありません。両方を持つ言語は再設計の必要性が非常に高いと私は主張します。現代の言語の多くは、特性、ミックスイン、カテゴリ、ロール、および類似の構成要素を使用して、部分的な実装の継承よりもはるかに明確なコードの再利用ソリューションを提供しています。いずれにしても、プロトタイプベースの言語にはクラスがまったくありません。

    結局、これは難しい問題である。面接はこの質問を解決するのに適した場所ではありません。私がジュニアにポジションを申請して、私に良い答えを出さないように要求する人を決して釘付けにすることはありません。

  • インタビュー対象者のほとんどは、実際の目的がどのような継承であるかをまったく知りません。彼らは通常、いくつかのキーワード(仮想、オーバーライドなど)を知っていますが、仮想テーブルが何であるかを説明することは言うまでもなく、それらをいつ使用するか本当に知りません。

    継承や従来のvtableを使用しないオブジェクト指向言語がいくつかあります。

私のアドバイス:

  • プログラミングについて知っていることはすべて、本当に基本的なプログラミング概念であると想定するように、十分注意してください。すべての優れたプログラマーは、そのような質問に対する答えを見つける好奇心を持っていると考えることができます。しかし、あなたはそれらを知っている人は誰でも良いと思い込むことはできません。私はそのような細部をあまりにも重要視している人は実際には森のために木を見ない可能性が高いと信じる傾向があります。
  • 実装の詳細について心配する必要はありません。プログラミング言語は抽象化を作成するためのものです。あなたはそれらの抽象化の観点から、そしてそれらの観点からのみ考える必要があります。良いコードは、言語の実装の詳細に対して書かれていません。これは、ソリューションのセマンティクスを言語機能に最適に埋め込むように作成されています。これを成功させると、コードは堅牢になるだけでなく、言語に精通している誰にとっても読みやすくなり、コンパイラー向けに最適化しやすくなります。
  • 期待する答えを知ることはそれほど重要ではありません。それらを理解することです。誰かがそれらを知っているだけなら、彼らが教科書でそれらを読むか、彼の教授が彼らに言ったので、それはほとんど価値がありません。実際には、これらすべてのことをほんの数時間で説明できます。
    重要なのは、これらの単純で孤立した事実をエンジニアリングの柔軟で保守可能なソリューションに適用して複雑な問題を解決する方法を理解することです。

本当の質問に行くには:

そして、私の会社には才能のある人々を引き付けることに問題があると思いますか、それともあなた自身の雇用プロセスで同じ種類の問題を経験しますか?

大手の企業を除いて、すべての企業はスキルのある人々を引き付ける問題を抱えています。それらの数が少ないからです。そして、その仮定のために、その大学は人々を上手にしています。そうではありません。それは彼らに知識を与えます(学生と大学の両方が交渉の彼らの部分に耐えていると仮定します)。経験は人を上手くするものです。

大学に入る前に経験を積んでいて、勉強中にそれを続けている人もいます。彼らはプログラミングが好きであり、コース中に新しいアイデアを見つけたとき、彼らはそれをどのように使用できるか、最初に家に帰ることを試みます。これはあなたが雇いたいと思うような人です。しかし、それらのいくつかはありません。
プログラマーを優れたものにするのは、プログラミングと自己改善への情熱であり、その追求です。時間内に。

残念なことに、ほとんどの人はプログラミングの経験がなくても大学に出入りします。
同時に、私たちの業界は経験豊富なプログラマーを必要としています。したがって、実際に参入しようとすることが私たちの業界の使命であると思います。そして、ジュニアポジションの候補者にインタビューすることで、あなたが現実的に探しているのは、学び、改善したい人々です。そして、あなたは多くのエネルギーを投資する必要があり、それが無駄になりたくないので、あなたは慎重に選ぶべきです。

レーシングチームのドライバーになるために新鮮な血を雇うと考えてください。優れたドライバーは、自分の車を最大限に活用するために力学を十分に理解していますが、この知識だけでは意味がありません(あまり頭がよくありません)開始)。あなたが探しているのは、彼ら自身の改善とあなたのチームとよく頑張ってくれる人です。


1

手がかりがない「即時型」という用語(値型?わかりました。更新してくれてありがとう)に関係なく、あなたの質問は正しいと思います。過激派ではありません。これらは、学校からすぐに出てくる場合の答えのある質問です。それでも、私はすぐに候補者を解雇しません。彼らが学びたいので潜在的にあるかもしれないいくつかがまだあります。

運転免許の類推を続けるには、キーを挿入したとき(または「スタート」ボタンを押したとき)に何も気にしない人もいます。彼らはそれをして運転するだけです。これは彼らが無価値であることを意味するのではなく、彼らがスターダムに到達するのに時間がかかるというだけです;-)

学位/卒業証書についての個人的な発言:私は現在、IT分野で数年の経験を持ち、CSのバックグラウンドを持つ「経験豊富な」人で、生化学および産業のバックグラウンドを持つ人々と協力しています。車両のエンジンはどのように機能しますか?うん、それはCSを勉強した人ではありません!だから、私は卒業証書が必ずしも重要ではないという事実を経験しています!


2
一部の人々は、車を最高速度に到達させるために長時間車をいじるのに費やすことができ、遅い車は開始する前に終了してしまいます。

十分に公正です:-)
Jalayn

CS以外の分野から来た人々については完全に同意します。しかし、CSの学位を実際に所有している人にとって、値の型が何であるかを知らないことは、控えめに言っても少し心配なようです...
Brann

@brann、彼らは用語を知らないかもしれませんが、変数によって保持されているデータの物理的な配置は、ヒープやスタックではなくデータセグメントに配置されることに注意してください。これは重要と思われるため、どの言語を使用しますか?

私はc#を使用しています。そして、この種の実装の詳細を知ることは、そのコンテキストではおそらくそれほど重要ではないことにも同意します(特定の状況では重要かもしれません)。事は私がc#の専門家を見つけようとしているのではないということです。私は、c#でのコーディングが本当に上手になるのに十分なほど巧妙で動機付けられた人を見つけようとしています。値のタイプを学習または理解する必要がない場合、私は(おそらく誤って)彼がこれらの2つの特性の1つを見逃していると思う傾向があります
Brann

1

私は通常、インタビュー中に用語や定義について特定の質問をしません。他の回答が指摘しているように、人々は異なる概念に対して異なる用語を使用しており、彼らは概念的に主題を理解しているかもしれませんが、それをあなたに伝えることができないかもしれません。

ジュニアでは、彼らのインターンシップや学校のプロジェクトに集中しています。私は彼らに関する質問に質問し、彼らに答えを明確にさせ、それから私は彼らがプロジェクトに実際に関与していること、彼らが学んだこと、彼らが感じたことについて深く掘り下げ始めます。

一般的に、その人がプロジェクトで重荷だった場合、彼らは一般的に私に満足のいく答えを出すことができないので、通常は簡単に言うことができます。神経質で内向的な人を無関心で無関心な人と間違えないように注意してください。

内気で内向的な良い候補者を決定するのは少し難しいですが、私が働いている文化は内向的で内気な開発者には向かないので、彼らが私と生産的な詳細な会話を行うことができない場合、彼らはよく合いません。


1
 or chose his university very unwisely.

それは非常に不公平です。あなたが学生である場合、あなたができることは、あなたの成績があなたを受け入れる最高ランクの大学、またはおそらくサッカーをしているロボット犬と一緒に遊ばせることを宣伝している大学を選ぶことです。これ以上何もない。大学のコースを評価して、それが終わってはじめて、数年間業界を去って仕事をし、いくつかの重要なプロジェクトを構築することができます。

そのようなすべてのコースで「私たちはコールスタックを教えないでください」と書かれた巨大なネオンサインを点滅させたとしても、生徒はそれについて何を期待していますか?彼らが実際にそれが何を意味するのか、それを教えるものがどれだけ必要になるのかを実際に理解できるように、数ヶ月かけてそれを調査しますか?標識のあらゆる組み合わせを備えたすべてのコースについて?

人々は現実的に自分の教育を選択することはできません。


0

新卒者にインタビューするとき、私は彼らの履歴書にリストされたトピックに固執します。Javaを使用している場合は、Javaについて質問します。もし彼らがブラブを使っていたら、私はブラブについて30分読んで、それについて彼らに尋ねます。しかし、私は常に言語のキーワードを使用して尋ねます。それがJavaの場合、「拡張」と「実装」について尋ねますが、「サブクラス」と「継承」については尋ねません。新卒者は、自分が書いたコードについて話し、簡単なプログラミング問題を解決し、基本的なデータ構造(ハッシュテーブルとツリー)を理解できるようになることを期待しています。


0

面接プロセスを設計したディレクターとして、私が新卒者に期待することについて説明します。ドキュメントを読んで知識を応用できる人を期待しています。したがって、実行するように依頼するいくつかの非常に実践的なタスクがあります。これらは単純なコーディングタスクであり、平均的な大学のクラスの演習ほど難しくありません(経験豊富な「優れた」開発者は、約15分でそれを打ち消すことができます)。候補者には、インターネットアクセスが可能なワークステーション、コンパイラ(この場合はビジュアルスタジオ)、およびヘルプファイルが与えられます。

これらの条件のもとでコードを記述できない場合、彼らは採用の考慮を受けません。そのような単純な。ここで面接に来るすべての候補者がテストがあることを知っているので、「言語がわからない」という言い訳全体が決して私と一緒に冗談を言うことはありません。自宅でVisual Studio Expressをダウンロードして、入室する前にいくつかの基本的なことを行って、エントリーレベルのテストに合格することができます。


これは、何かを実際に知っていると主張している誰かが、実際にそれを使用するのに十分知っていると主張する人を見つけるための最良の方法です。用語が何を意味するか、教室の外ではほとんど使われないことを尋ねるのは無意味です。つまり、過去18か月間に、参照型について一度も議論したことがないのですが、ポインタに関係する何かについて不平を言った可能性があります。
ラムハウンド2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.