從構建關係網到面試最後一問,這是一份AI公司應聘全面指南

機器之心發表於2018-05-28


從構建關係網到面試最後一問,這是一份AI公司應聘全面指南

過去 8 個月裡,我參加了谷歌 DeepMind、Wadhwani 人工智慧研究所、微軟、Ola、Fractal Analytics 等多家公司的面試,應聘資料科學家、軟體工程師和研究工程師等職位。在這個過程中,我不僅有機會與許多厲害的人物打交道,還能審視自己,瞭解面試官在面試過程中真正想要什麼。我相信,如果我以前有這方面的知識,就可以避免許多錯誤,並以更好的方式做好準備,這也是我撰寫此文的動機,希望本文能夠幫助別人找到理想的工作。

畢竟,如果人生(至少)三分之二的時間都在工作,那麼最好找一份值得的吧。

本文的靈感源於我和一個三年級學生的討論,他認為從事 AI 的人很難透過校園招聘找到滿意的工作機會。此外,我在為面試做準備的時候,發現人們使用了大量資源,但根據過去幾個月的經驗,我認為對於大多數 AI 從業人員,很多基本資源都是不必要的,文末列出了所需資源的最簡清單。本文首先介紹如何在面試中引起注意,然後我提供了一份可以申請的企業和初創公司名單,接著是如何在面試中取得成功。我根據個人經驗,增加了一個我們應該為何努力工作的部分。最後是準備工作所需的最少資源。

注意:對於那些在等校園招聘的人,我想補充兩點。首先,我要說的大部分內容(可能除了最後一點)都與你無關。但是,第二點是,正如我之前提到過的,校園招聘的工作機會大多是軟體工程崗,與人工智慧沒有交集。所以,這篇文章是專門為那些想利用人工智慧解決有趣問題的人寫的。此外,我還想補充一點,我並沒有透過所有面試,但我想這就是失敗的意義——它是最偉大的老師!本文提到的事情可能並非全都有用,但這些都是我的經驗,我不知道還有什麼辦法能讓它變得更有說服力。

1. 如何在面試中引起注意

老實說,這一步最重要。讓社會招聘變得如此艱難和疲憊的原因是如何讓招聘人員在收到的眾多申請中仔細檢視你的個人資料。與公司內部人員建立聯絡可以讓你很容易地獲得推薦,但一般而言,這一步可細分為三個關鍵步驟:

1)做好監管準備:即準備好領英檔案、Github 檔案、個人網站以及一份精心打造的簡歷等材料。首先,你的簡歷應該非常整潔和精煉。可以根據 Resume Revamp(https://career-resource-center.udacity.com/resume/resume-revamp)來規劃簡歷,它包含我想說的所有有關簡歷的內容,我自己也一直用它作為參考。至於簡歷模板,Overleaf 上提供的一些格式很不錯。我個人使用 deedy-resume(https://www.overleaf.com/),以下是預覽:

從構建關係網到面試最後一問,這是一份AI公司應聘全面指南

如上圖所示,一頁可以有很多內容。但是,如果你要寫的內容不止於此,那麼上述格式的直接效果不會太好。你可以在這裡找到多頁格式:https://latexresu.me/。下一個要點是你的 GitHub 資料。很多人僅僅因為它不像 LinkedIn 那樣具備「誰看過你的資料」選項,而低估了它的重要性。人們真的會看你的 GitHub,因為這是驗證你 CV 中提及專案的唯一方式,鑑於人們現在在自己的職業資料中新增了很多與各種流行詞相關的噪聲。尤其是對於資料科學來說,開源意味著把使用的很多工具、實現的不同演算法、各種學習資源都開放出來了。我在之前的文章裡(https://medium.com/@amandalmia18/the-world-of-open-source-8f516c674647)談過開源的益處和如何從頭開始建立自己的 GitHub。最低要求是:

  • 建立一個 GitHub 賬號;

  • 為自己做過的專案建立一個 repo;

  • 新增關於如何執行程式碼的清晰文件說明;

  • 為每個提及函式作用、引數意義、格式和指令碼的單個檔案新增說明文件。

第三步是大部分人缺少的,即在招聘網站上展示自己的經歷和個人專案。製作個人職業資料表示你非常嚴肅地考慮進入某領域,在真實性上加了很多分。此外,履歷(CV)通常會有空間限制,可能會缺失一些重要細節。你可以在個人職業資料中深入介紹這些細節,推薦對專案/思路進行某種形式的視覺化或其他展示。建立一份職業資料非常簡單,有很多免費平臺,透過拖放功能就可以實現這一過程。我個人使用 Weebly,這是個廣泛使用的工具。開頭有 reference 更好。有很多不錯的例子,不過我參考了 Deshraj Yadav 的個人網站,製作了我自己的(http://amandalmia.weebly.com/):

從構建關係網到面試最後一問,這是一份AI公司應聘全面指南

最後,很多招聘者和創業公司開始使用領英作為招聘平臺。領英上有大量好工作。除了招聘者之外,擔任有影響力職務的人在領英上也很活躍。因此,如果你可以吸引他們的注意力,你就有機會進入面試。此外,維護個人資料也是必要的,這樣人們更有意願與你聯絡。領英的一個重要部分是搜尋工具,如果你想被看到,那麼你的資料中必須有相關關鍵詞。我更改了很多次,進行了多次評估,才有了一份不錯的個人資料。你還應該請同事或領導為你的技能背書、寫推薦語。所有這些都會提高你被注意到的機率。領英和 Github 個人資料指南,可參考:https://career-resource-center.udacity.com/linkedin-github-profiles。

這看起來太多了,但是記住,你不必要一天內或者一週、一個月內完成。這是一個過程,一個不會結束的過程。起初設定好一切肯定需要你付出精力和時間,但是一旦完成,你就只需要定期更新條目就可以了,這種方法不僅容易,而且還可以隨時隨地談論自己,不用刻意準備,因為你對自己已經有了清晰的認知。

b)確保真實性:我見過很多人犯下這樣的錯誤,他們的個人資料出現在多個不同的職位之外。我認為,更好的做法是先確定自己真正感興趣、樂意做的事情,再尋找相關機會,而不是反過來。AI 人才供不應求的現狀給你提供了機會。花一些時間按上述做法定期更新資料能夠使你對自己有一個全面的認知,幫助你及早確定方向。此外,你無需對面試中可能被問的不同問題準備答案。大部分答案在你談論自己真正熱愛的事情時會自然而然地出現。

c)人際關係網:完成 a 和 b 之後,人際關係網將真正幫助你達到目的。如果你不和別人溝通,那麼你可能錯過很多好機會。每天聯絡新的人是很重要的,如果不能面見,那就在領英上溝通,這樣過些時候,你就擁有了強大的大型人際網路。

