Revision history and IPFS entry, back to latest
ClareHuang
IPFS What is this

Content Hash

告別2018:Data Scientist求職過程

ClareHuang
·
·
想直接看technical部份的人,請跳去第五段

事緣

在網上多看到其他人成功的一面,鮮見人談論失敗的經歷,故在此分享我求職面試(18 負 1 勝)苦盡甘來的經歷,讓大家知道我這一年曾經如此潦倒==” 還有,求職本來就是個充滿隨機性的過程。

先談談我的背景

我之前在芝加哥大學唸研究院,花了六年時間取得地球物理學博士學位,專業為大氣流體力學。其實我做的研究很有趣,論文導師也對我非常好,無奈一些圈內人的惡行,使我對學術界失望,Year 5 時萌生轉出 Industry 的念頭,卻發現美國大部份氣象學家的職位只考慮公民/永久居民(我是香港人),唯有試著轉行。要是有興趣了解我的研究或工作,可參看我的個人網頁。(充滿轉折的故事 😅 )

本文範圍

我有幸在2017年被選中在 Boston 參與一個口碑很好(而且免費)的Data Science Fellowship Program,從中學到了許多關商品的概念和面試技巧。可惜訓練結束後,我要趕回芝加哥寫論文和答辯,最後沒有留在當地跟朋友一起找工作。此文將記述回到芝加哥後所參與的Data Scientist(下稱DS)面試經歷和心得。

天時地利

我找工作的那段日子,正值現任行政班子收緊簽證規條之時。例如,四月時曾禁止 F-1 OPT 工作證持有者到 third-party site 工作,變相外地生不能從事consulting(雖然到八月,政府被入稟法庭起訴,於是還原了條例,但已害我錯失了好幾個求職機會)。朝令夕改的規條,使不少公司對外地人望門卻步,或把聘請外地人的門檻提高。據我所知,西岸的 tech firms 相對較願意聘請外地人,Chicago 的公司傾向 commerce 而非 tech,會考慮外地人的公司相對較少。

背景交代完畢,進入正題

當時遞出的求職申請,多如沙數恆海,故以下列表只記錄面試機會和結果( “-” 代表該程序不在面試程序之中,“X” 代表在該程序進行前我已被拒絕)。十八家公司裡面,最後我成功進了 Company R 工作。在這之前,Company G雖然沒有給我offer,在我請求之下,給予了我十二星期(18年4月至6月)寶貴的實習機會($25/hr 幫補家計。失業就是一直在燒錢 TAT) — — 我從我的實習主管還有負責撮取文獻的小組學到了許多 Natural Language Processing(NLP)的知識和技巧,對日後的面試很有幫助。

我所獲得的面試機會和結果。

如何報名

我自行遞交的求職申請大多石沉大海,後來 intern 時期非常忙碌,就索性只找朋友幫忙 refer 已知願意聘請外地人的公司,效率高很多。至於如何結識新朋友,本文最後一部份會分享一下。(註:在「Referred by employee」的情況,要是你被錄取了,推薦你的朋友會得到referral bonus ($$$),是雙贏的局面喔。)

面試程序

DS 的面試通常有四部份,先後次序每間公司不同:

(A)Phone screen (30 minutes)- 多是非DS專業的HR致電來詢問關於你的背景的資料,包括與該職位相關的經驗,是否需要申請簽證等事宜。只要你事先了解公司背景,想清楚要交代的事情,這關亳無難度。只有 phone screen 而沒有後續面試的公司,除了Facebook 的 recruiter 是自己神隱了之外,死因都是要 sponsor visa… …

(B)Technical Interview(0.5–1 hour) — 通常會是 hiring manager 或 data scientist 來電或視訊會談,叫你詳細介紹你的專業背景,還有過往做過的 DS project。要是你本身的專業沒有 DS 成份,最好早點開始想想,有沒有什麼你可以用machine learning解答或獲得有趣insight的問題。例如,面試加入一個給學生提供 machine learning part-time job 的網絡時,我就 showcase了一個 project 題為「Predict Kickstarter Crowdfunding Success based on their project description」。

介紹 project 的時候,如果是 supervised machine learning,常見問題包括:(1)你用什麼 data,(2)用什麼 algorithm,(3)如何選(hyper)parameters,(4)如何評估 model performance。在過程中他們也有機會抽問 Machine Learning 課本內容,例如 Random Forest 是在 optimize 什麼 loss function,Gradient Boosting 如何運作,有 class imbalance 的情況應該用什麼 evaluation metric 之類。溫習就成。

