[心得] 2021海內外數據科學、資料分析求職心得

軟工

48470


(代po) How I passed 26 interviews & got 6 DA/DS offer from Disney+, Bytedance, SeaMoney, LINE TV, DiDi, Kuaishou

Medium好讀版(附有資源連結):https://bertmclee.medium.com/2021海內外數據科學-資料分析求職全攻略-壹-成績單-攻略-資源-c36b0138b86b

在入職北京Disney+ Hotstar的第一個週末,我希望將過去幾年的職涯摸索過程紀錄下來。這一路走來的不甘心,也許暫時告一個段落了。希望透過這一系列的文章,給同樣想走Data這條路的人一點幫助,就像我一直以來受到這個大社群幫助一樣。
此篇是求職全攻略系列文中的精華,從上海黃浦江寫到北京中關村,可謂傾盡全力、嘔心瀝血。
本文會從求職計畫源起、求職成果、準備攻略@直寫到資源匯總,希望能幫助到同樣要經歷海內外DA(Data Analyst)/DS(Data Scientist)求職的朋友。

Outline
* 求職計畫源起
* 2021 求職成績單
* DA/DS求職要做哪些準備?
* 對於DS各個科目,我如何做前期準備?
* 前期準備之後,如何得到大量的面試?
* 開始大量面試後,如何準備?
* 其他求職相關Q&A
* DA/DS求職準備相關資源分享


求職計畫源起

2020年11月,我花了很多時間將一畝三分地和Medium上的DA/DS求職心得總結在Notion上,寫成「DS找工葵花寶典」。我一直在跟我在數據之路的好兄弟Ryan說,依我過去在教會所受到的訓練,我可以自修幾個月考上台大,指考物理93,化學88,英文91.5,托福104,GRE 327...其實準備面試跟考試的道理應該是差不多的,讓我全力準備幾個月,依我的計畫力跟執行力,沒道理失敗。其實原話是:「讓我全力詹兩個月,沒理由輸。」
*注:NBA球星LeBron James在生死戰時,會開啟[全力詹]模式,平常則是經常[滑水]、[散步]。
在那之後,我在DBS接到一個比較大的Project,一直到2021年4月中,我在DBS的工作都比較緊湊、充實,也比較沒有花太多心思在求職上。
因此,確實參考「DS找工葵花寶典」擬定自己的「2021海外找工準備計畫Pro Max」是從2021年四月底開始。
在此之前有一則重要的LinkedIn訊息讓我對這個計畫更有信心:2021年3月19號,在舊金山Twitter的Janet學姊介紹在新加坡Twitter的MLE (Machine Learning Engineer)機會給我,儘管最後五月面試沒有上,但這讓我知道:原來我離我的Dream Job也許並不是那麼遠。

好,前面鋪成了這麼久,差不多是時候上乾貨了。

2021 求職成績單

https://imgur.com/TzEGFbS.jpg

海投29個,內推19個,共投48個,被動受聯繫8個,總共接觸了56個職缺,正式進入招聘流程的有15個。
總共做了1份簡報、1個Take-home作業、3個OA (Online Assessment)、32場面試,通過26場,拿到6個Offer,3個北京、1個台北、2個新加坡。

https://imgur.com/LpeVPBh.jpg

6個Offer,1個BA、3個DA、2個DS。

那接下來的問題就是:
How did I make it ?
我想分為幾個部分,首先最大的題目是:

DA/DS求職要做哪些準備?

DA/DS 求職準備清單
**: 熱門必考
(1) Programming:
- Python **
- Pandas **
- SQL **
- Bash, Shell
(2) Foundation of Mathematics:
- Statistics **
- Probabilities **
- Time Series
(3) Machine Learning:
- Machine Learning **
- Deep Learning
- NLP
- CV
- RecSys
- ML Design
(4) Data Engineering & Big Data:
- Airflow
- Hadoop
- Spark
(5) Product & Case:
- Product **
- Case **
- Estimation
- A/B Testing **
(6) Take-Home Challenge:
- DS Take-Home Challenge
(7) Data Visualization
- Tableau
- Power BI
- Python DataViz Packages
(8) Behavioral Questions
- BQ **

