【我的金融轉 Data之路】上篇:面試總結

Christine WU
15 min readOct 31, 2021

--

前言

一直想要提筆寫下從2020年10月到今年4月,總共半年的在職跳槽轉領域之旅。趁著歲末年終回顧這一年的點點滴滴,終於好好坐下來紀錄那些我走過的路。

這個主題總共會分成兩篇文章:

上篇比較偏實用取向 — — 總結我面試了10家公司的 Data 相關職位過程中常碰到的面試關卡,以及我覺得有幫助的線上資源。

下篇則會比較偏心情取向 — — 寫下那些我一路上的心境轉折,還有入職新工作後回首那半年的體悟和成長。

背景

2020年10月,某個加完班越來越冷的芝加哥夜晚,我給自己設下3個隔年生日前想要達成的目標:我想換產業去科技業、我想往 Data 方向發展、我想搬去溫暖的加州。

當時的我手上有的資源有:

  • 一個非常偏商管的求學背景:UIUC MS in Finance (Financial Mathematics) + NTU BBA in Accounting
  • 一年半的美國金融業工作經驗:主要做 Risk Modeling and Analytics,工作上會用到 SAS, SQL 和 Python,但 modeling 的部分基本上只會用到 regression 和各種 tree-based model

盤點這些資源並且做了一些功課之後,我發現 Data Scientist 是一個很廣泛的職稱 — — 有非常 engineering 導向的 DS,job description 關鍵字包含 statistical modeling, deep learning, data mining, Spark, etc. 以我2021年初時看到的職位來說,這類職位佔整體 DS 職位超過一半; 但也有偏 analytics 導向的 DS,job description 關鍵字包含 analytics, experiment, dashboard, metrics, etc. 像是 Facebook 和 Airbnb 的 DS 職位很大一部分是這類。

我知道自己的背景離 engineering 導向的 DS 有很大一段距離,而且我的職涯興趣也比較偏向 analytics,所以這次找的工作以 Data Scientist-Analytics Track 為主,也有投一些 Business Intelligence Engineer、Risk Analyst 或是 Data Analyst (但我完全沒有拿到任何一個 DA 面試)。

面試職位總結

因為是在職跳槽,沒有辦法花太多時間海投,所以我採取的是策略是重質不重量,所有面試機會都是透過朋友 refer 或是由 recruiter 在 Linkedin 上主動聯絡拿到的。

按照時間順序,我拿到的面試有這些:

Walmart eCommerce: Data Scientist - Marketplace Partner Payment

Amazon: Business Intelligence Engineer - Amazon Music

T-Mobile: Risk Data Scientist

Square: Data Scientist - Hardware

Affirm: Merchant Risk Senior Analyst

Paypal: Data Scientist - Venmo Fraud Risk Analytics (✔️offer accepted)

Coinbase: Data Scientist - Analytics

Nordstrom: Data Scientist - Supply Chain

Brex: Data Scientist - Analytics

Visa: Data Scientist

根據拿到的10個面試我得出三個小結論:

  1. 投履歷的時候我並沒有侷限在 Fintech,但最後拿到的10個面試裡有7個和 Fintech / Risk 相關 — — 所以我覺得除了 technical background 之外, domain knowledge 也是公司很看重的部分。
  2. (傳說中的)FAANG 除了Netflix 之外我全部都有投,但我完全沒有拿到這些公司的任何一個 DS 面試 — — 我自己評估之後覺得很有可能是因為我缺乏 product analytics 相關經驗,而這個經驗是很多 tech company 十分重視的。
  3. Square 是我拿到的面試中唯一偏 engineering 導向的 DS 職位,這也是我唯一一次被考到演算法的題目,所以根據我的經驗,刷 Leetcode Algorithm 類的題目對於找 analytics track 職位的人而言重要性較低。

面試經驗總結

礙於面試前有簽 NDA 的緣故,我沒有辦法分享每家公司確切考了什麼題目,但我整理出下列 5 種常見面試類型,並且附上我自己的準備方法,以及我覺得有幫助的線上資源。

5種常見面試類型:

  1. Behavior interview
  2. Coding interview
  3. Problem framing interview
  4. Statistics interview
  5. Machine learning technical discussion

面試類型和流程配對起來常常是這樣的:

1st Round: Hiring manager interview (Behavior interview + Machine learning technical discussion)

