留學隨筆 — 北美數據科學New Grad求職心得

寫在50+面試之後

Daniel
8 min readFeb 19, 2022

本文將以一個0 ~ 2年工作經驗的求職者角度來回顧過去一年 (2021) 在北美找Data Scientist Full Time的體驗。文內不會一一描述我面試過的公司和題目,而是希望透過歸納與總結,梳理出一些實用的知識/技巧,幫助讀者更有效率地找工作。文章共分三段:背景、投履歷、面試。

背景

  • 2021春Stat/CS碩士畢業
  • 沒有正職工作經驗 (大學畢業後直達美國)
  • 海投和內推一坨拉庫:第一輪面試50+、最後一輪面試10+ (Snapchat, Yelp, CVS, Apple, Microsoft, Quora, Duolingo, Booking.com,…etc)
  • 主投Data Scientist — Product Analytics OR Machine Learning

投履歷

我個人認為對於畢業生找Data Scientist,拿到面試是整個求職環節中最難的一部分,猶記得當初拒絕信拿到手軟…。一開始還很沮喪懷疑自己不夠好,到最後根本麻木了,變得像是面無表情的機器人,坐在電腦前瀏覽LinkedIn,瘋狂按下Apply Now。

好吧,其實比起自己瘋狂海投,還有更好的方式:內推。但隨著面試經越來越豐富,我後來才了解到,其實內推又可細分不同種,強度各不同。在一一談各種內推之前,需要先了解到一個重要觀念:幾乎每個Data Scientist Full Time Job背後,都有一個Hiring Manager (HM)。請別把HM和HR搞混,但究竟什麼是HM? 可以這麼解釋:通常Data Scientist都是組招,不像軟體工程師New Grad很多是General Hire先招進去再選組。而HM通常就是那個組的老大,也很可能是進公司後的老闆。

順著這個邏輯,內推依強到弱分成:HM內推 (保證有面試) > 組員推 (確保HM看到,且等於擔保履歷不錯) > recruiter推 (確保HM看到) > 系統內推 (HM不一定看得到)。

舉例,我曾經海投了兩三次JP Morgan,每次都像大石子丟入池塘一沉不起; 不過有一次因緣際會認識一位JPM的HM,聊了一會對方馬上寄信約了面試…連系統申請都不需要。至於怎麼找到HM內推和組員推?可以上各大社群看看 (一畝三分地、一些微信群組、台美人求職社團、LinkedIn)。而recruiter推,就得靠平時在LinkedIn上累積一些recruiter好友。至於最弱的系統內推,我個人感覺拿到面試率和海投差不多…而且還需要花時間寫第三人稱介紹信,其實不如直接海投。

投履歷的事差不多就這樣,另外還有一點值得注意的是,不要猶豫勇敢投下去!不需要符合所有列出來的職缺條件才投,甚至年限也不需要。筆者收到的面試當中,有將近一半要求2+年工作經驗。

面試

前面提到我主要投遞的是Data Scientist — Product Analytics OR Machine Learning,兩者的考點高度重合,但有些微差異。不過在討論各考點之前,我想先簡單談談Data Scientist Job的兩個維度:產業、資深級別。

維度一, 產業:
我投的職缺橫跨不同產業 (金融、醫療、旅遊、零售、科技,等等),總結而言,不論是哪個產業,modeling都在其中扮演重要角色,解決各自商業上的某些問題,另外筆者也觀察到,越來越多公司更關注measurement:怎麼設計實驗、做檢定、決策,甚至在搭建內部的實驗平台。所以建模、做實驗統計檢定可說是Data Scientist必備的技能。至於面試難度(深度),依照我的經驗,可以這樣排序:中型科技公司/明星新創 (Snapchat, Quora, Confluent,…) > 大型科技公司 (Microsoft、Apple,…) > 傳產 (Homedepot、Banking、CVS,…)