(C)Take-home exam (2 hours至數天不等)- 至今我做了12個exams,大部份都是要你寫一個完整的 supervised machine learning pipeline,包括EDA,data cleaning,modeling 和 evaluation — 我還是到了很後期才知道應該用production code的格式去做這類題目,不要把所有 code 都放進一個jupyter notebook 裡(雖然有些公司不介意面試者這樣做)。

也有少部份公司會出其他題目,如:Company E 給了一道 spatial modeling 的題目,Company H 則考我 stochastic forecasting,也有請NLP DS的會要你train word-embedding/用unsupervised learning 的方法歸類文檔,而 trading firm 會給你 coding test/mental math test。

(D)Final interview(3–5 hours)- 若能闖到這關,就真的意味著那公司是考慮請你的,不然才不會叫4–8個人輪流問足你幾小時問題,題型包括:閑談(即behavioral interview)、technical interview、case study和white boarding(coding interview)。

要是最後一關失敗了,該怎麼辦?

通知你面試結果的人會是 HR 而非 hiring manager。面試失敗了的話,請包握從這間公司學習的機會 — — 要是這公司給你的印象還不錯,誠懇地告訴HR,這次的面試是寶貴的學習經驗,你也很喜歡他們的團隊,希望以後可以做得更好,問他們有沒有關於 hiring team decision 的資訊可以分享。他們花了幾小時跟你面談,多會願意告訴你他們的想法,而這只會是口頭交代,不會透過電郵,所以要是你電郵HR,直接建議約個時間通電。

我可以在這裡分享一下從電話得來的資訊:Company H 的 HR 告訴我他們已請了一個有相關經驗的 industrial candidate(非戰之罪orz);Company I 說他們是 start-up,希望有個能獨當一面的 candidate 做 consultant,他們很喜歡我求知慾強,但未有資源栽培新人,我相信是我面試時表現得不夠自信吧(後來從 LinkedIn 得知Company I 請了有相關工作經驗的人);Company O的HR說大家都覺得我很符合 cultural fit,但在解題方面比較 passive,而且他們想要一個懂得寫 production code 的人(之前通過take-home exam時從沒聽說要production code這feedback!做Company Q的試題時做對格式了)(唉,其實本身我報 Company O 時是報 weather specialist 的職位,但結果沒 opening,就把我的申請轉成 DS)。由此可見,每間公司想要的特長,都有點不同。

面試中跟我說過話的人,我都嘗試加他們 LinkedIn,日後有相關工作機會或Meetup,我也有可以連絡的人;同時,亦擴大我的網絡,增加我可以觸及的陌生人(2nd, 3rd degree connections)。

給仍在象牙塔的朋友們

從研究院出來的fresh grad,並不容易三言兩語說服別人你會寫 industrial standard 的 code。可以的話,把你研究的 analysis code 包裝成 modules 甚至 package,放上 GitHub,就是有力的證據。在研究院五年級時,我把研發出來的climate data analysis technique包裝成python package,原意是想多些人能夠使用,後來加上的 unit test 和 documentation,impress了最後一家面試的公司。 😉

廣結善緣~即使覺得挫敗也千萬別做隱青 😖

這個寫在最後,也是我最想分享的部份!經過這一年,我知道還在待業狀態,要強打著笑容約會/結識朋友是不容易的(當別人問你做什麼時,自卑感就湧上來了),但事實上,最在意你待業的人其實是你自己。要是你也不相信你是值得被幫助的,哪有人會來幫你?

在我失業這段期間,我有坦誠告訴朋友我的難處,他們也很積極給我找門路,這才有以上那麼多的referrals。(注:列表中「referred by candidate」的情況是,我有朋友找到工作,推掉了其他面試,並告訴相關recruiter我是一個好的candidate,建議他們連絡我。)非常感謝我給力的朋友們! 🙏 🙏 🙏

同時,我也有在 LinkedIn 嘗試結交背景和我相關的人 — 推薦我到 Company O 面試的氣象學家,就是在 LinkedIn 結識的,然後在實習的某一天買午餐時巧合碰上他,得悉他的同事離職了有空缺。我請他為我遞了求職申請。緣份就是如此chaotic和隨機的事。

以上分享的這些事情,我會希望在我求職前,有人告訴我 😊 希望我的分享對你有幫助吧。有問題的話,歡迎留言,我會盡力補充/解答。

(此文寫於2018年12月31日,原載於本人 Medium網誌

CC BY-NC-ND 2.0