技術面試的主題
1.簡要自我介紹:
- 姓名、學校、專業
- 做過的專案與實習
- 個人主要成就
2.技術評估:
- 構建與開發演算法
- 程式設計
- 計算機基礎知識
- 資料結構
- 現實世界問題解決能力
- 設計問題(主要針對博士生)
沒有腦筋急轉彎問題(由於這不能反映你的程式設計能力)
3.你對面試官的問題
怎樣準備技術面試
- 複習計算機基礎知識-回憶你大一那年
- 複習演算法和資料結構
- 練習寫程式碼,特別假設你疏於練習;集中精力在你最強的語言上
1.練習在白板上或者白紙上寫程式碼
2.我們須要的是實際的程式碼:高質量、高效率、高簡潔、無打字錯誤
3.語言選擇不是問題-面試官會讓你自己選你最強的語言程式設計
技術面試中的要點
兩條原則
1.谷歌並非在找那種已經精通某種技能、能夠解決對應問題的project師。
2.谷歌要找的是那種有熱情和能力去解決他們從未遇到的問題的project師。
相對於知識本身,谷歌更加重視你的系統思考、高速學習能力、口頭表達能力和品格。
谷歌關心你是怎樣解決這個問題的。把你想的說出來。並提出問題。
- 我們的問題是深入全面的。
我們想知道你是怎樣思考複雜問題的。
- 能給出正確答案非常好。但不是必須的-你的思考過程是最重要的。
假設面試官問你的問題,你已經之前在網上看到過。應該怎麼辦?
誠實說出來。
面試官會轉而考察你在已知方案情況下。解決這個問題的速度。
比給出正確答案更重要的是
當我們問了一個技術問題,我們希望你:
- 把問題分類
- 高速先提出一個簡單的解決方式
- 優化你的解決方式
- 與面試官交流你的思路
1.你的解決思路與解決方式相同重要
2.提出如果併合理判斷
3.提出多種多樣的解決思路
兩個技術面試樣題
1.“Reverse the words in a sentence”
你可能非常快指出這是個逆序問題。給出了你的解決方式。
可是面試官關心的是,你真的看明確題目的要求了嗎?是每一個字母都反過來,還是每一個詞?你注意看了嗎?這兩者的處理方式同樣嗎?按詞進行逆序,以什麼作為分隔符呢?標點符號應當怎樣考慮?這句話須要輸入嗎?怎樣完整設計含有輸入功能的逆序程式呢?
等等,問題會逐漸加深。
2.“Describe a good algorithm for sorting amillion numbers”
這題也是一樣,你會記得問面試官數字的型別嗎?是int還是float?你用什麼演算法?各自的時間、空間複雜度是多少?你的程式預計消耗記憶體是多少?million變成trillion應該怎麼做?多執行緒應當怎樣設計?若10臺電腦一起跑,有1臺當機了怎麼辦?假設是斷網了怎麼辦?
由於是讓你解決實際的問題,所以這些問題都要考慮進去。問題的深度會逐漸加深。
最後是關於線上測試的注意事項,如圖1
圖1
以及網申的渠道,如圖2
圖2
歡迎參與討論並關注本部落格和微博以及知乎個人主頁興許內容繼續更新哦~
轉載請您尊重作者的勞動,完整保留上述文字以及文章連結。謝謝您的支援!