為什麼會有這麼多要準備的科目?
數據相關職缺在每間公司,每個部門的定位都不一樣,同樣職稱是DS,做的事情可能大不相同,有的偏重分析、推論,有的偏重Modeling,有的偏重A/B Testing,有的可能一條龍從Data Engineering, ETL到Data Visualization、Dashboard都要做。因此面試的內容變化也比較多,可以從JD(職缺描述)和面試中了解到這個職缺注重哪些特點跟技能。

我需要準備這麼多技能嗎?時間有限怎麼辦?
這個就是目標和策略的問題。如果有很明確、具體的求職方向,你當然能夠將準備的範圍限縮,針對重點科目做準備。但對我而言,我認為以長遠來看這些都是累積的過程,我還不希望侷限自己,不論未來要成為CDO數據長、Own一個Product or Business,多一些技能跟經驗總是好的。因此我這次BA, DA, DS, MLE, NLP Engineer都有準備和面試。
考慮成功率的話,其實重點不在於要不要面試多種職缺,而是對於每種職缺的準備經驗都要有所累積,最好是密集、大量的準備、大量的面試,practice makes perfect。面試狀態對於面試表現的影響不亞於實力。

我還是不想準備的這麼雜怎麼辦?
你可以放棄做Data,去面Software Engineer吧,刷題就好了。
我開玩笑的。當然以一個Junior求職的狀況,準備Software Engineer面試也許會比較單純,在不考System Design的情況下,國際大廠通常就是以Leetcode形式的Coding題為主,但這完全不代表比較容易,在大CS時代之下,競爭也是非常激烈的,人人刷滿300題、 500題,甚至破千的神人也不少。這是自己可以考慮的。

對於DS各個科目,我如何做前期準備?

我直接分享我在2020年11月就寫好,2021年4月開始執行的「2021找工To Do List」吧:
SQL
https://imgur.com/PYGlr4I.jpg


Python
https://imgur.com/H4iHwgO.jpg


Product & Case
https://imgur.com/1UAgKII.jpg


Statistics & Probabilities & A/B Testing
https://imgur.com/V0dfIx5.jpg


Machine Learning
https://imgur.com/8ALNWQp.jpg


Take-Home Challenge
https://imgur.com/es3S562.jpg


Behavioral Questions, Tableau, Hadoop & Spark, Linux & Bashing, English
https://imgur.com/4oDwWbm.jpg


並將這些To Do,安排到前期準備的6個Phase中:
https://imgur.com/7R5Cy9C.jpg

DS求職前期準備6個Phase,數字為預估準備天數,扣除作為預習的Phase 0和錦上添花的Phase V,總共應花51天。

前期準備我預估要花51天,就是將近兩個月的時間,實際執行上,雖然還有不少調整跟不可控的意外變動,但誤差不大。

這邊可能有個問題是:
我應該準備到什麼程度,才開始面試?
這個問題沒有人說得準,很多人會說:「永遠沒有準備好的一天」,因此建議你一邊投履歷、面試,一邊準備,畢竟面試結果很難說,說不定一下就上了。
我的想法是,對於那些難得、不容錯過的機會,當然要試試看,比如說一年一度的校招申請截止日,你當然不能錯過。但是除此以外,我會覺得清楚照著自己的步調跟計畫走也很重要。你不會希望連基本的準備都沒做好,然後面試表現不好、場面尷尬,這樣相當傷士氣跟信心,並且反而換來公司冷凍期半年或一年。


前期準備之後,如何得到大量的面試?
簡單總結這個題目:
* 一份包裝漂亮的履歷。
* 找內推、Refer。

那延伸的問題是:

怎麼寫好履歷?
這個題目我先分享我自己的經驗:
* 我在大四上的時候,聽過一堂Mason免費辦給學員的履歷課,開始使用LaTex來編寫履歷。Mason現在有針對求職專門開課,看在Mason幫過我的份上幫他工商一下。
* 我在台大修過一門江介維老師教的「深造預備英文寫作」,針對履歷、Cover Letter、自傳、SOP相關的書寫都有幫助。
* 請別人幫你看履歷。
* 最後就是參考其他人的履歷。
更多細節就是付費內容了XD。

