技術人員如何準備面試之理論篇
最近面試了幾名同學,面試結果都不是很理想,他們自己也能感覺出來,所以和我說“因為最近在準備論文,所以沒怎麼準備面試”,“最近一直在上課,沒有時間準備面試”。像這種情況我覺得真的非常可惜,雖說面試有時是看運氣的,但面試前還是一定要準備好再投簡歷,並格外珍惜每次面試的機會,否則有時候你以為你錯過的只是一次面試機會,但是過了幾年之後你可能會發現你錯過了一輩子。
如果我們把面試上理想的公司比喻為在通關一場遊戲的話,那麼準備面試階段其實就是在找攻略並加練習的階段。
那麼我們要從哪幾個方面來準備面試呢?我覺得一共要準備以下六個方面:
·
溫習基礎知識
·
·
多刷題
·
·
準備自我介紹
·
·
總結技術亮點
·
·
梳理職業規劃
·
·
瞭解目標公司和職位
·
溫習基礎知識
面試不同的公司,各面試官提的問題肯定不同,但是基礎技術是每個面試官通常都會問的,所以面試前務必要好好複習基礎知識。基礎技術問題有常用演算法、SQL、資料庫事務、事務隔離級別、TCP 和 HTTP 協議、執行緒和程序、作業系統等。比如,如果你應聘 Java 程式設計師,則對應的基礎技術知識就有垃圾回收機制、JDK 集合類的實現原理、記憶體模型、併發程式設計、執行時資料區和類載入機制等,這些 Java 的基礎知識點就是 Java 的特點。
多刷題
面試官會從海量的技術題庫中抽幾道技術題面試你,網上有各大公司的技術面試題,你自己可以全部過一遍,做到心裡有數。如果你都會做了,面試的時候其實會增加很多自信。
當然好的面試官會考察你擅長的技術,看看你對技術深度的掌握程度。但是也有面試官會問他自己擅長的技術,這樣就需要你有一定的技術寬度才能應對各種問題,所以你需要盡力去準備,準備得越充分,面試時就會越從容,最後面試成功的概率也就會越大。
除此之外,建議你還要刷一些測試思維能力的題目,比如谷歌面試時的一道題目,有一棟 100 層高的大樓,給你兩個完全相同的玻璃球,假設從某一層開始,丟下玻璃球會摔碎,那麼怎麼利用手中的兩個球用最少次數找到這個臨界層的層數呢?最簡單的做法是拿著球一層一層地嘗試。
稍微好一點的做法是用二分法,先去 50 層測試,這樣可以直接排除一半的樓層,如果沒有摔碎,再去 75 層測試。更優的做法是,先拿一個球去 10 層試試,然後每次增加 10 層,用一個球縮小範圍,再用另外一個球一層層地試,這樣最多 20 次就可以測試出目標樓層。
準備自我介紹
大部分面試官一般都會讓應聘者首先做個自我介紹以描述自己的基本情況,其次是描述自己的技術亮點,做過的亮點專案或產品。如果沒有技術亮點或做過亮點專案,可以講下在某個專案中解決的難點,這裡有個技巧就是回憶下在解決哪個事情上花費的時間最長就是最有挑戰的點,另外學習能力強也是亮點,比如快速搭建出 Redis。
自我介紹回合是應聘者最主動的一個回合,因為在這個回合主要是應聘者說,面試官聽,所以我認為這個回合非常重要,如果介紹得非常好,就可以讓面試官對你有好感,我建議在這部分準備一個五分鐘時長的自我介紹。但是在面試中很多同學的自我介紹一分鐘都不到,其實工作經驗較少的,也可以準備學習經驗,比如如何快速學習新技術或學習英語。
舉個例子,如果讓我去做自我介紹我會這麼說:
“我叫方騰飛,方向的方,經濟騰飛的騰飛,目前在某大型網際網路公司負責帶團隊建設資料和風險域,以及團隊架構工作。我有 10 年以上的 Java 開發經驗,超過 3 年的系統架構,擅長業務架構,負責過十幾個系統架構設計工作。有很強的推動能力,組織過數十人的團隊完成過大團隊雙 11 穩定性工作,目前也在推動團隊進行單元化建設工作。
有較強的技術影響力,12 年利用業餘時間創辦了併發程式設計網 ifeve.com,目前已經是國內知名的技術網站,世界排名最高 2W 左右,日訪問量數萬。
擅長和愛好寫作,從 05 年到現在已經寫了數百篇文章,文章曾多次在 InfoQ 和程式設計師雜誌發表,是暢銷書《Java 併發程式設計的藝術》的作者之一。”
如果面試官還有興趣,接下來我會再介紹下我做過的最有技術含量的專案和最能體現我架構能力的專案。
你按照這個思路講下去才算是一個比較完善的自我介紹。
總結技術亮點
技術人員平時做的專案很多,到面試之前必須靜下心來總結一下,自己做過的專案和技術亮點。舉個例子,如果讓我說亮點技術產品,我會說“我開發過一個 Java 動態模組框架 JarsLink,是阿里巴巴的開源專案,用於提高部門後臺開發效率,目前部門的後臺開發、資料採集和指標計算都會使用這個框架。”如果面試官對這個框架感興趣,我會繼續展開,為什麼要做這個框架?它解決了什麼問題?這個框架有哪些挑戰?我是如何解決這些挑戰的?如果讓我說最能體現我架構能力的專案,我會講小微融資架構,會講一下業務面臨的痛點以及針對這些痛點我所想到的解決方案和架構演進方向。
整理好亮點之後,就可以把最優秀的幾個亮點放在自我介紹裡。
梳理職業規劃
每個人都應該好好梳理下自己的技術規劃,如果不知道怎麼梳理職業規劃,可以參考下別人的職業規劃。比如,我的職業規劃是逐步形成由點到線,線到面,面到體的技術架構能力。從能架構一個系統,到某個業務線的架構,再到部門架構,最後能夠駕馭某個生態體系的架構。
一個系統就是一個點,幾個系統組成線,幾十個系統組成一個矩陣就是一個面,數不清的系統組成一個體。如果從職位上來看規劃的話,是從開發工程師、到高階開發工程師、再到技術專家、然後到架構師、技術主管、技術總監和 CTO。
瞭解目標公司和職位
你可以通過目標公司的官方網址、宣傳資料和公司高管講話中瞭解你應聘的公司和職位資訊,每個公司的價值觀不一樣,對人的要求也不一樣,知道了這家公司的價值觀,你就可以有針對性地準備面試,並且還可以讓 HR 感覺你來面試這家公司是做過充分準備的。熟悉應聘職位的描述和職位要求,能夠讓你知道準備哪些技術點,縮小準備面試的範圍。
總結
準備面試並不是臨時抱佛腳就能全部完成的,而是要系統化地學習、在平時的工作中做積累,量變才能引起質變,面試進更好的公司只是一個水到渠成的過程,能力到了自然就能進更好的公司。多準備一點,勝算就多一分!