SWエンジニアリングのインタビューは、なぜ(研究インタビューに対して)不釣り合いに難しいのですか?[閉まっている]


39

まず、私に関するいくつかの背景。私はCSで博士号を取得しており、ソフトウェアエンジニアとR&D研究科学者の両方として、非常によく知っている大企業で仕事をしました。私は最近、過去に行ったように、両方のタイプの職に就職し、面接を受けました。

私の観察:SWエンジニアの就職面接は、CS研究者の就職面接よりもはるかに難しい方法ですが、研究者の仕事はより高額で、競争力があり、よりやりがいがあり、より面白く、より高い利点があります。

研究者向けの典型的なインタビューループを次に示します。

  • 私の研究が研究室の研究と一致しているかどうかを確認するための電話インタビュー
  • 対面:最近の研究について1時間(おそらく9か月分の作業に相当)プレゼンテーションを行い、聴衆からの質問に答えます
  • 約5人の研究者との1対1の面接。そこでは、技術的な質問、関連する仕事に自分の仕事が合う場所、自分の仕事をどのように拡張できるかなど、仕事/出版物/特許に関して非常に合理的な質問をします。新しいエリア

SWエンジニアの典型的なインタビューループを次に示します。

  • 電話でのインタビュー。アルゴリズムに関する質問をし、コーディングを行う場合があります。かなり標準。
  • 難解なC ++の特徴(例:多態的な仮想関数呼び出しの仕組み)、アルゴリズム(1ペアの頂点ですべてのペアの最短パスアルゴリズムを機能させる)についてF ***をドリルアウトするホワイトボードでの対面インタビュー、システム設計(データベースロードバランサーの設計)など。これは6〜7回のインタビューに続きます。とんでもない。

なぜ誰もがこれに我慢するのでしょうか?C ++の雑学について尋ねたり、自分自身を証明するコードを書いたりする意味は何ですか?SEのインタビューを、研究者のインタビューのように、自分がやったことについて話をしてみませんか?

物理学、化学、土木工学、機械工学などの他の分野の技術面接はどうですか?


12
Googleで面接を受けたと言います。
ペムダス

2
@ Ethel:人々が給与を匿名で投稿するglassdoor.comを見ると、研究者の地位は、同等のSWエンジニア(同じ場所、同じ分野)よりも約1万ドルから2万ドル/年多く支払っていることがわかります。逸話的には、私の給与は、ほぼ同じ時期に私の大学院からCS MSの学位を取得して卒業した他の友人よりも年間約25,000ドル多いことを知っています。そして、それは給与だけではありません。私は、博士号を取得していない人よりも博士号を取得したキャリアの軌跡が高いことを見てきました。私には直接的な証拠はありませんが、博士号はCTO / VPレベルにより簡単に採用されることがわかりました。
stackoverflowuser2010

3
クレイジーですが、どうやら「実際の」エンジニアリングの専門職にまで及んでいないようです。私はたくさんの土木技師を知っていて、彼らは私の過去のインタビューのいくつかについて彼らに話したことにショックを受けています...
赤い汚れ

3
@el fuser-雇用主に依存します。私が行った電気工学のインタビューでは、PLCコードを調べたり、PLCコードを記述したり、電気回路図で何かをしたりするように頼まれました。あるものでは、最初の質問は「オームの法則とは何ですか?」でした。これは、fizzbuzzテストと同等でした... 4年の電気工学を学んだばかりで、それがうまくいかない場合は、インタビューは終わりです。
スコットホイットロック

1
スコット:「4年の電気工学を専攻したばかりで、それがうまくいかない場合は、インタビューは終わりです。」私は笑ったかor辱されたので、私はそれらのいくつかをflしたかもしれないと恐れています。基本的なコンピテンシーを当然と考えている研究環境から来ると思います。
オメガケンタウリ

回答:


45

調査を行うのに技術的に十分な能力があるかどうかを確立するのは比較的簡単です-採用担当マネージャーが読むことができる出版物があり、それらの出版物はおそらく彼らがあなたをチェックアウトするために話すことができる他の人々にほのめかします。

一方、ソフトウェアエンジニアリングは、無能なスペースの無駄遣いに満ちた規律であり、十分なデューデリジェンスを行う必要があり、雇用する人が実際に彼を雇うことを計画しているコードを書くことができるようにします。


2
幸いなことに、githubやbitbucketのようなものは、その人が何をしたかを簡単に見られるようにします。デューデリジェンスの質問をする必要性を軽減(または大幅に削減)できます。
helloandre

