臉書/微軟/戴姆勒/Palantir/ARM/Intel 實習面試心得
建議先看以下這篇文再看這篇。前一篇講實習的準備及一些求職時的觀察,這篇則主要是個別公司的面試經驗。
- 臉書 Facebook (London)
因為之前先寫了一篇文,所以就直接看這篇吧:2021 Summer倫敦臉書實習 面試流程及準備心得
- 微軟 Microsoft (Munich)
基本上面試結構以及內容都跟臉書一模一樣,都是兩輪Technical Interview,如果兩輪後介於hire/no hire之間的話才會再安排第三輪。每一輪大約都一個小時,通常一開始都會問你一些比較chill的問題讓你消除緊張感,像是關於你履歷上的project之類的,至今唯一例外是MS的第一輪,一開頭直接20–30分鐘的CS Fundamentals (Algorithm, Data Structure, OS, OOP, Pragramming language),不過我個人覺得蠻有趣的,不然每次都講project講到有點膩xd。
第一round時他先問了我一題medium,我很快解完後他又問了我有沒有其他解法,是我第一次在面試時遇到面試官要求一題多解並實作出來的情況。兩個解法都寫完後他發現還有很多時間所以就又丟了一題easy給我(看他的反應感覺原本只期待我寫一題),寫完後就開始閒聊問問題、一起抱怨疫情XD
終面的面試官是做語音處理相關的,所以一開始他跟我聊了一下履歷上一個有點接近的project。然後他也沒準備面試軟體,直接叫我開IDE然後share screen,給了我一題Hard的DP…,我大概花了30–40分鐘把naive的方法bug-free得寫出來,當然這中間非常多的溝通,寫完他也叫我跑幾個test case以及complexity,最後我有主動口頭說可以怎麼優化,感覺他也蠻滿意的。面完隔天就收到offer,所以我感覺遇到太難的題目也不要慌張,重點是一步步的過程。當然如果這是hiring bar更高的職位,那可能就要有更好的表現。
微軟整體面起來感覺比FB簡單一些,並不是題目的簡單,而是FB面起來覺得節奏比較快,所以要快點想到思路、code要寫比較快,相較起來微軟可以慢一些,不知道跟公司文化有沒有關,也有可能只是single case所以還是參考就好。關於難度,題目一般就是medium的難度,偶而會遇到easy但有趣的是下一輪就會回敬你一題hard,不知道是巧合還是故意的xd。其實Hard的題目我沒有一題解出最佳解過(我就爛…),所以我覺得得到最終的答案不見得是最重要的,更重要的是過程,你怎麼approach一個未知的問題、卡住的時候腦袋中有哪些方向,盡可能讓面試官知道你每一步背後的原因。總結來說,與其去練那些超難的題目以及超特殊的解法,不如花時間把溝通能力練好。
- 戴姆勒 Daimler (Stuttgart)
怕有些人不知道,戴姆勒其實就是賓士的母公司。雖然是大公司,但是是其中的一個小team獨立招人,所以面起來跟小公司很像,都很注重過去的經驗。這是一個ML於Computer Vision應用的role,因此電面時問了很多過去的相關經驗以及背後的一些理論,感覺他們真的是有認真的看我的履歷,問了很多履歷上的東西(甚至一些課外活動),而且感覺起來他們都很有興趣,挺有被重視的感覺。電面結束後幾天發了一份回家作業要我寫,要我五天內回傳,是一題數學題,題目有很多follow-up小題,可以用DP來優化,然後最後要畫圖,唯一的限制是只能用python寫。我大概寫了約2–3小時,好像100多行code的樣子。幾天後再安排一次面試,內容就是解釋以及報告那份回家作業。我感覺回家作業+下個面試=一般其他公司的coding round,只是效率相對低了點。我覺得我報告時沒有講得很好,然後我畫的圖也有被批評not readable(我畫的是line graph但他們期待我畫scatter plot),可能我的背景跟CV不太相關也是被拒原因之一。
- Palantir (London)
這家是號稱矽谷最神秘的公司之一,創辦人之一就是大名鼎鼎的Peter Thiel,hiring bar聽說也是出了名的高。
面試的流程是:線上測驗->HR behavioral interview->Karat Interview->三輪technical rounds->Hiring Manager聊天
線上測驗是用HackerRank不過跟一般的leetcode題目很不一樣,比較生活化,上網查都找得到範例。而HR round則是很注重Why Palantir這件事,據說這一round刷了很多人,以後有機會要好好準備。
HR說通常他們會希望這是candidates在畢業前的最後一份Internship,很可惜我FB的面試來得太快offer接得太急,日期早已定下來,所以這等於我不可能在這實習了,不過儘管如此,HR也是幫我安排了Karat的面試。Karat是一家專門負責technical interview的外包公司,一次面試就是一小時,內容基本上跟一般coding round差不多,大概40–45分鐘然後期待你解2題左右,只是一開始有多一些快問快答的部分,像是給你一個情況問你如何解決、給你兩串code問其中的差別等等。coding 題我遇到的是easy+medium,寫完後因為還有一些時間所以他又問了一些follow-up,但就只有口頭回答。過了之後又跟HR聊了一下,了解狀況後她說她可以先暫時freeze我的申請,等面Full-time時再繼續面剩下的階段。
HR人非常nice也很專業,對這家公司目前印象很好,等明年面Full-time時再來分享後續囉。
- ARM (Cambridge)
投遞履歷後兩個多月才收到面試通知,一次面兩位主任工程師,都已在ARM工作10幾年。面之前就有去glassdoor上看大家的評價,果然跟我的心得大同小異,他們會請你介紹過去的project然後會隨時打斷你問一些相關的問題,內容主要聚焦在ML、Computer Architecture 、OS以及parallel programming ,問題都鑽的很深,不過不太像是那種拷問式的問法,更像是跟大神們的討論,就誠實把的自己知道的東西還有自己的想法講出來就好。面試後覺得腦袋被榨乾,但蠻享受這樣的面試的。
- 英特爾 Intel (Munich)
這是intel做automated robot的團隊,從頭到尾就只有一次30分鐘的面試,然後就會給出offer,連我身為candidate都覺得有點少(但可能是他們的resume screening特別嚴,因為我在不同時間投了四五個它們家的缺只收到這個缺的通知)。面試前有請我準備我任一project的presentation,但因為我想報的經歷的資料是confidential,所以我就只有用講的。面試時是同時面對三位工程師,面起來感覺跟arm很像,也是報完都會問一些問題且鑽得比較深,然後中間有給我看一串C code請我解釋那串在幹嘛、有哪個地方可能會出問題。他們也是希望能找做長期的人。
- Jump Trading (London)
這家只是跟其他公司一樣在官網隨便填資料投投看,收到面試通知後才開始調查這家公司,查一查後真的是發現新世界。爬了爬文發現這些trading firms真的好神秘,薪水非常可怕但hiring bar也非常高。根據levels.fyi顯示,實習薪水最高的前幾名全都是這些公司…..
也因為這樣,面試前也完全就是一個朝聖的心態,雖然也只是跟HR聊聊天而已XD 大概聊了一小時,都是很輕鬆的話題,也對這家公司以及這個產業有了更多的了解。因為注重效能,所以公司基本上都用C++,讓我更訝異的是,他們為了榨乾最後一點效能優化,甚至有自己的IC design團隊重頭設計晶片。聊完後他們說會把我轉給hiring manager,如果他有興趣會再聯絡我,此外,他們說要再確認公司會不會sponsor visa。目前無聲到現在,不知道是哪個原因。
以上大概就是一些大公司的面試心得,想說比較能供以後的人參考,也有面一些小公司就先不寫了。
如果有問題或是覺得哪些地方寫得不清楚的,歡迎留言或私訊!有什麼希望我分享的主題也歡迎給予建議,我盡量找時間寫XD
My Linkedin : https://www.linkedin.com/in/tzu-chien-chang/
Feel free to reach out and connect :)