{eval=Array;=+count(Array);}
說實話,這個很難去判斷,大部分的面試官其實都是事先準備好了一些面試的題目和答案,而且面試的問題也基本是由淺入深,最終會深到什么程度,主要還是看面試官當時對面試者的感覺,如果他覺得沒有必要繼續了,也就不會去問一些過于深入的問題了。
所以,單單想從面試時候的寥寥幾句就判斷一個人的水平難度很大。
如果實在想知道一些,那么可以在自己提問的環節,對公司的團隊配置,現在的項目情況進行了解,然后判斷整體的水平,然后在詢問面試官是不是團隊的負責人,從而側面的了解一下。
首先,面試官的個人能力并不會影響未來你在公司的發展,因為面試官可能是項目負責人、可能是技術負責人,也可能是未來平級的同事,他的個人技術水平并不能夠代表這個公司的技術水平,也不會妨礙你的學習和發展。
所以,預期關心面試官的能力,還不如多關心一下公司的項目情況,發展前景和近期遠期的團隊規劃,這更能夠讓你對自己未來的定位做出判斷。
如果你覺得這個面試你鐵定沒戲了,那么你可以問問面試官他所提出的問題都應該怎么解答,甚至可以問問你今天面試中哪些地方不盡如人意。但是,如果你覺得還行,就打住你要反問問題的念頭,因為這樣會顯得自己是個刺頭,甚至讓人感覺有點咄咄逼人。讓面試者本來可能比較好的感覺變差。
所以,面試者就老老實實的面試,別讓自己從一個面試者變成了面試官。
這個問題有點難,主要還是憑感覺吧!
首先,面試官一般會問你一些你面試的崗位相關的問題,根據你的回答,然后進一步加深的問你,看你這一塊內容具體掌握的怎么樣。比如最基礎的logistic回歸器,首先你要知道這個東西到底是什么吧,然后你要清楚它的具體用法以及使用場景吧,然后你要知道這個玩意是怎么來的吧。最后就是一些拓展問題。
當然,針對你的問題,你想知道面試官的水平,那么你回答了他一個問題后,緊接著不讓讓他給你提問的機會,你就這一話題繼續拓展到其他的話題上,然后你說,看看面試官的反應,你可以故意的說錯一個小知識點,然后你反問面試官,我這樣理解的你看有沒有什么問題。
根據面試官的作答,一般能夠感覺到面試官的水平,能夠作為機器學習的面試官,那么他的知識面還是相對來說比較廣的,你說的基本上他都知道,只是看看他具體掌握的怎么樣。
作為一個合格的面試官,如果你問的問題他知道,那么他是很樂意給你解答的,如果他不清楚,那么也會告知你這一塊他不熟悉,如果他不懂裝懂,這個時候你有兩個打算,一是詢問他在項目組的職位,而是選擇終止面試。
其實面試是一種雙向選擇,技術知識學無止境,看你想進入這家公司具體的目標是什么?提升自己的專業水準還是薪資待遇。
每個人都是不同的個體,最好不要以自己的能力去衡量一個面試官的能力。哪怕你真的比他強。
這個問題應該反過來問才對。
在過去的一年里,我采訪了一些在Expedia Group擔任數據科學職位的人,職位從入門級到高級的都有。我想分享我的經驗,這些經驗適用于對申請數據科學職位的人。在這篇文章里,我還會給出關于你可能在面試中會遇到的問題的一些提示。
面試候選人幫助我認識了一些有廣泛背景和技能的人。從CS / ECE,統計/數學到土木/機械工程,這些領域的人我都接觸過。所幸我有機會能在這里與這些出色的人交談。
在我講更多細節之前,我想提一下,近年來,業界把“數據科學家”也叫做“機器學習科學家”或“應用科學家”。雖然在一些公司中這些職位有著略有著不同的任務或者需要具備不同的技能,但對于大多數公司來說,這三個職位或多或少都指的是同一個東西。所以在這篇文章中,我提到的“數據科學”,跟上面的“機器學習”“應用科學”是一樣的。
雖然每個人都有一套自己解決問題的技能,但是大多數公司都會要求數據科學候選人具備一些特定的基本技能。我將這些基本技能大概分為以下幾類,然后再討論這些技能具體是什么。根據公司和職位級別的不同,你可能會被問到以下提到的一個或多個相關問題:
1、關于你的簡歷和之前工作相關的問題
2、通用機器學習(和深度學習)知識
3、通用統計和數學知識
4、編程和軟件工程技能
5、統計建模技巧
6、計算機視覺(CV),自然語言處理(NLP)和定價策略(Pricing Topics)
7、面試中溝通和表達能力
8、行為問題
9、系統設計技巧(取決于職位級別)
10、管理和領導技能(取決于職位級別)
你的簡歷在你面試時會被問到的那類問題中起著至關重要的作用。因此,請確保你對自己在簡歷中提到的任何內容有足夠的了解,內容包括從課程和研究項目到編程語言。如果被問到諸如“介紹一下你自己”,或者“介紹一下你現公司的工作” 的一般性問題是很常見的,不僅如此,你還會被問到關于你簡歷的問題。
例如,如果你在簡歷中提到幾個以前的與NLP相關的項目,那么你應該對NLP有一個很好的理解,并且你很可能會在NLP上被問到一些技術問題,來評估你的技術含量。因此,如果你在一個項目上跟別人做了一些合作的東西,但對這項工作的貢獻很小,我建議你讓自己更熟悉該項目的技術方面。
或者,如果你提到Python或Scala作為你最喜歡的編程語言,請確保你足夠了解這些語言(至少在數據科學職位所需的范圍內),以及每個語言中的一些機器學習相關庫。我看過很多候選人在他們的簡歷中提到了Scala / Python,但當我問他們關于這些語言的一個簡單問題時,他們根本不知道它,這會給我一個負面信號。如果你使用這些語言的經歷非常有限,那么最好是誠實地告訴面試官,并且我相信大多數面試官都不會因為在你沒有豐富經驗的事情上對你進行評判。
雖然不同公司的數據科學工作可能涉及廣泛的問題和技能(包括數據提取和預處理,運行SQL查詢,簡單數據分析,深度學習,NLP和CV),但機器學習是一個基礎,現在大多數頂級公司都希望這些“數據科學候選人”懂得這一概念。因此,如果你正在申請數據科學職位,請確保你對以下機器學習概念有充分的了解。諸如“統計學習要素”[1]和“模式識別與機器學習”[2]等書籍對這些主題非常有用。
上面列出的問題涵蓋了一些與數據科學職位相關的高級機器學習概念,但你可能會被問到有關上述某些主題的更詳細問題,例如你可能會被問到:
今天的許多數據科學家曾經是統計學家和分析人員,許多機器學習的模型就是(重新包裝為)統計學習模型(如線性回歸,嶺回歸,LASSO,邏輯回歸)。因此,許多面試官喜歡在統計學或數學方面提出一些問題也就不足為奇了。
對于統計學和概率學,如果你熟悉以下概念,那將是很好的:
對于數學問題,你可能會被問到以下問題:
任何數據科學家都需要會編程。在創業公司(員工人數較少)中,數據科學家可能需要自己做很多軟件工程,例如數據提取和清理以及模型部署。相比之下,在大公司中,還有其他人負責數據工程和模型部署,數據科學家主要負責培訓和測試特定產品的模型。作為數據科學家,你還需要了解數據工程角色所需的一些術語和任務,例如ETL(提取,轉換,加載)。在這里,我將介紹數據科學家使用的一些最廣泛使用的編程語言,庫和軟件。
Gayle Laakmann McDowell [3]的“Cracking the Coding Interview”等書籍讓你在解決軟件工程和算法問題上做好準備非常有幫助。這里還有幾個很棒的網站,它們有一個很好的軟件工程問題數據庫,比如leetcode,hackerrank和geeksforgeeks。
4.1 編程語言
在編程語言方面,Python,Scala,SQL和R似乎是人們使用的最流行的語言,但我也看到人們使用其他語言,如Java,C ++和Matlab(盡管它不是一種編程語言))。
4.2 有用的Python庫
在這里,我將提到一些與數據科學職位最相關的Python包:
4.3 云服務
根據你要處理的數據規模,你可能需要在云服務上運行代碼,例如AWS,Azure或Google Cloud。因此,擁有在云環境中運行代碼的經驗可能是一個加分項。你絕對不需要了解所有不同的云服務,但熟悉AWS中的EC2等計算服務可能是一個優勢。
有些公司也可能在AWS或Azure之上使用其他大數據服務,例如Databricks和Qubole,但我認為不需要事先體驗它們,因為這些很容易學習。
4.4 部署工具
在為任務訓練模型(例如推薦系統或適度模型)之后,理想情況下,你希望在實際生產中使用它。因此,某人(可能是你,或你正在使用的工程團隊)需要將你的模型部署到生產環境中。為此,熟悉Docker和Python中的Flask可能會有所幫助。如果你想在AWS等云服務上部署模型,那么熟悉Sagemaker可能會有所幫助。我個人并不認為熟悉部署工具對于入門級數據科學職位是必要的。
作為數據科學家,你需要為各種產品/問題構建數學和ML模型,因此在面試過程中可能會遇到一些建模問題。這些問題通常與公司的域名有關。目標是看看你是否可以將你在概念上理解的內容應用于特定問題。你可能會遇到的一些示例問題可能是:
根據你的答案,你可能還會被問到一些跟進問題,包括你需要的數據類型,評估模型的方式以及如何隨著時間的推移改進模型。如果你想查看更多問題,https://http://medium.com/acing-ai/acing-ai-interviews/等網站非常有用。
在面試過程中,重要的是你的思維過程以及你能想到為產品構建ML模型的各個方面的能力。你絕對不需要給出最好或最完美的答案; 只要你對問題的高層次理解是合理的,你就是很棒的。
根據你申請的團隊的重點產品,你可能還會被問到有關CV,NLP或產品定價的一些問題。因此,在面試之前,請確保對你申請的團隊進行一些研究,以便更好地了解他們的重點。面試官可能會問你關于NLP或視覺中非常高級的概念,一些其他面試官可能會提出更具挑戰性的問題。
以下是你可能獲得的一些與 NLP 相關的問題:
以下是你可能會被問到的一些計算機視覺相關問題:
數據科學職位通常涉及大量的溝通和演示。這可以用于與產品經理討論新項目,或向你的團隊展示你的模型。因此,能夠與其他人(技術人員和非技術人員)交流關于你的工作和想法是非常重要的。
有時你可能需要以非常技術性的方式向同事或經理傳達你的新發現,有時你可能需要說服產品經理你的模型對他們有用,不用描述太多的技術細節。
面試官通常不需要問你一個具體的問題來評估你的溝通和表達能力,他們可以在面試過程中了解面試者的這些能力。我的建議是:
有些人在面試時也可能會問行為問題。這些問題可能包括你過去的工作經歷(為了了解你是否具備工作所需的技能),以及你的個人興趣。這些問題也可以集中在你過去如何處理各種工作情況上。你對這些問題的回答可以展示你的技能,能力和個性。以下是你可能會被問到的一些示例問題:
根據你申請的職位級別,你可能還會被聞到一些系統設計面試(SDI)問題,這些問題主要是關于“設計大規模分布式系統”的問題。
由于缺乏足夠的開發大規模系統的經驗,以及沒有標準答案的設計問題的開放性,這些問題可能具有挑戰性。
我不打算在這里談論SDI問題太多,因為它不是這篇文章的重點,但我會提供一些示例問題,以及一些有用的資源,如果你想在這方面得到更多的練習。
以下是一些示例系統設計問題:
以下是面試中,關于設計問題的一些有用資源:
如果你正在申請數據科學經理職位(有時甚至是高級或主要職位),面試官將需要評估你的管理和領導技能,并了解你之前的管理經驗。
這個候選人的理想背景是在機器學習和預測建模等領域具有強大理論背景的人,以及良好的軟件工程技能。要成為有效的領導者,候選人還需要具備良好的溝通技巧和良好的規劃技能,以便能夠以考慮構建數據驅動產品所帶來的許多風險的方式進行優先排序和規劃。
我不會談到太深入到管理技能的方面,但我將在這里提供一些示例問題:
在這篇文章中,我嘗試提供一些提示,以及你在DS面試期間可能遇到的一些高級問題。鑒于數據科學角色的范圍不斷擴大,當然有一些主題和問題在此未討論。但我試圖涵蓋一些對數據科學面試中非常重要的一般性主題。
我的最終建議是對你申請的團隊/公司進行更多研究,并更好地了解他們正在處理的問題。然后,你可以將主要重點放在為與該團隊相關的主題做好準備。
0
回答0
回答0
回答0
回答0
回答1
回答0
回答0
回答0
回答0
回答