維度二, 資深級別:
這部分我目前沒什麼話語權,可以等以後再分享更多!不過我在有了第一份正職工作後的半年,開始嘗試面試幾個senior缺。我觀察到,此時的面試問題不再那麼標準化和技術性 (e.g. 解釋某個機器學習模型、寫出某段SQL),而是更圍繞在個人的經驗背景、解決過什麼domain問題、解決問題的能力。舉例而言,在面walmart marketing team時,被問到履歷上寫到的某個marketing模型,然後整場面試就從那邊展開,互相討論是在什麼情境下用那個模型以及細節。在面yelp Lead Data Scientist時60%討論個案,30%討論過去經驗,另外只有10%討論一些統計和程式。

回過頭來討論考點,其實不論職缺落在這兩個維度織成的二維圖上的哪個點上,我覺得以下技能是身為一名Data Scientist求職者需要把握的 (Product Analytics側重1,2,3,4; Machine Learning側重1,2,3,5),至於leetcode演算法就先不提了,絕大多數都不太會考,我只遇過三次,都是medium以下的題目,且都是簡單的資料結構:array、string manipulation、stack。除了面新加坡蝦皮時遇到了一題graph、一題DP…

  • 1, python
    我遇過最常考的依序是:pandas (apply, pivot_table, loc), numpy, sklearn,…
  • 2, stat
    我遇過最常考的依序是:undergrad-level stats (p-value, H0, H1, probability), experiment and statistical testing, quasi-experiment (DID, ANCOVA), GLM
  • 3, sql
    幾個常見考點:join, groupby, case when, with statement, window function (e.g. row_number, lag), date_related_funcs (e.g. datediff) ,把Hackerrank上的題目刷一遍就可以解決大概95%的面試題
  • 4, product cases
    這部分我個人感覺很難準備,也很難速成。可能平時多看些大公司的medium (e.g. Pinterest, Airbnb, Netflix)去培養一些product sense。我覺得cases可以分成兩類,一類像是what data would you use to find the reason behind an increase & decrease of a certain metric?另一類像是某產品更動了某個feature,然後問你怎麼衡量這個更動好不好。通常這類的回答套路大概是先想metrics,然後再回答怎麼testing,不過發想metrics本身就不是件容易事,要考量到feature的更動會影響哪些stakeholders,且如何影響,此時就需要對該產品有一定的了解。比如說yelp在首頁把廣告版面從3個增多至4個,此時對廣告主可能是好的,因為廣告成本下降,但對yelp使用者可能是壞的,因為留存率下降。至於testing本身就取決於metric會符合哪些統計分佈,如果不符合特定分佈,那可以考慮bootstrap和non-parametric testing。最後值得一提的是,我覺得在練習/回答這類型的問題時,需要lay out a framework for thinking through problems,然後有組織地和面試官討論。
  • 5, ML
    我遇過最常考的依序是:logistic regression, OLS (+L1, L2 regularization), tree-based models, xgboost, svm, 還有一些觀念 (e.g. bias-variance tradeoff, bagging vs. boosting, imbalanced data)。我推薦不用套件手刻一次經典算法,了解背後的最佳化怎麼運作,如此一來怎麼考都不會被考倒。另外如果職缺描述有提到production, deployment字眼,那面試中可能會被問到相關經驗:AWS, Docker, CI/CD。

文章來到尾聲,最後想說的是,面試有時真的很吃運氣。有一次面一個很對口的缺,但面試官在過程中一直拔耳機…跟我說開了一整天的會耳朵很痛,根本沒什麼在聽; 還有一次跟更資深的人競爭同個職位,即使我回答得好,但因為經驗相較不足,就被刷了; 又有一次面完得到正向回饋,但過了一週跟我說headcount沒了…

被拒絕乃面試常事,但不用過度懷疑自己,只要每一次都能學到一些東西,offer就不遠了。此部落格之後會陸續分享一些Data Science相關的知識,stay tuned ,Cheers !

--

--

Daniel
Daniel

Written by Daniel

Data Scientist working in the US from Taiwan (希望紀錄最真實的美國留學工作感受,不論是好的還是壞的,尤其是壞的,因為比較少人討論)