企業一般通過幾輪技術面試來考察大家的各項能力,一般流程如下:
一面機試:一般會考選擇題和程式設計題
二面基礎算法面:就是基礎的算法都是該專欄要講的
三面綜合技術面:會考察程式設計語言,計算機基礎知識 ,以及了解項目經曆等等
四面技術boss面:會問一些比較範範的内容,考察大家解決問題和快速學習的能力
最後hr面:主要了解面試者與企業文化相不相符,面試者的職業發展,offer的選擇以及介紹一下企業提供的薪資待遇等等
并不是說一定是這五輪面試,不同的公司情況都不一樣,甚至同一個公司不同僚業群面試的流程都是不一樣的
可能 一面和二面放到一起,可能三面和四面放到一起,這裡盡量将各個次元拆開,讓同學們了解 技術面試需要做哪方面的準備。
我們來逐一展開分析各個面試環節面試官是從哪些次元來考察大家的
一面 機試
一面的話通常是 選擇題 + 程式設計題,還有些公司機試都是程式設計題。
選擇題:計算機基礎知識涉及計算機網絡,作業系統,資料庫,程式設計語言等等
程式設計題:一般是代碼量比較大的題目
一面機試,通常校招生的話,bat的級别的企業 都會提前發筆試題,發到郵箱裡然後指定時間内做完,一定要慎重對待,機試沒有過,後面就沒有面試機會了
機試通常是 選擇題 + 程式設計題,還有些公司機試都是程式設計題
選擇題則是計算機基礎知識涉及計算機網絡,作業系統,資料庫,程式設計語言等等,這裡如果有些同學對計算機基礎心裡沒有底的話,可以去牛客網上找一找 曆年各大公司的機試題目找找感覺。
程式設計題則一般是代碼量比較大的題目,圖、複雜資料結構或者一些模拟類的題目,程式設計題目都是我們這門課程會講述的重點
是以也給同學們也推薦一個程式設計學習的網站,也就是leetcode
leetcode是專門針對算法練習的題庫,leetcode現在也推出了中文網站,是以更方面中國的算法愛好者在上面刷題。這門課程也是主要在leetcode上選擇經典題目。
牛客網上涉及到程式員面試的各個環節,有很多國内網際網路公司曆年面試的題目還是很不錯的。
建議學習計算機基礎知識可以在牛客網上,刷算法題可以選擇leetcode。
二面 基礎算法面
更注意考察的是思維方式,這一塊和機試對算法的考察又不一樣,機試僅僅就是要一個結果,對了就是對了不對就是不對。
而二面的算法面試面試官更想看到同學們的思考過程,而不僅僅是一個答案。
通常一面機試的題目是代碼量比較大的題目,而二面而是一些基礎算法
面試官會讓面試者在白紙上寫代碼或者給面試者一台電腦來寫代碼,
一般面試官傾向于使用白紙,這樣更好看到同學們的思考方式
應該用什麼語言寫算法題呢?用自己最熟悉什麼語言,但最好是java或者c++
如果不會java或c++的話,那更建議通過做算法題,順便學習一下。
如果想在程式設計的路上走得更遠,掌握一門重語言是十分重要的,學好了c++或者java在學腳本語言會非常的快,相當于降維打擊
反而如果隻會腳本語言,工作之後在學習進階語言會很困難,很多東西回不了解。
是以這裡建議特别是應屆生,大家有時間就要打好語言的基礎, 不要太迷信用10行代碼調用一個包解決100行代碼的事,
因為這樣也不會清楚省略掉的90行做了哪些工作。
這裡建議大家 在打基礎的時候 最好不要上來就走捷徑。
簡單代碼一定要可以手寫出來,不要過于依賴ide的自動補全 。
例如寫一個翻轉二叉樹的函數, 很多同學在刷了很多leetcode 上面的題目
但是leetcode上一般都把二叉樹的結構已經定義好了,是以可以上來直接寫函數的實作
但是面試的時候要在白紙上寫代碼,一些同學一下子不知道二叉樹的定義應該如何寫,不是結構體定義的不對,就是忘了如何寫指針。
總之,錯漏百出。是以基本結構的定義以及代碼一定要訓練在白紙上寫出來
三面 綜合技術面
綜合技術面 一般從如下三點考察大家。
程式設計語言:這裡是面試官考察程式設計語言掌握程度,如果是c++的話, 會問stl,繼承,多态,指針等等 這裡還可以問很多問題。
計算機基礎知識:考察計算機方面的綜合知識,這裡不同方向考察的側重點不一樣,如果是背景開發,linux , tcp, 程序線程這些是一定要問的。
在項目經驗中 面試官想考察什麼呢
項目經驗主要從這三方面進行考察 技術原理、 技術深度、應變能力
考察技術原理, 做了一個項目,是不是僅僅調一調接口就完事,之後接口背後做了些什麼?這些還是要了解的
考察技術深度,如果是背景開發的話,可以從系統的擴容、緩存、資料存儲等多方面進行考察
考察應變能力,如果面試官針對項目問同學們一個場景,最為忌諱的回答是什麼?“我沒考慮過這種情況”。這會讓面試官對同學們的印象大打折扣。
這個時候,面試官最欣賞的候選人,就是盡管沒考慮過,但也會思考出一個方案,然後跟面試官進行讨論。
最終讨論出一個可行的方案,這個會讓面試官對同學們的好感倍增。
通常應屆生沒有什麼項目經驗,特備是大學生,其實可以自己做一些的小項目。
例如做一個 可以聯機的五子棋遊戲,這裡就涉及到了網絡知識,可以結合着自己網絡知識來介紹自己的項目。
已經工作的人,就要找出自己工作項目的亮點,其實一個項目不是每一個人都有機會參與核心的開發。
也不是每個人都有解決難題的機會,這也是我們在工作中 遇到難點,要勇往直前的動力,因為這個就是自己項目經驗最值錢的一部分。
四面 boss面
技術leader面試主要考察面試者兩個能力, 解決問題的能力和快速學習的能力
考察解決問題的能力,面試官最喜歡問的相關問題:
1. 在項目中遇到的最大的技術挑戰是什麼,而你是如果解決的?
2. 給出一個項目問題來讓面試者分析?
3. 如果你是學生,就會問在你學習中遇到哪些挑戰?
這些都是面試官經常問的問題。
面試官可能還會給出一個具體的項目場景,問同學們如何去解決。
例如微信朋友圈的背景設計,如果是你應該怎麼設計,這種問題大家也不必驚慌
因為面試官也知道你沒有設計過,是以大家隻要大膽說出自己的設計方案就好
面試官會在進一步指引你的方案可能那裡有問題,最終讨論出一個看似合理的結果。
這裡面試官考察的主要是針對項目問題,同學們是如何思考的,如何解決的。
考察快速學習的能力,面試官最喜歡問的相關問題:
1. 快速學習的能力 如果快速學習一門新的技術或者語言?
2. 讀研之後發現自己和大學畢業有什麼差别?
3. 在具體一點 面試官會問,如果有個項目這兩天就要啟動,而這個項目使用了你沒有用過的語言或者技術,你将怎麼完成這個項目?
換句話說,面試官會問:你如果快速學習一門新的程式設計語言或技術,這裡同學們就要好好總結一下自己學習的技巧
如果你是研究所學生,面試官也喜歡問: 讀研之後發現自己和大學畢業有什麼差别?
這裡要展現出自己思維方式和學習方法上的進步,而不是用了兩三年的時間有多學了那些技術,因為網際網路是不斷變化的。
面試官更喜歡考察是同學們的快速學習的能力。
五面 hr面
終于到了hr面了,大家是不是感覺完事萬事大吉了,這裡萬萬不可大意,否則到手的offer就飛掉了。
要知道hr那裡如果有十個名額,技術面留給通常留給hr的人數是大于十個的,也就是hr有選擇權,hr會選擇符合公司文化的價值觀的候選人。
這裡呢給大家列舉一些關鍵問題
為什麼選擇我們公司?
這個大家一定要有所準備,不能被問到了之後一臉茫然,然後說 就是想找個工作,那基本就沒戲了
要從技術氛圍,職業發展,公司潛力等等方面來說自己為什麼選擇這家公司
有沒有職業規劃?
其實如果剛剛畢業并沒有明确的職業規劃,這裡建議大家不要說 自己想工作幾年想做項目經理,工作幾年想做産品經理的
這樣會被hr認為 職業規劃不清晰,盡量從技術的角度規劃自己。
是否接受加班?
雖然大家都不喜歡加班,但是這個問題 我還是建議如果手頭沒有offer的話,大家盡量選擇接受了
除非是超級大牛手頭n多高新offer,可以直接說不接受,然後起身潇灑離去
堅持最長的一件事情是什麼?
這裡大家最好之前就想好,有一些同學可能印象裡自己沒有堅持很長的事情,也沒有好好想過這個問題,在hr面的時候被問到的時候,一臉茫然
憋了半天說出一個不痛不癢的事情。這就是一個減分項了
如果校招,直接會問:期望薪資xxx是否接受?
這裡大家如果感覺自己表現的很好 給面試官留下的很好的印象,可以在這裡争取 special offer,或者ssp offer
這都是可以的,但是要真的對自己信心十足。
如果社招,則會了解前一家目前公司薪水多少 ?
這裡大家切記不要虛報工資,因為入職前是要查流水的,這個是比較嚴肅的問題。
其實hr也不會隻聊很嚴肅的話題, 也會聊一聊家常之類的,問一問 家在哪裡?在介紹一下公司薪酬福利待遇,這些就比較放松了
總結
這裡面試流程就是這樣了, 還是那句話 不是所有公司都按照這個流程來面試,但是如果是一線網際網路公司,一般都會從我說的這幾方面來考察大家
大家加油!