怎麼找人內推、Refer?
* 平時經營好自己的LinkedIn、Medium:新加坡Twitter的機會,就是台大學姊在LinkedIn關注到我,主動幫我內推的。另外像是Binance, Garena, McKinsey, 新加坡SeaMoney的機會都是HR或Hunter在LinkedIn主動介紹給我的。
* 找學長姐、前輩、朋友們:我很幸運有認識在各國Facebook、Amazon、Google漱H,有些職缺可以跨國內推,有些有限制,可以請朋友看看。
* 關注Facebook、Medium、PTT、LinkedIn等社群:很多朋友有分享工作或面試經驗並協助內推,比如說新加坡TikTok的Junlin前輩、新加坡Shopee、SEA、泰國Agoda也都有一些朋友經常分享。
* 一畝三分地:我有很多內推是在上面找的,包含Disney+、快手、螞蟻金服、小紅書、拼多多...都是在上面請人內推的。包含亞太、美國的機會都有,當然美國的前提是要有簽證。
* LinkedIn Cold Message:新加坡Ninja Van、GBD、台北Line TV就是我在LinkedIn上發Cold Message得到內推的,但整體來說,成功率不是很高。
* 半路出家軟體工程師在矽谷:這個部落格也可以參考。

開始大量面試後,如何準備?

Step 0: 熟悉自己的履歷。
這個是最基本、最重要、面試中準備CP值最高、最常被問到的。有幾個準備的層面:
* 清楚自己做過什麼事,可以完整的用STAR框架介紹(通常Action, Result佔比會高一些)。
* 知道如何在不說謊的前提下,隱惡揚善的包裝。
* 思考可能會遇到的follow-up question,如何應答。

要多清楚自己的履歷?以一個做模型的DS來說,基本上對於寫在履歷上的每一個模型都要很熟悉,舉例來說我有用過BERT這個模型,那我至少要熟悉:①模型架構每一層的細節 ②模型預訓練的方法 ③模型常用的下游場景和用法 ④我是怎麼用的;甚至包括:⑤模型訓練的參數挑選 ⑥與其他相關模型的比較、選擇 ⑦可能改進的方向。基本上這些都有機會被問到,這時候你就要把自己想成李宏毅or林軒田。
這裡只是以做模型為例,對於其他項目、Project也是一樣的道理。

Step 1: 清楚職缺內容、面試內容
詳讀JD,了解該職位重視哪些特質和技能,並勇敢而有禮貌的跟HR確認面試流程、內容、面試官資訊,儘管他們可能也無法透露太多,但是在面試前多一分資訊都是很寶貴的。

Step 2: 研究面試官背景
如果有面試官的姓名,我會到LinkedIn看看面試官的背景,說不定還能找到他的Medium、GitHub、Kaggle、Facebook、Twitter A難說面試聊天的時候會不會用上,但至少你知道你是跟什麼樣背景的人說話,揣摩要用什麼角度來表達。

Step 3: 找面經、面試心得
中國在這個部分的資源相當豐富,一畝三分地、牛客網、看準網上的面試經驗分享很多,Google關鍵字這些互聯網大廠跟職缺的關鍵字通常都找得到不少。
新加坡的話比較難找,一畝三分地、PTT、Medium上有少部分的分享,Glassdoor上會更多,但是深度通常比較淺。
台灣的話,我有用面試趣、或著也是看PTT、Medium上有沒有人分享。
我會先將相關的面經都搜集起來,再按照題型進行分類。

Step 4: 針對公司、部門業務做研究
至少對公司、所屬產業狀況、發展趨勢有一定的了解。我看了不少「人人都是產品經理」的文章,有一些競品分析、賽道分析、指標分析。特別記得包括快手跟抖音的短視頻行業、滴滴旗下橙心優選的社區團購競賽、Disney+, Line TV的流媒體產業、SeaMoney的FinTech事業。
這些對於面試中後階段,Product跟Case的分析問題,指標拆解問題,都有很大的幫助。
有些人說這就是BA/DA面試的決勝點,也是沒有行業經驗的人難以跨進來的原因。不過我就是從銀行業進到互聯網產業的,所以我想不是沒有機會,就是保持學習跟關注吧。