3
まさにその通り。善良なプログラマーと善良なプログラマーを区別することは非常に困難です。表示するコードがあったとしても、それを読んで理解し、作成者を判断できるレベルまで理解するには多くの時間がかかります。OTOHという研究論文は読者向けに書かれており、実際に理解するのにせいぜい数時間しかかからず、通常は数分で悪いものが認識されます。
ハビエル

3
表示するコードはコツです-Joe Intervieweeが実際にコードを書いたのに、彼が実際にコードを書いていないことをどのように知っていますか?
ワイアットバーネット

私は記事を出版し、途中で本を手に入れました。通常、技術的な画面は、私の知識が十分に文書化されているため短絡します。彼らはマイクブラウン
マイケルブラウン

1
また、技術マネージャーが真にスマートで経験豊富な専門家を雇うことには非常に大きな恐怖があります。彼らは自分よりも何かを知っているかもしれません。究極的には、真にスマートなエンジニアを雇う代わりに、リンクされたリストを1分で逆転できる人を雇うことは、製品から金銭的利益を得るすべての人の損失です。Bjarne Stroustrupが言ったように、「プログラマーをバカとして扱う組織には、バカだけのように振る舞うことのできるプログラマーがすぐに現れるでしょう。」
レオハインザール

30

ここで手足に出かけます。

博士号を持つ研究者として、あなたはすでに複数の認められた組織に研究者としてのあなたの価値と最低限の資質を証明しています。同僚のボードの前で論文を成功裏に保護し、少なくとも1人のピアレビュー出版物があなたの作品を公開するように説得しました。

一方、ソフトウェア開発には資格基準がありません。人々は日常的に知識ベースを過度に膨らませています。その結果、ソフトウェア開発のインタビューでは、学界で博士号防衛とピアレビューが行うすべての作業を行う必要があります。彼らはあなたが本当にあなたが話していることを知っていることを証明させます。


17

ちょっと考えてみてください。

このCS研究員の仕事に応募しようとしても、履歴書や履歴書を見ることができません。そもそも面接に行かないだろう。標準化された「上級学位なし」の手紙を受け取り、履歴書を見ても資格がないことを伝えます。

私の質問は次のとおりです。「なぜ博士号を取得するのが難しいのですか?」そして「なぜCS研究者になるには博士号が必要なのですか?」「なぜこれほど多くの障壁とハードルがあるのですか?」

なぜ誰もがこれに我慢するのでしょうか?

コースワークをすべて行い、ジャーナルや会議に研究を掲載することのポイントは何ですか?なぜ研究だけをして、エンジニアリングよりも多くの報酬を得ることができないのですか?

なぜ資格を確立するために大学院や出版物に頼るのですか?インタビュー中に今すぐ思い出せるものにすべてが依存するSEインタビューのように、研究インタビューをもっとしてみませんか?


私はあなたが言っていることを得ることができます。適切な種類の面接は、適切な種類の仕事に合うべきですか?それは正しい解釈ですか?
stackoverflowuser2010

5
@ stackoverflowuser2010:いいえ。私は単に、アカデミックな世界はソフトウェア工学の世界よりもはるかに侵入が難しいと不満を言っています。SEとしてインタビューを受けました。学問の扉を開くことさえできませんでした。あなたの見方はひどくゆがんでいて、違いを見ていません。アカデミアははるかに厳しいです。
-S.ロット

6

さて、私は理論を持っています。通常、研究は助成金によって支払われるため、現金の供給は高くなります。彼らは使うお金のバケツを持っており、彼らはそれを使う誰かを見つける必要があります。実際にそのポジションで何かを達成するかどうかに関係なく、それはとにかく会計上の費用であるため、会社/機関は純損失を記録しません。間違った人を雇うリスクはほとんどありません。最悪のシナリオは、彼らがあなたがしたことをすべて捨てることです。

一方、既存の製品の成功または失敗は、日々の開発者の肩にかかっています。特にあなたが製品開発をしているなら、あなたは会社の利益センターです。良い開発者または悪い開発者は、給与のコストをはるかに超える大きな影響を与えます。悪い開発者は実際に損害を引き起こします。チームや製品の発売などを遅らせることができます。悪いSWエンジニアを雇うことの結果ははるかに高くなります。


4
+1研究助成金が何に使われたかを確認します。
ペテルトレック

