面接プロセス中に与えられた過剰なプログラミングの割り当てを心配する必要がありますか?[閉まっている]


27

私は最近、会社に電話インタビューをしました。その電話インタビューの後、短いプログラミングの課題を完了するように言われました(小さなプログラムです。3時間以上かかることはありません)。割り当てを完了してコードを提出するように直接指示されているだけです。希望する言語を使用する完全な自由が与えられ、コードの入れ方を正確に教えられませんでした。

すぐにGithubに投げてテストスイートを作成し、Travis-CI(公開Githubリポジトリの無料の継続的統合)を使用してテストスイートを実行し、CMakeを使用してTravis-CIのLinuxメイクファイルをビルドすることを計画しました。そうすれば、Git、CMake、Travis-CIの使用方法、およびテストの作成方法を理解していることを実証できるだけでなく、Travis-CIページに簡単にリンクして、テストの出力を確認することもできます。インタビュアーにとっては少し便利になると思いました。

私はそれらの技術をよく知っているので、割り当てに時間を本質的に追加しません。

しかし、比較的単純なタスクでこれをすべて実行すると、見た目が悪くなるのではないかと少し心配しています。私にとってこれ以上の時間は追加されませんが、単純であるべきことに時間をかけすぎていると彼らに思わせたくありません。


5
一部の企業は問題の機密性を保持したいので、インタビューの問題に対する答えをgithubに慎重に入れます。
Scroog1

7
質問は彼らのブログで公開されています(ブログの投稿へのリンクを送ってくれました)ので、彼らはそれについて心配しているとは思いません。
-DormoTheNord

3
@DormoTheNord私はあなたがオーバーエンジニアリングしていないと言います:良い開発プロセスを持つことは、オーバーエンジニアリングとは全く異なるものであり、(IMO)良い兆候です。
K.ステフ

3
問題の仕様、仮定、制限などの灰色の部分を文書化するために、余分な時間を費やしていました。コーディングに飛び込むのではなく、問題とそのコンテキストを熟考してください。
HABO

4
@DormoTheNord質問は公開されるかもしれませんが、あなたの答えも公開されます。他のインタビュー対象者が見つけることができれば、それを利用できます。 それ、彼らはおそらく好きではないでしょう。
イズカタ

回答:


29

インタビュアーとして、このアプローチによって実証されたソフトウェア開発プロセスの知識を喜んで見るでしょう。コードを書くだけではありません。

特に、非常に単純な問題に対してもテストスイートを用意することは、良い兆候です(FizzBu​​zzレベルであっても)。候補者が問題を解決することさえできなかった解決策を提出するのを見てきましたが、簡単な一連のテストでこれが示されていました。また、コミット履歴があると、候補者が解決に至るまでに使用した思考プロセスのアイデアを得ることができます。

一方で、オーバーエンジニアリングのプロセスの初期段階で、一部の企業から拒否される人々を知っています。ただし、ほとんどの場合、これはソリューションのオーバーエンジニアリングが原因であり、必ずしも使用されるプロセスではありません。


2
会社が私がやろうとしていることをしてくれて私を拒否した場合、それは会社がソフトウェア開発方法論を尊重しておらず、私はむしろその会社のために働きたくないというサインになると言ってくれますか?
DormoTheNord

7
(残念ながら)ある程度の運が関係しているので、必ずしもそこまで行くとは限りません。そのアプローチが気に入らなかったインタビュアーが1人いるかもしれません。または、その日の気分が悪く、このアプローチで提供される追加データを調べたくない場合があります。そうは言っても、通常、彼らが望む詳細レベルを明確にすることは害はありません。また、1つまたは2つの明確な質問をすることは、インタビュアーにとっても良い兆候である可能性があります(明らかに、情報に基づいていない質問で継続的に攻撃しないでください)。
Scroog1

+1-ソリューションを損なわない限り、単体テストや、プロンプトを表示せずに行う他のすべてを確認したいと思います。
テラスティン

1
基本的なgithubリンクと、遅延/ビジーのテスト用のソースコードのみへの直接リンクの両方を送信することで、リスクを検討しすぎることを軽減できます。
ダンニーリー

15

インタビュー対象者として、バージョン管理、CI、単体テストなどのことを理解している人がいることは、私が普段目にしているものの一歩です。

私にとって最も重要なことは、問題が解決され、よく解決されることですが、候補者が成果物の品質を改善する方法を理解していることを知っていれば、間違いなく私の注意を引くでしょう。

私が一般的に見ているのは、問題を理解していないだけでなく、問題を解決する方法を理解していない人々であり、プロセスで使用した余分なツールの数に関係なく無視されます。


6

時間制限があることに注意してください。インタビュアーはこれを知っているので、これは(私がインタビュアーだった場合)彼があなたが多くの時間内に問題を解決しただけでなく、あなたが金メッキのために残された時間を持っていたのであなたが見ることを意味します問題解決能力だけでなく、厳格さと勤勉さのあなたの感謝。

