私は最近、インタビューの質問について考えており、過去に経験した悪いインタビューの経験について考えてきました。特に注意すべき点の1つは、チームが製品でSpringよりもEJB 3を使用することを選択した理由をインタビュアーに尋ねたところです。インタビュアーは「Springがすべてではなく、Javaソフトウェア開発のすべてではないので、この仕事をしたいですか?」これはおそらく私にとっては仕事ではないと彼に話し、私はすぐにインタビューから抜け出しました。
インタビューの最初に、会社のスタッフの離職率が高いと知らされました。彼らが働いていた製品は、最初はModula-3で作成され、その後Perlに移植され、最後にJavaに移植されました。 Java、EJB、SQL、JDBCに関する技術的な質問の10ページのブックレットが渡され、使用したテクノロジスタックについて質問されました。質問するように促されたとき、私は彼らに彼らの技術スタックについて尋ね、合理的な回答を得ることは理にかなっていると感じました。
質問:インタビューで採用されたアーキテクチャの選択を調査することは良い考えですか?そうでない場合、なぜですか?
私自身の観点からは、面接は双方向のプロセスです。インタビュアーが私の技術的スキルについて私をテストしている場合、私は彼らに同じ質問をするすべての権利を持っています:
1)ソフトウェア開発に対する彼らの考え方や態度を理解する。 2)彼らのアプローチが、私がその種の問題にどのように取り組むかと一致しているかどうかを決定します。
怒った面接担当者は面接のスキルが低く、面接が双方向の交換であることを忘れた可能性があります。これを聞かれたなら、私は合理的な答えを出したでしょうが、私は確かに面接先を会話なしで頭を上下に揺らすような柔和な降伏の状態にしようとはしなかったでしょう。
個人的には、インタビューするのと同じくらい疲れてストレスの多い人とのインタビューを見つけました。しかし、それはインタビューのプロセスが双方向のやり取りであることに同意するからです。
私はあなたがどんなに良い人でもかまわない、あなたがそこで働いて幸せにならないならあなたを雇いたくない。それはプレイするのに高価なゲームです。だから私はあなたが持っているかもしれない懸念に答えて、チームと製品をそのまま見せて、あなたが情報に基づいた決定をすることができるようにしたいと思います。
仕事を探しているときは、その姿勢を共有してくれる人と働きたいです。そして、質問に対する答えがわかっていると思っても、その反応を見るためだけに質問します。攻撃性は、状況に満足している誰かの兆候ではありません。
デスクのどちら側でも、私は面接にうそをついていません。なぜなら、彼らは彼らが別の人を雇っている/別の場所で働くつもりであると思っているからです。そして、私はインタビューの反対側の人から同じ見返りを期待しています。
残念ながら、それはあなたが説明したようなインタビューに時折遭遇することを意味します。彼らは恐ろしい経験ですか?はい。インタビューがどこで失敗したのか正確に知っていて、そこから出てきますか?はい。
しかし、私はvery仕事を得たり、間違った人を雇ったりした場合、すべての恐ろしい経験がかなり悪化することを確信していますか?もちろん。
はい、本当に興味があるかどうか、答えが重要かどうかを尋ねても問題ありません。私が尋ねることは、物事を行う方法が複数あることを理解していることを示し、ソフトウェアがどのように書かれたかに興味があることを示しています。
そうは言っても、質問の言い方には十分注意し、会話を続ける方法には二重の注意が必要です。彼らの決断に挑戦するのは簡単です。面接担当者があなたが望んでいる最後のものは、あなたが自分よりも賢いと思っていると信じることです。本当に興味があるなら、聞いてください。彼らが悪い選択をしたと思うなら、口を閉じておいてください。
私が質問で説明された状況にあった場合、外に出る代わりに、「ああ、そうです、春は間違いなくすべての適切な解決策ではないことに同意します。あなたのアーキテクチャについて少し教えてくれてありがとう!私は常に適切なツールを選択する方法についての洞察を求めています。」 (しかし、あなたの質問は奇妙です-あなたは彼らが春を選んだ理由を尋ねます、そして彼らはそれがnotだったのでそれを選んだのですか?
頻繁に人と面談する人として、なぜ特定のテクノロジーやデザインが選択されたのか、リソースに余裕がある場合、または新しいプロジェクトを開始した場合に、私たちが今とは異なる方法について話し合うことを個人的に歓迎します。私は通常、自分の技術に関心がある人のサインだと思います。彼らのドグマと私たちのドグマに互換性がない限り、技術的な質問に丁寧に答える人よりも、その候補を高く評価するでしょう。
私は現在、意味のあるが実装が不十分なアーキテクチャ決定のレガシーを持つクライアントのためのプロジェクトに取り組んでいます。そして、世界についての好奇心をそのままに、そして私たちが見ているように進むべき道を示す候補者は、通常、一緒に働きたい人の種類私たちは、チームの設計と実装の決定について適切なデューデリジェンスと検証を行える人を求めています。私たちは一般的に、私たちが持っていない、または十分に持っていないものをテーブルに持ってくる人を大切にしています。
私が面接で候補者になったとき、これらのタイプの議論が悪い兆候として起こるとき、私は敵意や防御の兆候をとります能力を発揮できず、おそらく自分の道を切り抜ける気もありません。既存のチームの継続的な改善のモチベーションが見られない場合は、そのチームで満足できない可能性が十分にあります。
私が行って彼らが言った場合、「そうです、このレガシーアプリはメンテナンスに満足できませんが、すべての給与をカバーするのに十分な収益をもたらします。コードベースをリファクタリングすることで、コードベースをよりメンテナンスしやすくしたいと考えています。問題点、またはコンポーネントxをテクノロジーyに移行する」または「テクノロジーaよりテクノロジーbを選択したのは、そこでより多くの経験があり、テクノロジーbは開始時にまだ初期段階にあったためです。変更の可能性はありますが、プロセスは遅く、私たちは既存のコードベースを捨てるだけの立場にはない」と私が聞いたときよりも良い経験になると信じられます。「ええ、Borland C++ Builderバージョン6で立ち往生していて、開発者は許可されていません。それらはすべてCEOの兄弟によってすでに行われている技術的な決定をするためです。彼は一度Oracleの営業担当者と一緒に寝て、将来の開発はすべてJava 1.4 Webサービス、Oracle ERP、そして、ほとんど廃止されたサードパーティのGUIコンポーネントを使用するBorland C++フロントエンドまた、決断を再検討し、運が良ければ新しい収益をもたらす可能性のある永続的な改善を行うよりも、月に60,000ドルを費やして穴をふさぎ、顧客が船から飛び降りないようにしたいと考えています。ボートを揺すらないでください、何が悪いのですか。」
あなたが他のテクノロジーの仕事のある地域にいる、またはあなたが移動しても構わないと思っているなら、あなたはおそらく選択肢の贅沢を持っています。完璧なギグはありませんが、あなたはあなたと一緒に働きたい人と一緒に働きたいと思っています。 (ほとんどの場合、私は特定のテクノロジーの選択よりもこれに関心があります。)何か臭いがする場合は、おそらくそれが原因です。
ええ、お願いします。私たちのビジネス、プロセス、デザインについての好奇心が強いほど、候補者をより真剣にとらえます。しかし、私はブラブショップで働いていないので、ブラブの仕事を得るのに役立つかどうかはわかりません。あなたが彼らの技術を気にかけている他の人々と一緒に働きたいなら、それはあなたのためにうまくいくと言えるだけです。
質問:インタビューで採用されたアーキテクチャの選択を調査することは良い考えですか?そうでない場合、なぜですか?
それはまったく問題ありませんが、私はそれをポジティブだと考えています。
面接官がそれを処理できない場合、それはあなたについてではなく、彼らについて多くのことを言います。
後輩がデザインの決定に興味がなく、対象分野への好奇心/関心の欠如を示し、自分自身を改善する意欲を示さない場合、私は心配になります。
必須です。誰も何も知らなかった、学ぼうとしなかった、またはCEOが雑誌で読んだものを使用する、またはオンラインで見た、誰かがいたなどの理由で、無意味なデザインの決定で私はあまりにも多くの仕事をしてきました選択肢を何も考えずに「次の大きなもの」だったと彼に言ってください。これらの仕事はすべて働くための悲惨な場所でした。
常識に反して発言したり、おかしな話のように聞こえたりしない限り、デザインの決定を必ずしも批判するべきではありませんが、レガシーな理由や何かがあったかどうかを調べるために「オフ」に見えるものに質問することは一般的ですこれにより、非正統的なアプローチを使用する必要性が高まりました。
このような質問をすることも、改善と能力に対する会社の関心を測る効果があります。上記の誰かが言ったように、(Javaがわからないので.NETを使用しているため、.NETの例を使用します)のような答えが得られた場合、それは1つのことですアプリを作成したとき、成熟したORMはなかったので、データゲートウェイレイヤーでストアドプロシージャを使用しました。将来はEntity Frameworkに移動したいと思いますと、もう1つのような答えは、ストアドプロシージャを使用するだけです。EntityFrameworkは恐ろしく、リファクタリングするための作業が必要になる可能性があります。CEOが望んでいる新機能のランドリーリストがあるため、何もリファクタリングできませんEntity Frameworkの調査に時間を費やした場合、彼は時間を浪費して私たちを解雇します1つは理解と改善したいという欲求を示し、もう1つは誰もが最高の環境で平凡なことを示しますかき落とす最低限のことをします。
彼らの決定に疑問を投げかけるか、製品Bの代わりに製品Aを使用することを選択した理由について話し合いたいと思っている会社は、自由な思想家ではなく、質問しないドローンを望んでいないことを示しています。有能な開発者が働きたいと思っている種類の会社ではない可能性があります。
回答:アーキテクチャに関する意思決定について質問することをお勧めします。しかし、そのような質問をする方法には注意が必要です。
簡単に言えば、「テクノロジーYよりもテクノロジーXを選択する方法を教えてください」と尋ねる必要があります。
チーム内での意思決定のプロセスに一般的に関心があることを伝えるために、それを表現したいとします。会社がこれまでに候補者に対して下したすべてのレガシー決定をやりたいと思う人はいないでしょう。
「テクノロジーYよりテクノロジーXを選んだ理由」と尋ねると、彼らの決定に同意しない(大丈夫ですが、敵対的であると見なされる可能性があります)、またはあなたの善意にもかかわらず、あなたが問題のテクノロジーについてどれだけ知っているか(誰にとっても迷惑になるでしょう)について自慢したいです。
私は面接官に、彼らが下した設計上の決定の失敗と、次に何が行われたかについて私に話してもらうのが好きです。これにより、いくつかの優れた情報が得られます。
それは人気がないかもしれませんが、私は常に、プロジェクトが失敗し、お金を無駄にするのをやめるためにプロジェクトを失敗させること、または何かが間違った方向に向かっていて、強制終了または再起動する必要があることを認識するために、石を持つマネージャーに大きな敬意を払っています。
最終的に、仕事の満足度について話している場合、テクノロジー(言語/プラットフォーム/コンパイラ/その他)は、関係する人格や作業環境ほど重要ではありません。
数年前、私はインタビューを受けていて、プログラミング言語に関するさまざまな技術的な質問をされていました...私はうまくいかなかった(60/40正解/不正解)。議論は彼らが手にしたプロジェクトに移り、私はデザインについて質問し始め、それから彼らが導入するであろういくつかの問題と制限を指摘しました。
私はその翌日仕事を与えられました。残念ながら私は個人的な理由でそれを取り上げることができませんでした。
設計についての質問は、特にそれを彼らのビジネスに関連付けることができれば、インテリジェントな質問である場合は問題になりません。
面接はあまり行っていませんが、あなたの経験から、次のように結論付けます。
a)仕事をしたいかどうかについて、情報に基づいた決定をしたい場合は問題ありません。
b)仕事に就きたいとすでに決めている場合、それは問題です。
人々は自分の選択についての良性の質問に簡単に腹を立てることがあります。それはひどく悪い特性ですが、一般的なものです。