Step 5: 針對面經中的各種題型練習
如果有考演算法Coding的話,可以買Leetcode Preminum,刷該公司的題目,我印象中字節的面試中有一題是公司高頻原題。然後面經裡面的題目也可以刷一遍。
其他部分一樣針對各個題型做練習、準備,找資料。我沒有找人做Mock Interview,就是自己模擬,或是自己講講看題目,練習如何Structural的回答問題;或是模型推導,就自己把模型結構畫出來,數學公式推導一次。

Step 6: 客製化自我介紹
通常面試還是會以自我介紹開頭,所以為開場準備一個吸引人的自我介紹還是必要的。我有稍微在YouTube上看了一些教學,其中一個給大家參考,擬定自己的草稿。
接著在面試前,前面做了這麼多準備後,已經知己知彼了,知道自己的履歷、知道對方的背景、重視的點、面試的模式,就可以以這些元素微調自我介紹的內容,將面試引導到你想走的方向。

其他求職相關Q&A

接下來還有幾個求職相關問題,在此簡單回答:

面試結束後,如何檢討?
這個部分我就是面試完盡快將面試細節都記錄下來,趁著記憶猶新的時候。我現在都是用Notion整理,會有一個Big Board,然後每間Company有自己的Page,裡面又會有四個部分:①JD(Job Description) ②面經彙總 ③面試準備 ④面試紀錄

https://imgur.com/ZGHDWos.jpg

Job Application Big Board
除此以外,主要就是自己想想面試有哪些做得好和可以調整的。

真的需要花這麼多時間求職嗎?
我花了一個半月做前期準備,後面從開始積極投履歷、走過四輪面試、拿到Offer又花了一個多月時間。中間比較多插曲、意料之外的事、糾結選擇的過程讓整體時間延長。值不值得,就看個人考量和規劃吧。

DA/DS求職準備相關資源分享

SQL
Mode SQL:在開始準備的時候,可以刷一遍Mode SQL複習SQL,或是第一次學也適用。
Leetcode — Database Problems:花個幾天把高頻50題刷完、整理筆記就差不多了。
A Collection of Data Science Take-Home Challenges — 6 SQL Problems:書裡面附 贈的幾個SQL題組也是不錯的練習。

Python
Leetcode-Algorithms Problems:這就不像SQL那麼好準備了。Coding需要準備的強度根據想面試的職位的要求而定,我自己花了不少時間,但是Medium還是沒有到穩穩秒殺的程度,Hard就更頭痛了。
Pandas:網上有很多Cheatsheet,搜一下就有了。想練習的話,最好的方式是自己做幾個Project,從很raw的data開始清理;時間不夠的話,可以拿幾個DS Challenge練練手;還有一種方法就是用Pandas刷SQL題。

Product & Case
Cracking the PM Interview:我只有大概翻了Estimation, Product, Case三章,可以作為初步的準備。
A Collection of Data Science Take-Home Challenges — 40 Product Questions:我有寫一個系列文統整書裡的內容,以一個DS角度來解Case,很值得參考,我是說書。
Stellar Peers:這個部落格有很多Product & Case相關的面試題目詳解,相當值得參考,尤其對於準備英文面試有幫助。
Victor Cheng — Look Over My Shoulders:我有聽一些這個Podcast,就是Victor Cheng帶的Case Interview,插播他的解析。可以參考,但是跟DS面試的Case角度還是會有不同。

A/B Testing
Udacity — A/B Testing:網路上大力推薦的課程,可以先簡單過一遍。
A Summary of Udacity A/B Testing Course:這篇課程Summary寫得不錯(我不會承認其實我只看了Summary吧)。
A Collection of Data Science Take-Home Challenges — 40 Product Questions:一樣還是這本書,裡面有寫到不少A/B Testing可能會遇到的問題跟解法。

Statistics
學校講義:就,很,實用。
StatQuest with Josh Starmer:很多統計、機率、ML的英文影片解說。

