作為一個過來人,分享一點我的經驗。
先介紹一下自己,本人是國內讀的數學本科,北美top統計系碩士畢業,之后在FLAG之一的總部核心部門做數據科學家。期間面試過20-30名candidate。
想要找到稱心的工作,需要知己知彼,了解公司對候選人的需求。
數據挖掘類的工作近期無論是在國內還是北美,都非常炙手可熱,對于候選人的要求也相應地水漲船高。以我司為例,基本只招統計博士,不過非常優秀的統計碩士或不相關專業的博士也有少部分,本科生不招,對碩士的要求已經越來越高。從公司的角度來說,工作內容其實并不需要掌握這么多統計或機器學習的知識點,往往是在一個比較小的分支進行深入鉆研(例如廣告組的數據科學家可能需要優化CTR預測模型的一小部分,但是需要對這一部分非常了解)。我了解的一些(包括其他公司)組的工作內容甚至不需要進行太多數學建模或編程,以data insight為主,用到最多的是Hive/SQL。之所以公司的簡歷和面試越來越嚴格,有很大一部分原因是供過于求。大量專業的畢業生都對數據挖掘類的工作非常感興趣,而實際上數據挖掘相對比較容易上手,所以求職者的數量遠遠大于公司的opening。
當然,作為一名job seeker,既然現實就是越來越嚴格的簡歷篩選和越來越難的面試,那么能做的就是想辦法讓自己能夠從眾多求職者中脫穎而出,盡可能地提升自己綜合實力。一是要讓自己的簡歷能夠stand out, 二是面試中的表現。
關于簡歷
關于簡歷,最重要的一點就是在一頁紙上展現你能為這個公司這個職位做貢獻的最突出的technical skills。數據科學家的簡歷屬于technical resume,與普通的簡歷不同,要更突出自己的technical skills。大家可以多和有工作經驗的數據科學教聊一聊,這樣能更快地了解到業界所需和自己的不足,也能將自己的簡歷潤色得更加貼近業界要求。
面試策略
很多面試者在onsite面試中的每輪都沒有太大的不足,該回答的問題都答了出來,卻沒有如期拿到offer。這樣的面試者不為少數,也正因此無法impress面試官。例如我自己當時面試的時候,自認為有兩輪都答得很一般,甚至有一些失誤,但是在某一輪中,我有一道問題的反應極快,很明顯感覺到面試官被impress了。當然,這樣的機會可遇不可求,可以做的就是提高自己的實力,hope for the best。
Behavior question
Behavior question一般比較隨機,最常見也是最重要的behavior questions就是你的簡歷。比如,我見到過有些candidate在前一兩年full time工作的時候頻繁跳槽,有的做了幾個月就跳下一家,如果在簡歷上看到這樣的經歷,我也會順便問一下為什么,因為我的concern是你會不會來我這里做了幾個月也跑了,如果有類似經歷記得準備好如何回答。
除了簡歷,談論薪資(what’s your expected salary)也常常是behavior questions被問頻率很高的問題。
避免常見誤區
很多公司的評分體系要求對于候選人進行全方位的評估,例如對于統計水平、編程水平、口頭交流能力、業界經驗都需要給出評價。因此要注意避免以下誤區:只注重理論水平,不進行實際編程和項目;只注重技術,不與人打交道;只知道書本上的內容,不去了解業界的情況。相信如果已經面試過幾家公司,你會發現在你介紹自己的課程作業和項目,甚至是Kaggle項目的時候,面試官都會告訴你,我們公司里面真的做的時候,數據量遠大于這些項目,而且會有很多Kaggle項目和課程作業中沒有的data problem,例如大量數據缺失、特征如何選擇,甚至很多時候需要自己寫程序提取新的特征。當然作為畢業生,面試官不可能要求你有太多這方面的經驗,但是跟有工作經驗的學長學姐了解一下,會提高你對業界問題的理解,是個huge plus。
另一個有效的了解業界項目的方法是尋找相關的實習機會。即使是只有兩個月的相關實習,都會對面試乃至將來的工作非常有幫助。如果能找到一份相關的實習,除了對于簡歷有幫助,還能在面試中讓面試官跟你有的可聊,并且可以讓你的表現更上一層樓。我有的時候會遇到題目出得不太難或候選人較強,候選人提前做完了所有的題目。當然這是一個好的跡象,表明這輪面試比較順利,但是此時面試官總得找點話題防止尬聊,比如我會選擇深挖候選人的實習經歷或者即興問一些工作中會遇到的問題看看候選人的反應。有一些候選人的technical skill非常強,但是說不清楚實習經歷甚至是讓我感覺簡歷造假,這樣就非常尷尬了。如果對于我的即興問題對方支支吾吾,給我的感覺就是這位候選人是背答案型選手,并不一定真的理解數據挖掘或者有實際數據挖掘經驗。大家都是過來人,知道候選人都刷題,我作為候選人面試別的公司的時候一位面試官對我印象不錯,跟我說你應該能進,刷題刷得很好。不是說不要刷題,而是說不能只會刷題,也需要溝通和業務理解。當然還有一些personality方面的因素,例如是否自信、是否對數據挖掘領域有熱情等等,經驗豐富的面試官對于這些都能感覺得出來,也很難偽裝。
面試的時候遇到做過的題怎么辦?我們建議如果是一看就很有名的題不妨大方承認自己見到過,例如見到two sum,然后假裝冥思苦想就沒意思了,反而讓人覺得不夠誠實。如果面試官聽到你見過,可能有兩種反應,一種是那我們換一道,另一種就是沒關系,告訴我你怎么想。如果是第一種,固然承擔了遇到不會做的難題的風險,但是至少能讓面試官覺得你很誠實,是個好印象。如果是第二種,那么就是你表現的機會了,即使是做過的題目,能夠很快地寫出bug free code并且給出清晰的解釋,就是很優秀的表現了。還有一種情況就是這道題不算特別常見,例如leetcode上周周賽剛好做到,那么就沒必要承認了,不然如果你leetcode刷完了跑去面試每道題都說見過,那面試官心里就一萬匹神獸在奔騰了。這時候需要演一下自己沒見過,但是不能演過頭。例如你不能苦思冥想10分鐘什么話都不說,然后突然“真相只有一個”開始在白板上寫。你需要和面試官交流,首先給出很快能想到的brute force解法,但是不需要寫代碼,然后逐步改進,遇到比較難的坎可以讓面試官給點提示。
面試千萬不要悶頭想問題,要和面試官進行交流。真的卡住的時候可以要提示,因為有提示下做出來好于做不出來。一般比較nice的面試官都是會給提示的。遇到完全不懂的領域,可以大方承認不太了解。我在面試的時候遇到過問我網絡協議的,我就表示完全不懂這些,不過計劃下學期選個課之類的,對方就換了一道題,最后也拿到了不錯的offer。很多面試官的理念不是用面試來卡你,而是用面試來了解你,因此要揚長避短。
我們分為機器學習、統計、優化、編程、業界經驗、自我介紹五個部分介紹面試的準備工作。
機器學習
Coursera上Andrew Ng開的machine learning是最經典的機器學習入門,另外建議把斯坦福的CS229包括作業都做一下。這門課的編程是MatLab,但是在實現過程中需要想清楚機器學習算法的數學部分,因此是個很好的訓練。斯坦福CS229的好處是非常系統化,如果能夠理解這里面的全部內容不但對機器學習有個大概認識,對其中每一個小部分都能比較solid,面試中不會出現類似于”Logistic Regression我大概知道思路,但是不知道具體的損失函數是什么,梯度怎么推導”的情況。此外,建議進行一定的編程練習,最好熟練掌握Python的sklearn用法。
統計
需要回顧一下參數估計/點估計、置信區間、假設檢驗的知識點。對于沒有系統性上過統計課的同學會比較challenging。建議找一本統計的教科書看一下。重點在于t檢驗、卡方檢驗等。
有些公司面試會問一些概率論的問題,可以在網上收集一些面試題,推薦Introduction to Quantitative Finance這本書。
優化
可能會有人推薦斯坦福大學的凸優化課程。個人認為是overkill了,這門課內容較為全面,遠超過了面試和工作需要了解的。一般來說,對于梯度下降的各種變體之間的tradeoff有所了解即可,最好熟悉一下牛頓迭代,簡單了解擬牛頓法(如L-BFGS等)的原理和motivation。
編程
數據挖掘類工作的coding要求不同于software engineer類工作。Leetcode上的前150題足矣。建議從easy刷起,medium都要會,hard可以不刷或者直接看思路不寫代碼。語言的話用Python即可。另外SQL需要掌握,一般準備兩三天就足夠了。如果你熟悉R的話,那么Python可選,建議熟悉一下業界常用的dplyr庫中的select, aggregate等操作。
業界經驗
如果有實習經驗,那么就應該已經對業界的實踐有所了解。否則的話,可以多與身邊已經工作的小伙伴進行不透露公司機密的交流。
當然,不需要了解業界的所有部分,但是需要知道大廠的數據都是遠遠大于平時的作業和項目的。如果掌握Hadoop、Spark、Hive等會比較好,也是簡歷上的plus。對于A/B test要有基本的理解。
另外,做一些Kaggle上的項目有諸多好處:首先能為你的簡歷添加一些內容;Kaggle競賽往往需要對數據進行很多exploratory data analysis,并且深挖數據,是非常實用的技能;增加不少寫代碼的經驗和對建模流程的了解;為了獲得較高的ranking, 需要進行大量的調參和error analysis;討論區有很多大牛分享的方法和代碼可供學習;面試的時候多一個談資。
自我介紹
一般面試都會以Tell me about yourself或者Can you walk me through your resume開始,面試官希望你在半分鐘到一分鐘之內簡短地突出自己的優點,也就是我們所說的Elevator pitches。一般的模板是我是誰-》我以前做過什么-》我有什么值得一提的成就和technical skills-》我為什么感興趣這個職位以及為什么我能勝任這個職位。每個人都是獨特的,要根據自身情況量身打造屬于自己的自我介紹才能吸引面試官眼球。
-
算法工程師
+關注
關注
2文章
30瀏覽量
6093
發布評論請先 登錄
相關推薦
評論