私はこの質問をProgrammers.SEの同僚の開発者に本当に聞きたいのです。なぜなら、私は会社の新入社員を雇っています。
初心者/初心者を開発のために雇うとき、あなたが求めるスキルは何ですか?
まず第一に、学生が学びたいという欲求を持っているかどうかを確認します。私によると、パズル/英語ベースの試験は無意味です。私はおそらく人の英語のスキルをテストすることを受け入れることができますが、それは「テスト」に基づくべきではありません。それは彼らが彼らの考えをどのように伝えるかに基づいているべきです。パズルを解くように彼らに頼むことはほんとうにうんざりです。
彼らの学習意欲を確認するには、さまざまな理由で彼らに質問することができます。彼らの履歴書が真実であると仮定して、優れたスキルを持っている人を探します。それらのスキルセット(たとえば、C++/C#/ Java)に精通している2/3人と一緒にその学生にインタビューします。通常、インドでは、生徒が自分がどれほど自信があるかに関係なく、C/C++を履歴書に追加するだけだと私は見ています。それらがC/C++でかなり自信があるかどうかをテストするには、ポインター/関連するデータ構造などの基本でテストします。おそらく、簡単な問題を解決したり、欠陥のあるコードをデバッグしたりすることもできます。
個人的には、学生はコンピュータサイエンスの出身である必要はないと思います(私もそうではありません)。それらがCSからのものである場合、オートマトン、アルゴリズム、離散構造、コンピューターネットワークなどの基本でそれらをテストします。CSからのものでない場合でも、このコースは部門全体でかなり一般的であるため、データ構造でそれらをテストできます。 。彼らがCS出身ではない場合でも、履歴書に基づいて、彼らの関心領域に関連する質問をすることができます。そして、彼らの成績だけで行くのではありません。それらはプログラミング知識の指標ではありません。
私にとって次の3つは重要です-
忠誠心:すべてのことを忠実な人々に教えることができます。
コミットメント:彼は仕事を使命または苦労だと思いますか?.
Integrity:値は他のすべてのスキルを形成し、他のスキルを獲得するために一生懸命働くことを区別します。
プログラミングについては、次のことが重要だと思います。
問題解決スキル(適性)
プログラミング言語の深い知識
特定の言語で少なくとも1つのプロジェクトでの経験
コンピュータサイエンス(または同等の)教育を追求している間の優れた(少なくともOKAY)レコード。
学校を出ていない人を雇うことは、混合の袋です:大学は本番のコーディングとは非常に異なるため、潜在的な採用者がオープンソースの貢献を披露する長い記録がない限り、彼または彼女が現実の世界に適応するかどうかはわかりません、方法は言うまでもありません。
利点は、初心者に実際のコーディングを紹介し、(うまくいけば)彼または彼女を有用な種類のコーダーに作り上げることです。 それは、このタイプの候補者を評価するときに心に留めていることです。私は人を探します:
オープンソースの寄稿(好ましい)であろうと個人的な趣味のコーディングであろうと、学校の要件外で彼/彼女の技術を向上させる機会を追求してきました
問題に取り組む論理的な方法がある
ハッカー文化を育てる(または、私以外の上司の場合、その人が採用されている特定の企業文化)
インテリジェントであるだけでなく、
矯正/批判によく反応し、通常、私が保護する必要のある自我者ではない
その場で学ぶ方法を知っており、独立して学ぶ
新入生が持つべき最も重要な資質は、正しい態度と問題解決能力です。最終年度のプロジェクトについて質問することで、正しい態度を確認できます。その人が本当にプロジェクトに関与していたかどうかを確認します。彼/彼女の熱意をご覧ください。その人がプログラミングに熱心であるかどうかを確認します。彼/彼女がコンテストや組織のメンバーに参加したかどうかを確認します。
ヒントを使用して解決できる小さなパズルを尋ねることによって、問題解決能力をチェックできます。問題がどのように攻撃されたかについて、より多くのストレスが与えられるべきです。これは、好みの言語で小さなプログラミング割り当て(配列で2番目に大きい、kの連続するゼロのストリームを見つける、またはジョエルの好きなintの設定ビット数)を与えることによっても確認できます。ここでも、問題を知っているかどうかではなく、問題にどのように取り組んでいるかを強調する必要があります。
あなたはインドで新入社員を採用しているので、私の提案は次のようになります。
再開:これにより、彼らの自信がわかり、彼らの知識の明確さが明確になります。多くの人がNaukriまたは一部のWebサイトからテンプレートの履歴書をフォローし、洗練された単語を使用しますが、自分のスキルについては説明しません。これは確かに彼らが独立して行うことができないことを示します。
履歴書からアカデミックスコアを参照してください。すべてのレベルで一貫して65%から70%を超えている場合、それらが一貫して機能できると確信できます。
私は主に基本的なプログラミングスキルをチェックし、優れた適性を探します。 Aptitudeの場合、基本的な数学的問題を解決するように依頼できます。
良い数学者だけが良いプログラマーになることができると私は強く信じています。誰かの数学が苦手な人は、優れたコードを出荷したり、優れたアルゴリズムを作成したりすることはできません。
これらの基本的な品質の新入生は、すぐにトレーニングして生産性を高めることができます。
私は最近かなりの雇用をしました。私が最初に探しているのは、基本的なコーディングスキルです。エージェントに、いくつかの基本的なアルゴリズム(およびいくつかのSQL)を作成するように求める技術テストを受けさせます。
その点で十分に成功した場合は、面接に参加させていただきます。彼らが優れたコミュニケーション能力を持っていて、自分自身が満ちすぎていないようであれば、それはおそらく採用です。