FizzBu​​zzを解決するためだけにBuzzManagerとFizzManagerを配布するためにプラグインされるAbstractFactoryManagerAdaptorsを作成する場合、オーバーエンジニアリングは悪い言葉です。

あなたがしていることは、勤勉すぎです。

つまり、「時間をまったく追加しない」と主張するエクストラに時間を費やしたために、時間の経過またはハーフハッキングされたソリューションになった場合、これは、見た目がどれだけ小さいかについての理解が非常に乏しいように見えますタスクができます。これはエンジニアにとって危険な属性であり、ジュニアの間ではあまりにも一般的です。適切な優先順位を付けて、必要なソリューションを完了した後にのみ、余分なクレジットを行います。


厳しい制限時間はありませんが、割り当てに3時間以上かかることはないという注意書きです。彼らは本当に私のgitログをチェックして、コミット#1から最終コミットまで3時間しか費やしていないことを確認しますか?
DormoTheNord

2
@DormoTheNordは、時間制限がない場合、要求されたソリューションに費やされていない時間が優先順位が低いと見なされる場合があります。残念なことに、エンジニアはすべて独立した思想家であり、したがって、これらの事柄について次々に独自の意見を持っています。これらのような場合、あなたがしたことをレビューする人がそのように見るのか、それとも大きな恩恵としてそれを見るために並べ替えます。私は両方の曲がりの素晴らしいエンジニアを知っています。これらのケースでは、あなたが大切にしているもの、それを表示し、あなたが感謝するのと同じ価値を持っている人、つまりあなたが働きたい人になります。
ジミー・ホッファ

これは私が就職面接について嫌いなことです...面接官の個人的な好みを喜ばせることに関わる幸運です。多分それは標準化されるべきです :)
DormoTheNord

心配しないでください、運はあなたのキャリアを超えて消えることさえありません。あなたは幸運を得るときとあなたが悪いを得るときについて幸運である必要があります:)
Scroog1

1
この用語は通常、悪いことを想定しているので、私は「金メッキ」としてそれを説明する際に注意が必要だろう:en.wikipedia.org/wiki/Gold_plating_%28analogy%29
whatsisname

6

考慮すべきもう1つの見解は、あなたのアプローチは良いことでも悪いことでもないということです。私はそれを考慮しすぎるインタビュアーを想像でき、さらにエンジニアリングを愛するインタビュアーを想像できます。

そんなに心配しないでください。代わりに、あなたが最善と考える方法で問題を解決してください。そうすれば、あなたに同意する人からの求人を受け取ることができるでしょう。これは、生産的な作業環境への素晴らしい第一歩です。覚えておいて、インタビューは2つの方法で行ってください。ソリューションに対するインタビュアーの回答からも、それらについて多くのことがわかります。開発の本能と哲学が間違っていると信じている人々と本当に働きたいですか?


3

現実には、候補者がgitリポジトリを作成したりメイクファイルを急いで作成したりできるかどうかは誰も気にしません。これらは、実際の問題解決とインタビューの質問のデザインの側面に対する二次的なスキルです。

そうです、あなたの直感は、潜在的に悪いように見えることにスポットを当てています。なぜなら、プロジェクトのスケルトンを作成するためにいくつかの記憶されたコマンドとパターンを逆流できる人は印象的なソフトウェアスキルを持っていると候補者が信じているように見えるためです。

ただし、ソリューションのテストスイートの側面は良好です。回帰テストスイートで回答を提供すると、おそらくポイントを獲得できます。さらに、テストスイートがコードの顕著なケースを実行する場合はそうです。テストスイートには、多くの正式なトラップがなく、ツールに依存する必要はありません。何らかの形であなたがそこにいるという事実だけでも、インタビューには十分です。面接クイズでアドホックな単体テストをまとめることができれば、実際のプロジェクトのツールを使用してそれを行うことができることは多かれ少なかれ明らかです。


1

私は最近、会社に電話インタビューをしました。その電話インタビューの後、短いプログラミングの課題を完了するように言われました(小さなプログラム。3時間以上かかることはありません)。

注意して進めます。仕事への挑戦の関連性を評価し、雇用主からの将来の払い戻しがあなたの時間の3時間に価値があることを確認してください。

私はこれらのタイプのテストの価値に疑問を抱き、むしろ過去の業績で誰かを判断したいと思います。事前に定義された短いタスクでは、雇用主に何ができるかを伝えることはできません。あなたができないことだけ、そしてそれは電話でのいくつかの質問ですぐに決定することができます。

テストには場所があります。テストについて次の質問を自問し、それに応じて応答します。

  1. テストフェアには現在のキャリアレベルが与えられていますか?
  2. テストには明確に定義された正解がありますか?
  3. インタビュアーは、あなたの個人としての可能性に興味を持っていますか、それともテスト結果にもっと興味を示していますか(つまり、雇用機関はこれに対してひどいです)。
  4. テストは、あなたが楽しみたい仕事の種類を表しますか、それともあいまいなスキル検証ですか(つまり、Java構文を知っているかどうかをテストします)。