Probabilities
40 Questions on Probability for data science:屬於比較基本的機率問題,可以簡單過一下,順便把貝氏定理複習一下。
老實說,我有幾次機率被問倒,有的涉及到微積分等稍微進階的題目,所以其實應該要準備得更深入。

Machine Learning
林軒田 — 機器學習基石與技法:以前修課的時候都會說老師教得太數學理論,結果發現面試有時候還真的會考到。
李宏毅:李宏毅真的讓ML變得比較可愛、聽得下去。我主要針對我有用過的模型跟訓練技巧去聽。
Medium — Towards Data Science:根據自己想查的模型,常常能在上面看到不錯的文章
介紹。
190 道機器學習面試題 & Data Science Interview Questions & Detailed Answers & 七月在線題庫:像這種ML面試題我找了一堆,包括中文跟英文的,多到後來放棄ML之路。

Behavioral Questions
這種題目我就是自己看面經想解答,並沒有太多參考其他的資料,我記得Cracking the PM Interview裏面有一張是在講BQ的,應該不錯。

Big Data: Hadoop & Spark
Udemy:有稍微看過上面的課程(Hadoop & Spark)。但因為之前工作沒有實際經驗,面試中也沒什麼被問到。

結語
這篇應該算有誠意了吧。回到開頭,我只是希望讓Data Science這個社群更好(更卷?),讓求職數據相關崗位的人少走一些冤枉路,也紀錄下我今年的努力和感謝,我確實是相當有恩典的人,Praise the One Above。
同時,我知道這只是我的一個小起點,Disney+ Hotstar裡大部分都是美國名校碩博海龜、或是北大、清華...希望自己能在這個環境下快速成長,在數據之路走得更遠。

-----
Sent from JPTT on my iPhone

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.11.212.83 (新加坡) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1636964273.A.A8F.html
michellehot1樓推推 11/15 16:47
longlyeagle2樓nice 有沒有機會請你分享為什麼在這些公司裡選擇這間 11/15 16:57
kyrie773樓 11/15 18:25
yyyyyyyv4樓 11/15 18:41
pkro123455樓 11/15 19:20
duck107046樓推分享 11/15 19:30
Belieeve7樓 11/15 19:46
algorithms8樓 11/15 21:45
tiramisu02259樓推 謝謝分享 11/15 22:13
Inglenook10樓 11/15 22:29
unmolk11樓詳細推 11/15 23:34
sumsum12樓詳細推! 11/16 00:04
DrTech13樓一看就知道台大風格,結果真的是台大的 11/16 00:59
DrTech14樓有系統,人脈又充足 11/16 01:00
cip60415樓 11/16 01:12
mike846916樓推推 整理的很仔細 11/16 01:21
ouskit17樓push 11/16 01:49
lukelove18樓推分享, 有執行力也有能力也有人脈, 拖著垂老剛剛才上pr 11/16 03:21
lukelove19樓的我覺得非常的羨慕, 即便回到你的心我也走不出相同的路 11/16 03:21
lukelove20樓*年紀 11/16 03:22
rr8r8r8r8tw21樓強,可以請教如何20天刷200題高頻題嗎? 11/16 04:39
ptta22樓推 謝謝分享 11/16 06:54
ian9091123樓感謝分享 11/16 09:50
AdamLin120124樓 11/16 11:10
WWIII25樓高手啊 推 11/16 11:31
azzc103126樓同是DA推一下 好強大的執行力 11/16 12:09
Lightten27樓 11/16 12:32
adsl5401028樓 11/16 13:00
weifan29樓推 感謝分享 11/16 14:18
ukuk66688830樓推 強者 11/16 15:27
更多心得
[心得] Agoda Software Engineer (Backend)
[心得] 財金/旅遊業5年/轉職JAVA(文長)
[心得] FinMind 大數據專案X架構解析
[心得] Glints 不推薦
[心得] 產品PM如何從需求海淘金
[心得] 新創公司給人的綺麗幻想與殘酷現實
[心得] 近期面試,簡單分享
[心得] AppWorks School 非本科前端轉職心得