這是關於技術面試要做和不要做的一個列表,主要用於算法面試。其中一些可能只適用於白板面試或電話交流,但大多數兩者都適用。每次面試前我都會溫習這個清單,提醒自己,並最終把所有這些都消化到我不再需要依賴的地步。
圖例: = 要做, = 不要做, = 視情況而定
1.面試前
事項 | |
準備筆,紙和耳機/頭戴式耳機。 | |
找一個網絡連接良好的安靜環境。 | |
確保攝像頭和音頻正常工作。有幾次我不得不重新啓動Chrome讓Hangouts重新工作。 | |
申請通過Hangouts/Skype而不是電話面試;Hangouts/Skype更容易傳遞鏈接或文本。 | |
採用熟悉的編程語言。 | |
熟悉編碼環境(CoderPad/CodePen)。設置編碼的快捷方式,打開自動填充,tab的空格數量等。 | |
準備面試中常見問題的答案。 | |
準備面試結束時要問的一些問題。 | |
穿着舒適。通常你不需要穿時髦的衣服,休閒裝就可以。T恤衫和牛仔褲在大多數地方都是可以接受的。 | |
鎮靜沉着。 | |
如果可能的話,關掉網絡攝像頭。 |
2.介紹
事項 | |
在一兩分鐘內用幾句話介紹自己。 | |
提及與你申請的職位相關的興趣點。 | |
聽起來熱情!帶着微笑說話,你的聲音自然會更迷人。 | |
自我介紹花費太長時間。你花在談話上的時間越多,你編碼的時間就越少。 |
3.得到問題
事項 | |
在面試官面前重複這個問題。 | |
澄清你下意識做的任何假設。許多問題都是故意規定的。一個像樹的圖很可能是一個允許循環的圖,而一個簡單的遞歸解法無效。 | |
澄清輸入格式和範圍。詢問輸入是否可以被假定爲格式良好的和非空的。 | |
通過一個小例子來確保你理解這個問題。 | |
解釋一個高水平的方法,即使它是“蠻力”的。 | |
改進方法並優化。減少重複工作和緩存重複的計算。 | |
仔細想想,然後陳述和解釋你採用方法的時間和空間的複雜性。 | |
如果卡住了,想想你以前見過的相關問題,以及它們是如何解決的。查看本節的提示。 | |
忽略給你的信息。每個都很重要。 | |
直接跳到編碼。 | |
在沒有面試官允許的情況下開始編寫代碼。 | |
對你的方法或分析不太確定。 |
4.編碼過程中
5.編碼過後
事項 | |
仔細細看代碼來查找錯誤,就好像這是你第一次看到別人寫的代碼一樣。 | |
檢查一個錯誤。 | |
想出更多的測試用例。嘗試極端測試用例。 | |
用這些測試用例單步執行代碼。 | |
尋找你可以重構的地方。 | |
重申代碼的時間和空間複雜度。 | |
解釋取捨以及在給定更多時間的情況下如何改進代碼/方法。 | |
馬上宣佈你完成了編碼。先做上面的事! | |
與面試官爭論。他們可能是錯的,但鑑於他們熟悉這個問題,這是不大可能的。 |
6.結束
事項 | |
問問題。更重要的是,問針對該公司的好的、引人入勝的問題!從這個列表(日後會作爲單獨的文章發出)中挑選一些問題。 | |
感謝面試官。 | |
詢問你的面試表現。會很尷尬。 | |
什麼都不問就結束面試。 |
英文原文:https://github.com/yangshun/tech-interview-handbook/blob/master/preparing/cheatsheet.md
譯者:蒲公英