過不了面試的CS留學黨,和泡麵有什麼區別?

很多求職者反應,2016年,各大科技公司的面試題越來越讓人看不懂,拿offer越來越難!真的是這樣麼?

2016年,Google, Facebook, Linkedin, Microsoft, Uber, Snapchat等大型科技公司對於面試的考核有一個明顯的變化趨勢,從之前的對於某些固定的演算法或者資料結構考核,逐漸變成了將考核的重點放在了你是否有能力透過與面試官合理的溝通,去解決一個實際問題。而所有的資料結構和演算法,只是解決這個實際問題的工具。換句話說,求職者應該具備的能力並不僅僅是熟悉每一種資料結構並能快速寫出某些演算法,而是要在瞭解每種資料結構和演算法優劣勢的基礎上,理解面試官的問題,從而對實際問題建立模型,再自然而然地轉化程式碼。在面試過程中,透過與面試官的交流,不斷加深對問題的理解,解決問題並且逐步最佳化的過程,是面試官最想看到的。很多同學在面試的時候,在面試官描述完問題後,都直接想要提出最優解而因此卡在了自己臆想當中的最優解中,卻錯過了真正有價值的透過討論而得出有效思路的這個過程。
舉三個例子
第一個例子
是某G公司和某F公司都曾考過的問題,題目如下:
Implement an algorithm that models raindrops randomly falling on a sidewalk .sidewalk is 1m andraindrops are 1cm. How could we know when the sidewalk is completely wet.
有的公司可能會將sidewalk變成rope。這個問題就很好地體現出了具備解決實際問題思想的重要性。這個問題其實有很多需要跟面試官溝通的地方,比如,sidewalk或者是rope的形狀是什麼樣子的,長寬甚至是高是否都要考慮,雨滴濺落的樣子是否隨機,是圓點還是正方形,雨滴的掉落是否可以覆蓋原來的雨滴。在問問題的過程中逐漸理解面試官的意圖,循序漸進,先思考如果使得第一個1cm的sidewalk或者rope溼掉,再思考如何使10cm的sidewalk或者rope溼掉,然後是90cm然後是100cm。這個思考過程是面試官非常願意看見的。這種思維的嚴謹性和對問題的分析能力,是工作當中真正重要的。
第二個例子
是大家比較熟悉的:求一個數組中第K大的數字。
你先提出一個利用堆的解決方案,面試官能看出你對堆這個資料結構有一定的瞭解;提出先排序的解法,面試官知道你懂得如何最直接的解決問題,在此基礎上再提出“partition sort”的解法,面試官則知道你懂得如何分析問題,簡化問題,從而能夠提出更優解法。而這樣的能力,相比較對直接的演算法和資料結構的瞭解,顯然是在工作中更需要和被重視的。
第三個例子
是Sparse Matrix Multiplication的一個變種,求兩個sparse vector的multiplication的結果。比如有Vec1和Vec2,那麼Vec1與Vec2的multiplication就可以是Vec1[0] * Vec2[0] + Vec1[1] * Vec2[1] + … + Vec1[n-1] * Vec2[n-1].
這個題目看似簡單,但是可以問的問題非常多。首先,sparse vector意味著vector中的大部分資料都是0。那麼,為了簡化儲存所需要的空間,顯然,直接儲存是不明智的。那麼第一個問題就可以是,作為方程的傳遞引數,如何儲存這種特殊的資料會節省空間,並且在呼叫的時候更加高效。這是一個非常非常實際的問題,透過這些問題,可以充分的看出一個面試者的基本功,對計算機的理解以及資料結構基礎知識的掌握。解法1比較明顯,在陣列或者vector中,直接儲存非零的index以及該index下的值。儲存的方式可以有多種,普遍來看,一種是hash map儲存,非零index儲存非零index下的value值,操作簡單。另一種是正常的陣列或者連續空間的vector儲存,比如偶數index儲存非零index值,奇數index儲存非零index下對應的值。有很多同學拿到題目,思考片刻,直接說用hash map儲存,那麼在面試官的心裡,印象分就會降低。因為作為一個面試者,你並沒有很好的告訴我hash map的優勢和劣勢,你的思維也沒有那麼嚴謹,因為你並沒有問面試官資料量有多大。Hash map的不連續地址空間對資料的查詢,在大資料下自然遠比不上連續儲存空間的訪問效率。因此,雖然你覺得你做對了,但這個必要的思考與討論過程的缺失以及對資料結構基本性質的不全面理解,會丟掉很多分數。當然了,還有另外一種最優解去儲存,訪問資料並且方便運算,有興趣的同學可以自己思考一下。

這三個例子都是實實在在當前很多公司願意考核的知識點,非常簡單的題目卻能看出一個面試者的綜合素質。而這些,絕非所謂的“一刷”或者“兩刷”可以訓練好的。

在與同學們溝通的過程中,我們發現了一個非常令人擔憂的現象,很多同學在找工作的時候,百分之百依賴於刷題。更有甚者,連linked list有幾種型別,heap sorting怎麼寫都不清楚的情況下,就告訴我們已經“一刷”甚至“二刷”了,然後奇怪自己為什麼找不到工作,作為直通矽谷的老師,想要告訴大家,你的學習思路是有問題的。

從2016年後半年的情況來看,僅靠刷題來找工作的想法顯然是將這個過程神化了。刷題固然重要,但這只是找工作的必要條件而絕非充分條件,除了紮實的基本功,訓練有素的邏輯思維能力,分析問題能力,舉一反三能力,思想表達與溝通能力才是決定面試成敗的關鍵。
2017年“直通矽谷”開班在即,頂級科技公司明星教師隊伍,打磨兩年不斷總結最佳化、與時俱進的課程,根據多年頂級科技公司面試官的經驗,成為你的職業進階領路人。直通矽谷,首家同期開放基礎班,提高班,FLAG三種班型,根據你的入學考試將你放進對應的班型,我們,只專注於CS領域的就業培訓,因為專注而帶你走向成功!招生詳情請戳“閱讀原文”。
彩蛋
還在找工作的路上孤軍奮戰麼?如果你想知道北美其他高校的學生是怎樣備戰就業的,如果你想跟各高校學生一起交流討論就業技巧,如果你想了解各高校有哪些選修課程、研究方向、奇聞異事,速速加入到北美學生就業互助大群吧!
進群福利:Google資深工程師兼面試官免費直播講座等你來!~
1.掃描二維碼入群:

2.若二維碼失效(群內超過100人或超過時限)請新增小助手微信入群:
步驟:掃碼新增小助手為好友—註明學校、專業—小助手拉你入群
聯絡我們
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
新一期培訓課程將於2017年2月10日準時開班,全新班型,精準對位
欲知詳情請戳原“閱讀原文”或登入【直通矽谷】官網: www.zhitongguigu.com或傳送簡歷到【直通矽谷】官方郵箱: [email protected]
微信公眾號ID:gotovalley

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
點選檢視“直通矽谷”2月期課程招生簡章

相關文章