當前位置: 華文問答 > 職場

如何能夠去輝達( Nvidia )公司做實習生?

2013-04-03職場

大廠不僅提供較高的薪資水平胡優厚的福利待遇,還有較好的職業發展平台和國際化的工作環境。如果進入的是微軟、谷歌、亞馬遜這樣的互聯網巨頭,那我們接觸的就會是最前沿的技術。最近一位同學同時拿下了微軟和輝達這兩家業界當紅炸子雞的Offer,最後學員選擇去了輝達。以下是他第一視角的戰報:

國際慣例,先說個人背景:

USC本碩CS,碩士剛入學報名的23夏季保Offer學員,目前手上拿到了微軟和輝達的offer,最後權衡之下選擇了更有潛力的輝達。保offer是一個全流程的班,包括計畫補充+演算法+簡歷+面試輔導+mock interview+以及談薪技巧等,最後Justin老師還特地給我講了該怎麽禮貌地拒絕offer而不得罪人,真是送佛送到西了。

(已經成功在輝達報道!)

據說今年Justin老師保offer班要爆了,而且我之前還漏看了老師的朋友圈招生資訊,這個CS大環境想想心裏就慌得一批,感覺自己已經涼了。和家人溝通之後,我們決定大出血6萬刀 (T^T) 讓Justin老師和我1v1輔導,所以我其實上的是一個特制版的保Offer,也感謝USC大神學姐Cindy給的referral

先總結一下我面試過的兩家大廠基本的面試流程,流程上還是非常接近的( 經過助教提醒,好像老師之前寫過這方面的科普 )。首先是簡歷篩選,簡歷中突出自己的計畫經驗和實習經歷非常重要。例如,在大學期間我參與了多個開源計畫,並在一家國內某BAT互聯網公司實習過,這些經歷都為我的簡歷增色不少。如果沒有做過計畫也沒有互聯網公司實習怎麽辦?

大家可以參考老師這個貼文關於無實習的解決方案:

簡歷透過後是線上筆試,一般會考演算法、編程。之後就是電話初面,主要考察溝通能力和基礎知識掌握情況,簡單聊聊簡歷上的計畫。之後就是重頭戲,技術面試,通常會有兩到三輪,每輪持續一小時左右。面試內容包括演算法和數據結構、系統設計、編程能力等。面試官會給出一些現場編程題,要求在限定時間內完成,或者給出解題思路。期間還會考察對行業的理解和技術趨勢的敏感度,以及溝通力、領導力和團隊管理能力等。最後一關就是部門大boss經理面試,主要評估候選人的職業素養、團隊合作能力和職業發展意向,通常會問一些BQ問題。下面為大家逐一講解我面試透過的兩個大廠:微軟和輝達。

微軟

我參加微軟的面試總共有6面。除了HM終面沒有演算法題,前五面都有演算法題。面試中主要以計畫經歷和演算法題為主,幾乎沒有八股文,考察知識點也會結合實際套用場景,演算法題難度中等,寫程式碼之前會先討論,如果思路不是最佳,面試官會引導我。技術面重要的是解題思路、編碼速度、程式碼風格和異常輸入的處理,當然還有解題思維和溝通能力也很重要。

Phone Screen,首先英文自我介紹,然後HR問了我簡歷上的相關計畫,會根據我所做的工作評估在系統整體中發揮的作用。問了一個string相關的題,具體記不清了,難度較簡單。一面問了我做過的計畫細節。計畫在每一輪都會問, 所以簡歷上的計畫要能自圓其說 ,而且要註意用英文的用詞和表達。做了一個演算法題,合並兩個有序連結串列,用叠代方法寫完的。然後follow up問我遞迴怎麽寫。最後問了一個假如一個服務,突然存取量增加,如何設計可以解決這個。

二面到四面是同一天面試的,每輪面試官基本上都是以後組裏的同事。每一面都是自我介紹+計畫+演算法+系統設計,演算法一般1-2題,然後follow up,這裏建議大家多刷精刷LeetCode,雖然出原題的機率很小,但是可以透過做題鍛煉思維。刷題過程中總結規律,舉一反三。關註LeetCode討論區,高贊的做法和討論。每周競賽盡量參加,考驗我們在限時壓力下做出題目的能力,很大程度上模擬了面試場景。我記得問到的演算法題有有序陣列二分法搜尋、刪除排序連結串列中的重復元素、二元樹等。

我考的系統設計題是設計一個線上文件協作系統。其中涉及到了系統概述、使用者介面、數據儲存、並行控制、效能最佳化、可延伸性、安全性、容錯和恢復等。面試官還給了我很多提示。

最後一面是HM面,介紹了自己最具挑戰性的計畫。基本上是經典的BQ問題。如何處理同事或上級意見不合等。

輝達

面的是深度學習演算法相關崗位。NV對coding能力要求挺高的 ,需要短時間bug free寫出來 。面試6輪,1hr電話面試,4技術面,1BQ面。電話面試先英文自我介紹,然後介紹計畫,問了我計畫經歷的細節。線上共享文件做了位元位操作的演算法題,用O(1)時間復雜度實作階乘。問了深度學習相關經驗。

第一輪免了位元位操作相關演算法題,問了我之前的計畫經驗。第二輪講計畫經驗,sift特征要點,cuda編程基礎,cuda基礎知識。記憶體結構(比如各級記憶體的特點,shared memory使用技巧,如何定位和避免bank conflict,解釋local memory),執行緒模型(比如grid block尺寸如何確定,SM如何排程執行緒執行,執行緒如何處理條件分支,有哪些同步操作,等等)。第三輪面試,計畫經驗,C++ lambda。第四輪C++關鍵字用法,二元樹演算法題。最後一輪是行為面試,由HR和團隊負責人主持,主要評估軟技能和團隊適應力。

問題包括:描述一次你在團隊中解決沖突的經歷。你如何處理高壓力和緊迫的計畫?你如何不斷提升自己的技能和知識?