割り当てを完了してコードを提出するように直接指示されているだけです。

あなたは自分の質問に答えたところです。

すぐにGithubに投げてテストスイートを作成し、Travis-CI(公開Githubリポジトリの無料の継続的統合)を使用してテストスイートを実行し、CMakeを使用してTravis-CIのLinuxメイクファイルをビルドすることを計画しました。

いいえ、それは彼らがあなたにそうするように頼んだことではありません。

そうすれば、Git、CMake、Travis-CIの使用方法、およびテストの作成方法を理解していることを実証できるだけでなく、Travis-CIページに簡単にリンクして、テストの出力を確認することもできます。インタビュアーにとっては少し便利になると思いました。

面接プロセスの早すぎたり遅すぎたりするスキルのデモンストレーションには注意が必要です。面接でうまくいかなかったと感じ、現在補償しようとしている場合、それはうまくいきません。一方、あまり聞かれないときにやりすぎは、過度の熱意を示しています。これは、あなたが期待していたよりも低い給料で雇用主が反論する結果になる可能性があります。

しかし、比較的単純なタスクでこれをすべて実行すると、見た目が悪くなるのではないかと少し心配しています。

はい、悪く見えます。1行のコードで課題を解決することは、完全にフラッシュされたプロジェクトよりもはるかに印象的です。

私の経験から、これはあなたが就職の面接に勝つ方法ではありませんが、それは仕事を失う1つの方法です。コードテストは品質管理の問題です。以前はコードテストを使用していなかったため、人を雇うときにコードテストを使用するすべての会社がそうしています。彼らは、面接プロセスの亀裂をすり抜けてはいけないという悪い経験をしていました。

彼らはあなたのソースコードを受け取り、オフィスにそれを渡します。人々はそれについてコメントするでしょう、そしてあなたが彼らに言わせたくないのは、「彼はこの間違いを犯したのですが、Git、CMake、およびTravis-CIを使っていました。この間違いを見逃すのは馬鹿です」

それでおしまい。負けました。

彼らはあなたにそれを教えることができないので、あなたがコーディングできることを知りたいです。Git、CMake、およびTravis-CIは簡単に教えることができます。


2
@JimmyHoffaあなたは私の答え全体に同意しないのですか、それともテストに関する私のコメントですか?視点を正しく表現できなかったのか、そうでないのか?私にとっては、筆記テストよりも人間のコンポーネントを重視しています。FizzBu​​zzに失敗した候補者は、私にとって何も証明しません。理由を理解するには、その人と話をしなければなりません。しかし、私は(常に)熟練労働者を雇いたいと思っています。家に帰ってこのテストを書いて戻ってくるとは思わない。それを行う効果的な方法です。私はむしろFizzBu​​zzの質問をして、彼らがうまくいくのを見てみたい。わかりますか?
Reactgular

1
@JimmyHoffaこれは雇用者の雇用への期待に帰着すると思います。そうは言っても、FizzBu​​zzのテストについて読むほど、私はあなたの側に揺れています。キャリアレベルで合格できないプログラマには問題があります。この種のテストがOPと同じかどうかはわかりません。この関連質問を参照してください:stackoverflow.com/questions/117812/…–
Reactgular

簡単に言えば、私は激しいインタビュープロセスのファンであり、(コアリクエストを妥協することなく、それ以外の場合は時間の優先順位を低く設定している)、それ以上のことを試みる候補者です。あなたの全体の答えは、これらの両方に反対しているようです。
ジミー・ホッファ


@JimmyHoffa私の姿勢は、クライアントがベンダーに仕事前の入札プロセスの一環としてクリエイティブな仕事やテストを完了するように依頼することが多いクリエイティブ分野でのフリーランスから来ていると思います。私はそのような仕事をしません。なぜなら、すべての見込み客に何時間も費やすと、請求可能な仕事をすることができなくなるからです。OPに注意して進めるように言ったとき、それは彼が時間を無駄にしないようにすることを望んでいました。OPは、多くの追加作業に時間を費やすことを望んでいました。それは誘惑ですが、見返りは価値がありますか?たぶん、しかしOPはこれを明確にしませんでした。それは短期契約作業かもしれません。
-Reactgular

0

あなたのアプローチはそれ自体良くも悪くもないと思います。インタビュアーに、Githubやその他のツールを使用しても大丈夫かどうかを尋ねます。@Izkataがコメントで指摘したように、あなたはあなたのソリューションを公開しています。

インタビュアーとして、私は通常、候補者がいくつかのことを明確にしようとしても害がないことを知っていました。また、1つまたは2つの質問をすることは、あなたが理解していないことを急ぐことはないので、良い兆候です。

ただし、最も重要なことは、問題が解決され、適切に解決されることです。その点で、テストスイートが役立つことに誰もが同意します。しかし、そのためには、プロジェクト/ソリューションと一緒にいくつかのテストクラスを送信する必要があるだけかもしれません。

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