程序員面試應該如何準備?


今年6月份正式畢業,大四的時候也參加了學校的春招、秋招的面試,在南京、上海向多家公司都投遞過簡歷,大部分能得到滿意的結果。

大家干程序員這行的,如果想換工作,一般都會去刷題,因為面試能力和你平時的工作能力區別還是很大的。

那麼面試能準備嗎?當然是可以的!

因為實際上,大部分公司的面試題目大同小異,無非是:基礎語法、 集合類、多線程 、IO操作、資料庫、數據結構和演算法之類的問題...而且經我求證,尤其是大公司的校招面試,往往對數據結構與演算法要求較高。

所以言歸正傳,我這篇文章主要是整理了一些關於程序員面試、校園招聘的刷題指南以及書籍資源。

牛客網

牛客網可以說是IT技術人員求職神器了,提供海量C++、JAVA、前端等職業筆試題庫。他們提供國內外各大IT名企的筆試面試、校招面試的真題訓練,如果你有意向向此類公司投遞簡歷,建議可以直接從這個網站入手。

還有一點就是,他還匯聚歷年各個學校的考研專業課真題,如果沒有選擇就業,而有意向考研的同學也可以在這裡儘早開始準備自己專業課薄弱點的攻克。

LeetCode

(https://leetcode.com/)

其次就是,頂頂大名的Leetcode的了。Leetcode說實話蠻有用的,我當時也刷了很長一段時間,之後感覺在面試的時候都能短時間給一個大概的答案。這個網站對邏輯思維的訓練非常有幫助的,就算不是為了面試,如果在工作中只要不是涉及複雜演算法,基本不會難到自己。

建議數據結構演算法薄弱者多練習。

官網沒有答案,畢竟一個問題可以用Java、C++、Python等多種語言實現。

但我一般遇到問題會從這裡找答案:(https://fisherlei.blogspot.jp/)

easy=做不出來就沒offer

medium =做出來就有offer

hard = 做出來就有很好的offer

hihoCoder

技術團隊來源於北京大學POJ開發團隊,定期舉辦月賽。可以在裡面通過高水平的程序設計比賽提升編程水平,同時得到名企offer。裡面的題目質量也非常高,但對邏輯思維的考察就沒有leetcode那麼強。

Crack code the interview(書)

中文版:(http://www.code123.cc/732.html )

他出自谷歌自身面試官之手,這本書大家應該都說爛了,長盛不衰必然也是有他的道理。題量不多,但它的好處是,它做了一個整理面試題然後歸類的過程,而且基本把你可能遇到的所有面試題類型都覆蓋了。

劍指Offer

這本書精選谷歌、微軟等知名IT企業的50餘道典型面試題,系統地總結了如何在面試時寫出高質量代碼,如何優化代碼效率,以及分析、解決難題的常用方法。如果想看實體書的話,直接從這本書入手。

Java版本實現:(https://github.com/marsprince/SwordForOffer)

IT面試網

(http://www.itmian4.com/)

如果刷過了題目,還對自己的實力有所擔憂。你就可以從這裡面找找別人的面試經驗,這個論壇有很多熱心的網友會告訴你他們的面試經歷,以及一些面試中的細節的問題。

面試經驗分享在這裡

ps:裡面的培訓課程投資變現都是騙人的,謹慎。看看別人的經驗就好。

如果這篇文章對您有幫助,歡迎關注我以示支持!

如果還有其他的關於程序員的問題,可以在評論區評論,我會根據評論匯總成回答喲!


程序員準備面試時常犯的10個錯誤,分享給即將參加就業面試的程序員,希望能給大家帶來幫助。

1.只在電腦上練習

如果面試官要考核你的技術,很有可能會要求你在白板上寫代碼,而不是電腦上。所以,你就不能只在電腦上練習。電腦上的編譯器會自動發現你的語法錯誤,但是白板不會。

拿出筆和紙來練習下如何寫代碼。如果你自我檢查之後,覺得程序正確,再將它們輸入到電腦里,看看是否和原先設想的一樣。

2.不為可能提出的問題做準備

面試之前一定要為可能提出的問題做準備。問題可能涉及你曾經的項目,你遇到的不同問題以及如何解決這些難題。你的回答會影響面試官對你的技術能力的印象。

在面試之前先好好回顧自己做過的項目,將自己的主要事迹整理一下。

3.不做模擬面試

原因顯而易見。我們最好能排練一下在面試的時候會問哪些問題。還有,在正式面試時,雖然面試官會向你提問,但是同時,你也可以向他們提出問題,所以你要問哪些問題一定要事先準備好。

4.一味地背誦解決方案

如果你準備事先記住問題答案期待到時候能派上用場,那我勸你別瞎子點燈——白費蠟了。因為剛好抽到你背的那個答案的概率微乎其微。

相反,準備方案還需要花費你很多時間和精力。Remember,你現場發揮得越好,你本身的價值就越高。

5.說話聲音小

一般而言,說話聲音小會讓人感覺你的思路不清晰。所以,有什麼問題好好和面試官交流,這樣才能顯示你的思維過程,也有助於他們正確判斷你所提出方案的價值,當然還有你的價值。

6.言行不經大腦

在回答問題之前先好好組織自己的語言。想到什麼說什麼只會暴露你粗心的缺點。言語要既有條理,又精確。至於行動上,就是寫完代碼之後要仔細檢查。

7.不好的編碼習慣

光憑一個無bug的解決方案,並不意味著你一定能做的很好。你還必須知道重複性代碼、凌亂的數據結構、過度空格等情況。

要像是為實際應用般寫代碼。用邏輯思維設計數據結構、創建功能,並且確保布局安排符合選用的語言文化習慣。

8.不測試

在寫完代碼之後,我們一定要花點時間測試一下,以確保沒有bug。這一過程也需要使用紙筆來練練手,不然面試的時候要你在白板上寫的話你會沒有安全感!

9.修復錯誤的時候漫不經心

發現bug之後,我們最好先想想原因,然後再動手去做。不要寄希望於你換個布爾值或者在循環中隨機改個標誌就能解決問題。這樣做,只能暴露你根本不知道你犯了什麼錯誤,以及不夠細緻耐心地檢查問題。

10.放棄

總有一些問題的確是超出我們能力範圍的。面試官想看到的是你的態度,你是勇於面對挑戰呢,還是一遇到問題就退縮。

關鍵是需要表現出一種迎難而上的勁頭。企業想要的是能實實在在用代碼解決問題的人才,而你呢,則需要展示給他們看,你很享受於解決問題的過程。


精簡的求職簡歷,豐富的項目經驗,紮實的技術能力,得體的面試表達。


推薦閱讀:

美團外賣和餓了么比誰的市場份額大?
蘋果8p買什麼色的多?
Apple Watch真的能挽救人的生命嗎?
亞馬遜後台變體如何解體?
中國「天眼」對中國有什麼影響?

TAG:搞笑 | 教育 | 科技 | 面試 | 程序員 |