2nd Round: Take home challenge (Coding interview + Problem framing interview)

3rd Round: Technical interview (Coding interview)

Final Round: 在1–2天內跟組裡不同的人進行4–5場面試,通常每一場面試主題都不一樣,一場面試 cover 一個面試類型

  1. Behavior interview

這類面試常常出現在兩個時間點:

  • 第一關和 hiring manager 聊天

和 hiring manager 的面試通常會聊聊過去工作上負責的project,聊這些 project 對公司有什麼 impact,以及 project 進行的過程中你是怎麼樣跟其他人共事。

  • 最後一關和 higher management level 的 values interview

主要目的是看看你的個性和做事方式跟公司文化合不合得來,以及判斷你是不是一個共事起來會讓人覺得開心的人。

對於這類面試,我自己的準備方式是以 Amazon leadership principle 為基準,每個 principle 都想1–2個相關的故事,敘述的時候緊扣 STAR 原則幫助聆聽者快速了解這段經驗的背景,以及明確闡述在過程中你做出了什麼貢獻、解決了什麼問題、達成怎樣的成效。

推薦學習資源:

2. Coding interview

Analytics 相關的職位比較常考的程式語言是 SQL 和 Python / R,Python 和 R 通常會讓你自由選則一個你比較熟悉的來考就好。

  • SQL

面試進行方式通常是由面試官透過 coderpad 之類的 live coding platform 當場給幾個 dataset ,簡單講解一下這些 dataset 裡面有什麼資訊,接著給一個跟公司業務相關 business scenario ,並且告訴你想要從 data 中看到哪些 insights, 最後請你現場 coding 實現它。

題目基本上就是把 Leetcode database section 裡面 easy/medium 的題目用公司日常的 project 包裝一下,並不會故意考得非常刁鑽複雜,主要是各式各樣的 join, group by + aggregation function, sub query, row_number/rank/dense_rank, order by, case when, substr/concat, etc.

除了 code 寫得怎麼樣之外,面試官通常也很看重 coding 過程中面試者展現出的溝通能力 ,以及面試者在寫出 code 之後是否可以基於得到的結果給出一些 business insights。

  • Python

和 SQL 的面試方式很類似,通常也會透過 coderpad 來和面試官交流。我最常碰到的題目是用 Pandas 或 Numpy 做 data manipulation,基本上就是考那些要開始建模型或是做分析前處理 data 需要用到的指令,我覺得只要上面 SQL 的那些指令你可以用 Python 寫出來就沒問題了。

推薦學習資源:

  • SQL:Leetcode database easy/medium
  • Python:Udemy Python for Data Science and Machine Learning Bootcamp (Chapter 5, 6, 7)

3. Problem framing interview

這類面試大部分和 product 相關,我遇到的題目大致上可以分成下面這三種:

  • Diagnostic problem

面試官可能會先給你一些某個產品或服務的背景知識,並且詢問你:當你發現這個產品的其中一項 metric 下降了,你會怎麼一步一步分析並找出問題?找出問題之後你會怎麼跟其他組員合作解決問題?

面對這類題目常常可以從問各種 clarification question 開始下手,像是 define the drop metric, define the drop scale (one time occurrence vs a recurring issue), check if there’s any data collecting issue, segment by different features (geography/gender/age, etc.), etc. 再透過這些分析一步一步找出 metric 下降的原因,並且提出合理的 next step 。

  • AB Testing

AB testing 常常出現在 take home challenge 裡,通常會給你一些 data 讓你去比較 testing group 和 control group 裡的 user behavior 有什麼不同,並且請你整理 data 後做分析,最後統整分析結果並且給出具體的建議。

題目常常會故意設計得比較模糊,像是讓你自己設計 metric、自己選定 statistical & practical significance level、自己根據數據量決定要用哪一種 statistical test。AB testing 面試除了考察你對 experiment design 背後各種理論的熟悉程度之外,更重要的是要看你是否能夠在做完分析之後給出的具體的建議,並且把你之所以給出這個建議的邏輯解釋清楚。

  • Estimation

Estimation question 和管理顧問業喜歡考的 brainstorming 蠻像的,面試官可能會問你「你覺得整個美國有幾台白色的電冰箱?」這類天馬行空的問題,重點其實不是你估出來的數字是否正確,而是你一步一步的 approach 是否符合邏輯。

