記錄一下 2019 年面試新加坡 QuantumBlack (麥肯錫) data scientist 的經驗。
QuantumBlack (以下簡稱 QB) 可能沒什麼人聽過,不過他在 2015 年的時候賣給了麥肯錫,名氣 +100。根據 recruiter 的說法,QB 的員工就是麥肯錫員工,在新加坡是同一間辦公室。他的 data scientist 跟一般軟體公司的 data scientist 不太一樣,是資料科學專長的顧問,要幫客戶做專案的。
只要到 Youtube 搜尋「mckinsey interview」就能找到一堆 personal experience interview (PEI) 跟 case interview 的範例,麥肯錫的官網上面也有提供面試範例,不過都是給一般顧問的範例,找不到 data scientist 的資源。所以我就在這邊獻醜了。
Day 0:Linkedin 上收到 recruiter 訊息
Recruiter 貼了公司介紹給我,問我對 QB 的 data scientist 有沒有興趣,我說有,請他給我 JD。隔兩天他回覆我:Hi xxxx(不是我的名字),給我 data engineer 的 JD,問我隔天晚上六點半到八點半有沒有空。這是搞錯人的意思嗎?後來我跟他說有空但他就這樣消失不見了!再也沒有回過我。後來在 Glassdoor 上面也看到有人遇到一樣的事情,很誇張!而且這是麥肯錫!這種 recruiter 已經不適任了吧。
Day 7:Linkedin 收到另一位 recruiter 訊息
一開始也是介紹公司,然後問我對 data scientist 有沒有興趣。因為是麥肯錫所以我給了他第二次機會,這位 recruiter 就正常多了。同意進行下去後會收到 Hackerrank 的線上測驗,兩小時三題,七天內要完成。第一題是很簡單的 DP,大概 Leetcode easy 難度。第二題是 Pandas DataFrame 的操作,有點複雜,會用到一些平常不太會用的 function,我一邊查文件一邊寫完,花了 45 分鐘。第三題是給一個 dataset ,訓練一個模型然後回傳預測值。這題基本上亂做也會有一個準確率,認真做也是一個準確率,我也不知道通過標準是什麼。
Day 15:線上測驗回覆
交出去以後,如果有通過的話 recruiter 就會來跟你約時間,他來跟我說恭喜我通過了線上測驗,之後不會有這種考試了。我心想那就是接下來都是我不擅長的考試了吧。除了約時間也讓我問一些問題,QB 跟麥肯錫廣義上來說是同一個公司,QB 的員工對麥肯錫來說也是正職員工,兩邊接進來的專案都會做到。這是一個經常需要出差的職位,新加坡辦公室負責麥肯錫在東南亞的客戶。接下來的面試讓我選在麥肯錫台北辦公室面試或是線上視訊面試,當然要去麥肯錫辦公室參觀一下。查了一下,地點竟然在 101 裡面,真 D 潮。
Day 21:面試
面試地點在台北 101 的 47 樓,需要在一樓透過對講機要門禁卡,我猶豫了一下該講中文還是英文,最後還是用中文。我說我是來面試的,對方也沒問我的名字就發門禁卡給我了,都不怕有人記錯面試日期跑過來嗎,還是大家都選視訊面試。
面試官有兩位,他們從畫面上出現我就傻眼,在軟體公司待太久,忘記今天是管顧面試,我面的職缺還是顧問。我隨便穿了一件 T shirt 就來了,對面兩位都是西裝,沒有打領帶。不過他們也沒有針對我的穿著做什麼評論就是了。
一位是 senior data scientist,另一位也有介紹,但我英聽太差,實在聽不出來是在介紹什麼。不過他從頭到尾沒有發問,面到一半就跑出去開會,所以什麼都沒聽懂好像沒也關係。第一題算是 PEI,請我介紹履歷上我做過的 ML 專案,用了哪些 featur、 model 之類的,不過他們也不是很感興趣,三分鐘就結束了。重點應該跟一般顧問面試一樣,這個專案你完成了什麼,有什麼 impact,照著 STAR 講應該就可以中規中矩地答完。答題重點就是講一個故事,用這個故事說明你做了什麼厲害的事情。
接下來是案例面試,是面試官進麥肯錫做的第一個專案。網路上可以找到很多麥肯錫的 case interview 範例,但是我完全找不到 data scientist 的範例,所以也無從準備。不過還好問題就是一般機器學習職缺會問的,給一個問題,要你用機器學習來解決。問得十分詳盡,幾乎所有機器學習實務上應該要考量到的面向都問了。
- 用什麼 metric
- 有什麼 feature 可以用
- 各種型態的資料要怎麼轉成固定長度的向量餵給模型
- feature importance
- 缺值在不同情況下要如何處理
- Test performance 不好的話會怎麼處理
- 使用線性模型的注意事項:缺值、feature 數值大小、模型的假設
- Random forest 跟 GBDT 的原理及差別,要調什麼參數
- 如何 offline 驗證 model 的成效
- 如何做 clustering
- 一組隨機的資料,如何知道是不是服從 Gaussian
問問題時間我問了工作內容,是幫客戶導入機器學習的解決方案或是做資料分析,時間可能幾週到幾個月不等,需要幫客戶寫程式。哇!這樣案子做完交接過去以後,如果客戶方沒有懂機器學習的人,過半年一年以後想要升級或是改版,不就只能再跟麥肯錫課下一單。
本來猜想會有的一些行為問題都沒問,比如說遇過最大的挫折做過最有野心的事情是什麼諸如此類。當天 recruiter 寄 email 說最晚隔天會告訴我結果給我回饋,結果到現在都沒收到,那我就當作是拒絕了。
結論
面試很硬,問題不難,但會問到很細節的數學,卡住的時候會給提示,很多地方都說這沒有標準答案幫我建立信心。大部分的問題都是一般機器學習職缺會問的,其實也不用特別準備奇怪的東西。特別在意模型的解釋性,要熟悉各種模型如何解釋預測的結果,這可以很容易理解。他們的客戶很可能不太懂機器學習,所以跟客戶解釋模型如何運作也很重要,畢竟解釋模型也是他們工作的一部分,但不是每個 ML engineer 都要注意這件事。