@PéterTörök:はい!!! 助成金を提供する基金は報告書を提出する必要があり、彼らが注目する重要なことは発表された論文の数です。
sharptooth

5

また、当社は「多くの難しい質問をします」ので、その理由を説明します。仮想関数呼び出しがどのように行われるかを本当に知っているかどうかは気にしますが、あなたがやろうとしている仕事に非常に重要であるためではありません。

代わりに、基本的なことをどれだけ早く学べるかを知る必要があるので注意します。あなたはX年の経験を主張していますか?さて、確かな知識があるかどうかを確認するために難しい質問をします。

仮想関数呼び出しが内部でどのように行われるかはわかりませんが、プロファイリングと最適化についてはすべて知っていますか?素晴らしい、私たちはあなたを雇う可能性が高い-あなたはある分野で確かな知識を獲得しているので、あなたは確かに別の分野で確かな知識を得るでしょう。

「C ++コードの開発、デバッグ、修正」のX年の経験を主張し、ポインターがオブジェクトをどのように指しているかを平易な言葉で説明できないのですか?申し訳ありませんが、私たちはあなたを雇うことができません-あなたがそれをすることができないなら、複雑な技術的な決定をする必要があるとき、あなたはより難しい問題をどのように説明しますか?


それは公平ですが、技術的なコンポーネントを行うとき、または特定の領域に焦点を当てるときに、かなり広いネットをキャストしますか?
rjzii

@Rob Z:私たちはC ++について非常に簡単な質問をしようとしています-主にポインターと再帰について、約5行の整形されたコードのスニペットを提供し、それらが何をどのように行うかについての詳細を尋ねます。確かに、私たちはしていない今までに基底クラスの複数の仮想継承と順序について尋ねる仮想継承の場合に初期化。
sharptooth

なぜ仮想機能の質問はとても人気があるのですか?すべてのですが...勉強しなければならないone'dその時々いるようだ
JEキュー

@Xepoch:それらは非常に単純であり、内部の動作に関する知識は、内部で何が起こっているか気にするか、コード行を貼り付けるだけかをよく示していると思います。
sharptooth

私は自分のキャリアで運が良かったと思います。カットアンドペーストコーダーを見たことはほとんどありません。悪い習慣のコーダー(私自身も含まれています)を知っていますが、少なくともそれは彼ら自身の設計のものでした:)
ジェキュー

5

簡単な答え:市場にはプログラミングを知っていると主張しているが、プログラミングできない人々がたくさんいます。

サイドリマーク:私は誰もFizzBu​​zzエッセイへのリンクを投稿していないことに驚いています。


確かに、ホワイトボードの問題に基づいて誰かがプログラムできるかどうかをすぐに知ることができます。ホワイトボードの問題は、いくつかのインタビューの中で出てくるさまざまな教科書の質問とまったく同じではありません。
rjzii

3

私は別のルートを取り、ソフトウェアエンジニアリングのインタビューが本質的に難しいほど問題ではないかもしれないと言うつもりです。むしろ、さまざまなセクターが彼らのインタビュースタイルで示す異なるものを探しています。

私はかなり広い範囲のセクター(例えば、新興企業、中小企業、大企業、内部IT部門、ソフトウェア会社、研究組織)でインタビューを行ってきましたが、それらはすべて、通常私が見つけやすい異なるインタビュー方法を持っています次のパターンに従ってください。

  • 新興企業は、すぐにコードを書き始めることができ、ペースの速い環境を処理できることを知ることに関心を持つ傾向があります。このように、彼らは、あなたが「コア」知識であるとみなすものを探して多くの時間を費やしているのを見たくないので、あなたがあなたの頭上でどれだけ知っているかを心配する傾向があります。知らないことを認めても、彼らがあなたが知っていることを期待しているものであれば、この環境ではそれほど良いことではないかもしれません。
  • 中小企業は、あなたがどれだけ知っているかという点で新興企業と同じものを探す傾向がありますが、ペースの速い環境(仕事に依存します)や、あなたがどんなソフトスキルを持っているかについてはあまり関心がありません持ち込み、あなたが会社の機知にどれだけうまく適合するか。
  • 大企業や内部のIT部門は、一定の技術知識を確保することに関心があるように見えますが、頭の上のすべてを知らないのであれば、ある程度のことが予想されるので心配していません。会社が何を期待しているかを訓練するのにかかる時間。したがって、これは、あなたが何かを知らないことを認めるが、学習し、勉強することをいとわないことは利益として見られる環境です。
  • 研究環境(つまり、私の経験では科学者向けのソフトウェア開発サポート)では、ソフトウェアを書くことができるかどうかに関心がありますが、彼らが何をしているかを確実に学ぶために必要なことをやる気がある場合問題を解決しようとしている間、彼らはあなたの手を握る必要はありません。それは研究環境でもあるため、彼らはあなたが新しいことを学ぶことにどれだけ興味を持っているかにも興味を持っているようです。

