第5章. テクニカル・インタビューコーディング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
前の章では、ML面接のプロセスと、技術面接の一部であるMLアルゴリズムとモデルトレーニングについて説明した。しかし、技術面接では、MLのアルゴリズムや統計の知識、モデルのトレーニング以外にも多くのことを候補者に求めることがある。この章では、その1つであるコーディング面接を取り上げる。
マシンラーニングの仕事では、企業によって、また企業内のチームによっても、問われるコーディングの種類は異なる。例えば、私がデータサイエンティストやMLEの面接を受けたとき、以下のようなコーディングの質問やタスクがあった:
会社1:pandasでのデータ操作に関するPythonの質問
会社2:Pythonの脳トレ問題(「LeetCodeスタイル」)のみ
会社3:SQLとPython Pandasを使ったデータ関連のコーディング問題
会社4:実際のシナリオをコーディングする持ち帰りコーディング演習
...といった具合だ。
企業がコーディング面接で質問する内容には大きなばらつきがある。私が個人的に見たり、ソフトウェアエンジニアとして働いている同僚やソフトウェアエンジニアの採用マネージャーから聞いたりしたところでは、MLのコーディング面接はソフトウェアエンジニア職の技術面接よりも標準化されていないようだ。良い面としては、いくつかのML職の面接官は、候補者に必ずしも最も難しい "LeetCodeスタイル "の質問、別名 "LeetCodeハード "をするわけではない。1なぜなら、候補者はMLアルゴリズムの知識など、他のスキルで評価されるからだ。例えば、大手ハイテク企業のエンジニア職(MLEなど)の面接では、通常のソフトウェアエンジニアリングのループの質問を受ける。いつものように、採用担当者に確認しよう。
機械学習の役割の3つの柱」でも触れたように、MLで働く人にはプログラミングとML/統計の両方の棒をクリアすることが求められる。ソフトウェア・エンジニアの平均的な候補者よりもさらに経験豊富で、最も熟練したコーダーであることは期待されないが、チームで容易に仕事ができる程度の能力は必要だ。
必要なのはMLや統計の知識だけで、小規模なデータを扱い、本番稼動させる必要のないチームもあるかもしれない。そのような企業では、面接の過程でコーディング・スキルをテストされることはないかもしれない。というのも、MLモデルを配布して提供する方法がなければ、私たちが日常的に使っている製品の一部にはならないからだ。MLそのものがNetflixのレコメンダーシステムを作るのではなく、そのモデルを本番に投入し、ユーザが対話するフロントエンドの体験の一部となることで、ユーザが喜び、MLから収益を得ることができるのだ。(デプロイに関する知識を試すインタビューについては、第6章を参照のこと)
この章では、MLの就職面接でよく聞かれるプログラミングの質問を分類し、準備の仕方を説明する:
Pythonを知らない場合の学習ロードマップ
データに関するPythonの質問
Pythonの問題集
データに関するSQLの質問
ゼロから始める:Pythonを知らない場合の学習ロードマップ
Pythonをすでに知っている人は、このセクションを読み飛ばしても構わない!私がPythonを知っていることを重視する理由は以下の通りだ:
私が受けてきたMLの面接では、すべてではないにせよ、ほとんどがPythonをある程度知っていることを前提にしている。仕事で使うMLライブラリのほとんどはPythonで実装されている。 ...