面試流程
- 電話面試
- 共享桌面遠程面試(少部分大公司)
- 現場面試
主要講最為重要的現場面試
現場面試的三個環節
行為面試 : 面試剛開始的5~10分鐘進行,作為暖場的過程。
面試者被要求進行自我介紹;
面試者可能會針對你簡歷上的項目進行一些提問;(在填寫項目時,應該把筆墨著重放在介紹自己完成的工作而不是項目的背景上)
詢問你簡歷上的技能問題; (寫簡歷時不要隨便使用“精通”,“了解”等字眼,應該使用“熟悉”)
如果你是跳槽的,可能會問你“為什么跳槽”。 (避免以下幾個理由 :老板太苛刻、同事難相處、加班太頻繁、工資太低,應該告訴面試官自己對這份工作感興趣,以前的工作干時間長了沒激情了)
技術面試環節 :整個面試環節中最為重要的環節
面試官主要考察三個方面 :基礎知識、高質量的代碼、清晰的思路、優化效率的能力
基礎知識
基礎知識主要三個方面:
- 編程語言:應該至少熟練掌握兩門語言,一門面向過程,一門面向對象。熟練!
- 數據結構:至少熟練掌握鏈表、樹、棧、隊列和哈希表等數據結構以及它們的操作。其中鏈表和二叉樹相關的問題最常提及。面試者需實現對鏈表的插入和刪除節點了如指掌,對二叉樹的各種遍歷方法的循環和遞歸寫法爛熟于胸。
- 查找、排序等算法:重點掌握二分查找、歸并排序和快速排序。谷歌、百度等公司還會要求應聘者熟練掌握動態規劃和貪婪算法。
高質量的代碼
面試中的代碼需具有魯棒性:一定要考慮周全在寫代碼,最好的方法就是動手寫代碼之前想好測試用例,考慮到邊界條件、特殊輸入和錯誤處理等方面,對空指針要加以判斷和特殊處理。
清晰的思路
有時候面試官會故意出一些非常復雜的題目,他并不期待你在面試過程中給出完整的答案,更加看重的是你是否有清晰的思路。
解決難題的三大法寶(謹記):
- 畫圖:畫圖能使問題形象化
- 舉例:舉例能使問題具體化
- 分解:分解能使復雜問題簡單化
優化效率的能力
程序員應該一直關注自己的程序對時間和內存的消耗。
優化時間效率和空間效率的方法:
- 分析效率: 平時做題的時候要做完一題,就得立刻分析程序的時間復雜度和空間復雜度。
- 熟知各種數據結構的優缺點
- 熟練掌握常用的算法:查找和排序算法
應聘者提問環節
應聘者提問環節在面試的最后5~10分鐘,提問的時候需要注意:
- 不要問假大空的事情:例如公司未來的規劃之類的
- 不要談錢,不要談錢,不要問薪水 : 技術面試不是談薪水的時候,工資的事情應該留到你過了面試和HR談。
- 不要當場打聽面試結果
- 問與公司項目,你應聘的工作相關的問題:面試之前就應該做好功課,把公司的主要業務,職位要求了然于胸。