推薦學習資源:

4. Statistics interview

根據我的經驗,這類面試通常並不會考得太難,也不會要求你現場計算很複雜的數學,我覺得準備起來的困難點反而在於要把每一個小概念都徹底弄清楚。面試方式主要分成三種:

  • 統計概念題

這種題目比較偏向一問一答,而且通常都有正確答案,主要是用來確定你是否了解一些常用的統計概念。

常考的概念有: T test vs Z test, variance/ standard deviation, H0 vs H1, p value, significance level, confidence interval, Law of large number, disjoint/ complementary/ independent event, normal distribution (68–95–99.7% rule), standardization, binomial distribution, expect value, Central limit theroem, Law of large number, Confusion Matrix (precision, recall/ sensitivity, Specificity, Accuracy, Misclassification rate, F1 Score, Type 1/ Type 2 error), Bayes’ theorem, independent event, Tree diagram, etc.

  • 統計應用題

這種題目主要是為了考察你在了解統計概念之後是否知道該如何應用

Example 1 (Conditional Probability) : Pick a card from three cards with money $0, $0, and $10. If you are told that one of the two cards you did not pick is $0, would you like to switch yours and the remaining one? Why?

Example 2 (Expected Value):Two games: (1) roll a die and earn the square of the result, e.g., get $36 if the result is 6; (2) roll two dice and earn the multiplication of the two results, e.g., get 15 if the results are 3 and 5. Which game do you prefer?

Example 3 (Bayesian Equation):In the diagnostic of cancer, the prob of getting a + for a cancer patient is 90%, and the prob of getting a + for a healthy person is 1%. In addition, we know that 5% of the population are cancer patients. What is the probability that a person has cancer if the diagnostic result is +?

  • 統計溝通能力

這種題目主要是考你是否能用淺顯易懂的方式與 non-technical team member 解釋 p value, significance level, confidence level, hypothesis testing 這些常用的統計概念

推薦學習資源:Coursera Introduction to Probability and Data with R

5. Machine learning technical discussion

Analytics 方向的 machine learning 面試通常不會給 data 要求現場建一個模型,常見的面試形式反而比較像是一個 technical discussion,在一問一答之間了解你對於各個 algorithm 的熟悉程度以及過去使用這些 algorithm 的經驗是否足夠。

舉例來說,面試官可能會先問你有沒有用過 Random Forest 建模型?並且詳細地詢問你過去使用 Random Forest 建模型的經驗,像是 modeling 分成哪些步驟?用來做 modeling 的 data 多大?怎麼處理 missing data?怎麼處理 unbalanced data?

也有可能請你解釋一個 algorithm 的原理, 要一步一步講得非常清楚並且盡可能的白話 。以 K means clustering 為例,可能會要求你從 choose the number of clusters k, select k random points from the data as centroids, assign all the points to the closest cluster centroid, recompute the centroids of newly formed clusters 一路講解到 stopping criteria 和最後的 evaluation methods

或是直接考你一些 modeling 相關概念,例如 mean square error 是怎麼算出來的?L1 Regularization vs L2 Regularization 有什麼不同? bagging 和 boosting 概念上有什麼不同? bias & variance trade off/gradient decent/ PCA 的概念各是什麼?

又或是請你比較兩個 algorithm 有什麼不同,各自又有什麼優勢和劣勢,像是 linear regression vs logistic regression 或是 random forest vs decision tree

推薦學習資源:

  • Udemy Python for Data Science and Machine Learning Bootcamp
  • Kaggle — — 可以不用真的參加比賽,但在上面找有興趣的 dataset 用來增加自己使用不同 algorithm 的實戰經驗還不錯

小結

以上就是我在 2021 上半年的 DS 面試總結,DS 面試的考點實在非常多,剛開始準備的時候很容易手忙腳亂,覺得不知道要從何下手。希望我的分享可以給正在準備相關職位面試的人一些方向,如果有問題想詢問或是有其他關於面試的想法也歡迎留言討論!

接下來這個主題的文章還會繼續寫文章記錄我在職跳槽和轉換工作領域的心路歷程,如果對這類主題有興趣的話也歡迎訂閱我的 Medium :)

--

--

Christine WU

Data enthusiast in Fintech. I write career/tech/life related article.