今、私はソフトウェア会社(Google、Microsoft)が自分たちのことをしがちであり、会社の成熟度やあなたがインタビューしているグループに応じて、彼らはさまざまなことを探しているので言及しませんでした。

しかし、一日の終わりに、そして人生のほとんどのものと同様に、それはすべて依存しています。個人的には、一部の企業は、より高いレベルの問題を実際に解決することを犠牲にして「書籍の知識」に重点を置いていることがわかりました。 (つまり、xのスキーマを設計できます)、3から6か月を投資して完全に生産性を上げる前に完全にスピードアップするという前提で運用できます。


2

繰り返しますが、技術面接はarbitrary意的で気まぐれです。

特徴点で人を焼くのと、CSを知っているかどうかを見るのとでは大きな違いがあります。上で言ったように、私はC ++で10年以上の経験を持っていますが、OOP /継承の質問を爆撃する傾向があります。どうして?一度テンプレートのサポートが追加されたので、Generic Programmingのためにほぼ排他的にC ++を使用しました。

私はベイエリア&シアトルにいくつかのBigHouseHoldNameTech会社とのインタビューをしました、そして最高のインタビューの一つが関与本当すなわち[データ構造とアルゴリズムを含む、彼らは仕事に対処しなければならなかったことに疑問を:あなたは3000億のデータポイントを持っていますXYZで構成されます。どのように効率的に保存および検索しますか?]。

これにより、候補者がどのように介入し、直面している実際の問題を解決できるかを知ることができます。最悪の事態は別のBigHouseHoldNameTech会社でもありましたが、彼らはあなたが本当にマニュアルで調べるべきである信じられないほど不可解な質問を何時間も尋ねました[ つまり、WindowsとLinuxのPCBの主な違いを説明してください-これはそうではありませんでした'カーネルレベルの位置のt ]

ヘッジファンドは拷問の意図を持つ奇妙なものです... ホワイトボードでナップザックタイプの問題を8時間解決することを期待してください。


2

私はソフトウェア開発者(c / c ++)であり、この分野で20年以上働いています。現在私たちが日常的に見ているタイプのインタビュー(ホワイトボードでの脳の体操、データ構造の実装、検索アルゴリズムなど)は、newgradsを除いてあまり行われていませんでした。評判の良い会社で適度な時間働いた場合、それはコードを書く能力の証明と見なされました。今ではとても学校っぽくなり、その理由はわかりません。本当に、彼らがあなたにコーディングするように頼む典型的なことは、暗記することができるので、ホワイトボードでそれをすることは本当に何も証明しません。作業プロジェクトでは、インターネットを使用して何かを調査しますが、btreeやリンクリストをゼロから作成することはありません。

スクラムと同じように、もう1つの管理の流行は、おそらくグーグル、アマゾン、マイクロソフトによって開始されたと思います。ジャックウェルチのランクでやったように他のみんながコピーしました... GEを覚えていますか?

あなたが私のコメントを読んでいる採用マネージャーであるなら、あなたが候補者に尋ねるべきであるのは、彼らが特定の問題を解決する方法です。ハッシュテーブルをコーディングするように依頼する代わりに、ハッシュテーブルに関連する問題を与え、どのように解決するかを尋ねます。

また、この投稿の上の開発者に「会社が解決しなければならなかった現実世界の問題を彼らに与えてください」と言っています。

「しかし、私はOOP /継承の質問を爆撃する傾向があります。なぜですか?テンプレートのサポートが追加された後、私は汎用プログラミングにほぼ排他的にC ++を使用しました。」

私も上記に同意します。会社で働くときは、自分のやり方でコードを書きます。私は15歳で働いていた会社のシニアアーキテクトが参照ではなくポインタを使用することを好んだため、C ++の参照構文による呼び出しを頭の外から思い出すのに苦労しています。彼はあなたが見る古いCプログラマでした。それが私たち全員が使用したものです。

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