沒用Pandas快捷方法,硬核編程的我面試被拒
近日,Reddit 上一位網(wǎng)友 Mogady 分享了自己在一家公司的面試經(jīng)歷。這段經(jīng)歷讓他感到沮喪,因為他覺得面試并不是在考察 ML 工作者的實際能力,這是不公平的。我們先來看看他講述的面試過程。
我有 4 年的 NLP 經(jīng)驗,最近想找一份遠程工作,于是我申請了一家公司,該公司聲稱他們只雇傭 top 3% 的人。當然,沒有人知道這個數(shù)字是怎么來的。
我申請了兩次,第一次通過了編碼測試,但沒有通過技術(shù)面試,因為我沒能在 30 分鐘內(nèi)解決 2 個問題。
第一次面試失敗之后我反思了自己的弱點,并意識到解題才是工作面試中的關(guān)鍵,于是我在 Leetcode 上刷了一些題,然后又申請面試同一家公司。這次我直接進入了技術(shù)面試階段,他們給我一個數(shù)據(jù)集,要求我在 30 分鐘內(nèi)讓一個 NLP 方法的準確率達到 96%,其間我只能瀏覽文檔,不允許用 StackOverflow 或谷歌搜索。我想這應(yīng)該是在考察我理解問題的能力——想讓我又快又好地處理給定數(shù)據(jù)。
經(jīng)過幾次迭代,準確率達到 90%,然后時間到了。但我告訴面試官如果我有更多時間,我會怎么做。
第二天面試官給我發(fā)了一封拒絕郵件,我要求他們給我一個理由,他們說:「面試成功的人可以在給定的時間內(nèi)獲得更好的性能,因為這些人知道 Pandas 庫函數(shù)能幫他們快速完成編程。」
但是根據(jù)我?guī)啄甑?NLP 實際工作經(jīng)驗,Pandas 和 Jupyter 通常只用來分析數(shù)據(jù)。如果你真的在構(gòu)建一個項目,你可能就想盡可能擺脫 Pandas 庫函數(shù)。因此,不只用一行代碼完成操作并不意味著我的能力不是 top 3%。
如果該公司因此拒絕我,那么我是否可以認為 top 1% 的人甚至不需要編碼?他們只需要對各種工具得心應(yīng)手,問題就能靠工具自己解決了。
如果他們認為從頭開始構(gòu)建項目并不重要,那我注定不會面試成功。
顯然,Mogady 對這段面試經(jīng)歷感到非常懊惱,他提出疑惑:「為什么現(xiàn)在所有問題都以解決速度為衡量標準?」
Mogady 的經(jīng)歷引發(fā)了網(wǎng)友的諸多討論。有人表示這很現(xiàn)實:「面試確實會衡量應(yīng)聘者對行業(yè)中常用工具的了解,并將重點放在最常用的工具上。一些公司通常還希望盡快為客戶創(chuàng)造價值,而不考慮太多細節(jié)。這也會影響他們選擇雇用誰。」
但也有人從構(gòu)建項目的具體問題上分析,認為壓縮源代碼(例如用一行代碼完成操作)不利于項目的長期運行。一行代碼編譯之后的機器碼和幾行代碼沒有差別,而幾行有注釋的好代碼是更佳的選擇。
有擔任技術(shù)主管的數(shù)據(jù)科學家表示:「使用 Pandas 庫函數(shù)編寫一行代碼不是什么重要的事情,更重要的是如何擴展和泛化算法。我會更看重這一點,而不是盲目選擇只會加速訓練的員工。」
還有人從公司層面看待這個問題:「如果一個公司只考慮 ML 方法的速度,那么他們可能也只是想盡快盈利,而沒有長遠發(fā)展的想法。好的公司在意的是員工分析和研究問題的能力?!顾赃@樣的公司不去也罷,沒什么前途。
無論是對公司還是對個人,Mogady 的面試經(jīng)歷都值得我們思考。面對一個實際問題,又快又好地解決問題不是易事。如果要在速度和實際效益上選擇一個,你會怎么選?