人際關係不是聯絡別人為你寫推薦信。我最初經常犯這個錯誤,直到讀了 Mark Meloon《Climbing the Relationship Ladder to Get a Data Science Job》一文(https://www.markmeloon.com/climbing-relationship-ladder-get-data-science-job/),他在這篇文章中談論了透過率先提供幫助來構建真實聯絡的重要性。構建人際關係過程中另一個重要的步驟是展示自己。比如,如果你擅長某事,在部落格中寫出來,然後在 Facebook 和 LinkedIn 上分享這篇部落格。這樣不僅能夠幫助到別人,還能幫助到自己。一旦你擁有了足夠強大的人際關係網,那麼你被人看到的機率將大大提升。你不會知道你關係網中的一個人是否喜歡、如何評價你的部落格,這或許可以幫助你接觸到更廣泛的受眾,包括尋找像你這樣具備某方面專業知識的人才。

2. 可以申請的企業及初創公司名單

我將按字母順序呈現該列表,避免帶來優先性方面的誤解。但是,我會在我個人推薦的那些公司上面加上「*」。本推薦列表基於以下因素:使命陳述、人員、人際互動、學習範圍。多於一個的「*」是完全基於第 2 和第 3 個因素而加的。

  • Adobe Research

  • *AllinCall(由印度理工學院孟買分校校友會建立)

  • *Amazon

  • Arya.ai

  • *Facebook AI Research: AI Residency Program 

  • *Fractal Analytics(以及 Cuddle.ai、**Qure.ai)

  • **谷歌(Brain/DeepMind/X):AI Residency Program 

  • 高盛

  • Haptik.ai

  • **HyperVerge——由印度理工學院馬德拉斯分校校友會建立,他們正在與世界各地的客戶合作,為現實問題開發人工智慧解決方案。創始人包括在該校創立著名計算機視覺小組的人。

  • IBM Research

  • *Intel AI labs(強化學習

  • **Jasmine.ai——由在密歇根大學獲得博士學位的印度理工學院馬德拉斯分校校友會創辦,他們致力於會話智慧研究。而且他們的資金很充足。他們正在尋找能儘快加入班加羅爾辦事處的人:https://docsend.com/view/xff9hwr。

  • 摩根大通

  • *Microsoft Research:

  • ——印度實驗室 1 到 2 年研究員職位(https://www.microsoft.com/en-us/research/lab/microsoft-research-india/#research-fellow-program_tab);

  • ——AI Residency Program(https://www.microsoft.com/en-us/research/academic-program/microsoft-ai-residency-program/)

  • MuSigma

  • Next Education

  • niki.ai

  • *Niramai——由之前在施樂研究公司的員工組成,致力於使用熱成像技術進行乳腺癌早期篩查。

  • Ola

  • *OpenAI

  • *PathAI

  • Predible Health

  • Qualcomm

  • *SalesForce

  • Samsung Research

  • *SigTuple

  • *Suki—為醫生設計的 AI 語音助手。近期,它籌集到大量資金,可能很快會在印度開設辦事處。

  • *Swayatt Robotics—開發適應印度交通條件的自動駕駛汽車。

  • **Wadhwani AI——由億萬富翁 Romesh Wadhwani 和 Sunil Wadhwani 資助,他們的目標是成為 AI 領域的第一個社會公益組織。

  • *Uber AI Labs & Advanced Technologies Group:AI Residency Program(https://eng.uber.com/uber-ai-residency/)

  • *Umbo CV——使用計算機視覺的安全性

  • Uncanny Vision

  • Zendrive

3. 如何贏得面試

從你走進房間的那一刻起,面試就已經開始了。從那一刻到進行自我介紹之前可能會發生很多事——你的肢體語言及微笑問候起著很大的作用,尤其是當你去一家初創公司面試時,他們非常關心這一點。你要知道,儘管對於你來說面試官是陌生人,但對於他/她來說你也是陌生人。所以他們可能和你一樣緊張。

把面試看作是你和麵試官之間的對話,這點非常重要。你們倆都在尋找對雙方都有利的結果(mutual fit)——你在尋找一個優秀的工作場所,而面試官在尋找一個優秀的共事者(比如你)。所以,確保你對自己感覺良好,同時保證對話的開場令人愉悅。要做到這一點,最簡單的方法就是微笑。

面試主要有兩種型別——一種是面試官帶著準備好的問題來面試,不管你的個人資料如何,他/她都會問你這些問題;另一種面試基於你的簡歷。我從第二種面試開始解釋。

第二種面試的開場白通常是「可以簡單介紹下自己嗎?」。關於這個問題的回答有兩個大忌——談論你在大學的 GPA 或詳細介紹自己的專案。理想的回答應該控制在一兩分鐘左右,簡要說明你做過些什麼,內容並不侷限於學術。可以談談你的愛好,比如讀書、運動、冥想等,也就是談論任何有助於定義你的東西。然後面試官會把你在自我介紹裡談到的一些東西作為他下一個問題的引子,開啟面試的技術部分。這種面試的目的是為了檢驗你寫在簡歷上的內容是否真實:

任何一個真正解決了某個問題的人都能夠從多個層面來回答它。他們能夠進入黃銅軌道,不然就會卡住——Elon Musk

這個過程中會出現很多問題,比如可以採取什麼不同的做法,是否可以用「X」代替「Y」,會發生什麼情況等。此時,瞭解在實現過程中通常做出的權衡很重要,例如,如果面試官說使用更復雜的模型會取得更好的結果,那麼你可以說實際上需要處理的資料較少,這會導致過擬合。在一次面試中,面試官給了我一個案例研究,涉及為一個真實用例設計演算法。我注意到,面試官非常喜歡我以下面的流程來展開討論:

問題 > 1 至 2 個之前的解決方案 > 我的解決方案 > 結果 > 直覺

另一種面試其實只是為了測試你的基本知識。不要擔心問題太難。但它們肯定會涉及你應該掌握的所有基本知識,主要基於線性代數、機率、統計、最佳化、機器學習和/或深度學習。「你需要準備的背景知識」一節中提到的資源應該夠用了,但請確保不要遺漏其中的任何一點。這裡的關鍵是你回答這些問題所花的時間。因為它們涵蓋了基礎知識,所以面試官希望你最好能夠立即作答。所以,請做好相應的準備。

在整個過程中,對你知道和不知道的事保持自信和誠實是很重要的一點。如果某個問題你確定不知道,直接說不知道,而不是發出「啊」、「嗯」的聲音。如果某個概念真的很重要,但你覺得很難回答,面試官通常會很樂意給你提示或指導你找到正確的解決方案(這取決於你在面試開始階段表現如何)。正確理解面試官的提示並據此找到合適的解決方案是一個很大的加分項。儘量不要緊張,避免緊張的最佳方法就是微笑。

現在我們來到面試結尾,即面試者問你是否有什麼問題。人們很容易認為面試結束了,並回答沒有問題要問。我知道很多人被拒絕,就是因為這最後一個問題。如前所述,被面試者不只你自己。你也在探索你與這家公司雙方是否都適合。因此很明顯,如果你真的想加入一家公司,你肯定對公司文化或他們對你的期望角色等有疑問,甚至只是簡單地對面試者感到好奇。你總是能從身邊的事物中學習到東西,你要確保給面試者留下你對他們團隊真的感興趣的印象。我對面試者提出的問題是他們對我的反饋。這給了我很大幫助,我仍然記得每一個反饋,並真的融入到日常生活中。

以上。基於我的經驗,如果你坦誠、具備相應能力、真正關心面試的公司,並具備合適的思維模式,那麼你應該適合所有要求,很快拿到 offer。?

4. 我們應該為什麼而努力工作

我們處於一個充滿機會的時代,可以做自己喜歡的事情。你只需要努力成為該領域最優秀的人,就會找到一種實現它的方法。正如 Gary Vaynerchuk 所說:

從構建關係網到面試最後一問,這是一份AI公司應聘全面指南

對 AI 研究來說,這是一個偉大的時代。如果你真的對此充滿激情,那麼你可以做的事情有很多很多。你可以賦予那些被忽略的人力量。我們一直抱怨身邊的問題,而從來沒有一個時代像現在這樣普通人也可以做為此做些什麼,而不是僅僅抱怨。Jeffrey Hammerbacher 有一句名言:

我們這一代最傑出的頭腦都在拼命思考如何吸引人點選廣告。

利用 AI 能做的事情遠超我們的想象。有很多非常棘手的問題,需要像你這樣極其聰明的人來解決。你可以讓很多人的生活變得更美好。是時候放棄「酷」的事情,或「看起來不錯」的事情了,認真思考,做出明智的選擇。

5. 你需要準備的背景知識

所有資料科學麵試中會出現的問題基本上都包含在四個大類中:電腦科學、數學、統計學和機器學習

電腦科學

    1 演算法和資料結構:

    InterviewBit:https://www.interviewbit.com/

    NPTEL IIT Delhi 的課程 https://www.youtube.com/playlist?list=PLBF3763AF2E1C572F

    2 作業系統:

    https://medium.com/the-aspiring-programmer-journal/the-10-operating-system-concepts-software-developers-need-to-remember-480d0734d710

    《Operating System Concepts》的三、四五、七章 http://203.187.160.133:9011/materias.fi.uba.ar/c3pr90ntc0td/7508/OSC9/Abraham%20Silberschatz-Operating%20System%20Concepts%20%289th,2012.12%29.pdf

    GeekForGeeks 上的作業系統:https://www.geeksforgeeks.org/operating-systems/

    3 物件導向程式設計:你會被問及如何設計一個系統,例如一個鐵路售票系統。此時你需要和麵試者討論他們的需求,需要建立多少個類,每個類包含哪些變數與方法,如何使用繼承(如 Engineer 和 Scientist 類都是 Employee 類派生的)等等。這些知識來源於實踐。你可以在這裡找到一些基本術語的解釋:https://medium.com/dot-net-tutorial/oops-interview-questions-with-answers-for-freshers-b2a568ed364b (https://medium.com/dot-net-tutorial/oops-interview-questions-with-answers-for-freshers-b2a568ed364b%E3%80%82)

數學和統計

如果你不瞭解深度學習背後的數學知識,你要找一些學習資源。

參考內容:

當然,Ian Goodfellow 等人的《深度學習》中第二、三和四章的數學已經足以應對面試中這類理論問題了。如果你沒有時間,我也對其中的一些章節概念進行了總結:https://github.com/dalmia/Deep-Learning-Book-Chapter-Summaries

如果你已經學習了有關機率的課程,數學問題應該不在話下了。有關統計學的問題可以參考:https://www.quora.com/How-should-I-prepare-for-statistics-questions-for-a-data-science-interview-What-topics-should-I-brush-up-on/answer/Dima-Korolev?share=ac534713&srid=oEqx

機器學習

在這裡,問題的種類完全取決於你面試的崗位。如果你遇到了傳統型的機器學習面試。那麼有關機器學習的基礎知識就必不可少,下面的一些課程可能對你有所幫助:

吳恩達的 CS229 課程 http://cs229.stanford.edu/

加州理工教授 Yaser Abu-Mostafa 的機器學習課程:https://work.caltech.edu/telecourse.html

重要的話題包括:監督學習(分類、迴歸、支援向量機、決策樹、隨機森林邏輯迴歸、多層感知機、引數估計、貝葉斯決策規則),無監督學習(K-means 聚類、高斯混合模型),降維(PCA)。

如果你申請的職位更加高階,那很可能會被問到有關深度學習的問題。在這種情況下,你需要非常瞭解卷積神經網路(CNN)和迴圈神經網路(RNN)及其變體。想要明白這些,你需要對深度學習的基礎知識有所瞭解,CNN/RNN 是如何工作的,目前存在哪些架構,以及這些架構改進背後的動機都是什麼。在這一方面,我們沒有捷徑——必須花時間瞭解它們。對於 CNN,我推薦史丹佛大學的 CS231N 課程,RNN 推薦 CS224N 課程。

Hugo Larochelle 的神經網路課程也很有意思,適合快速上手:https://www.youtube.com/watch?v=SGZ6BttHMPw&list=PL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH

Udacity 也有於此相關課程:https://blog.udacity.com/2016/05/prepare-machine-learning-interview.html (https://blog.udacity.com/2016/05/prepare-machine-learning-interview.html%E3%80%82)

結論

走出校門後,你的職業生涯將是一個自我實現的漫長過程。希望這篇文章能給你帶來一些啟發,並幫助你以更好的方式為下一次資料科學麵試做好準備。從構建關係網到面試最後一問,這是一份AI公司應聘全面指南

原文連結:https://medium.com/@amandalmia18/https-medium-com-amandalmia18-what-i-learned-from-interviewing-at-multiple-ai-companies-and-start-ups-a9620415e4cc

相關文章