程序員求職之道(《程序員面試筆試寶典》)

21世紀的前10年是IT技術迅速發展的10年,嵌入式技術、互聯網技術等蓬勃發展,程序員,尤爲是高級程序員可觀的薪水以及程序員巨大的發展潛力使得愈來愈多的人選擇了程序員做爲將來的職業。同時,因爲計算機技術自身博大精深,涉及的知識面很廣,企業在給程序員開出高薪的同時,對他們的專業素養也提出了很是高的要求。每一年九月份開始,各大IT企業開始招兵買馬,招賢納士,無數具備計算機專業背景的學生都但願在招聘季可以進入本身渴望的企業,本身喜歡的行業,而且領取一份可觀的薪水,尋找一份這樣的工做成爲每個求職者的終極目標。可是這些企業的招聘人數畢竟是有限的,像GoogleMicrosoft這樣的行業巨頭,每一年在中國的招聘計劃可能只有區區幾十人,如何可以鶴立雞羣,從衆多求職者中脫穎而出是每個IT求職者所渴望的。html

經過調查發現,雖然IT業在不停地炒做新概念,例如SOA雲計算等,並且各大IT企業的工做重心也可能大不相同,有側重互聯網開發的,也有側重嵌入式系統開發的,還有側重應用性軟件開發的,可是在對求職者進行面試筆試時,他們卻達到了驚人的一致,都會特別看重求職者對基礎知識的掌握能力,重點考覈他們的計算機基本知識,包括C/C++、數據結構與算法、操做系統、計算機網絡、大規模數據處理等,畢竟這些具體技術問題是有客觀答案的,並且計算機技術之間每每都是相通的,這些基礎題型幾乎是固定的,無論求職者以前技術水平如何,只要可以在找工做前將這些知識理解,作到融會貫通,以不變應萬變,必將能在求職中找到一份理想的工做。程序員

  

董哥,男,中國科學院計算技術研究所2012屆碩士研究生,現就任於北京騰訊搜搜。面試

一、拋磚引玉
算法

找工做的過程是綜合實力較量的過程,一個好的offer背後凝聚着無數辛勤的汗水,須要你勤奮,堅持,積累、付出與表現。我以過來人的身份介紹一下本身找工做的經驗,但願對師弟師妹們有所啓發。但須要注意的是,徹底掌握作到了這裏提到的幾點並不意味着你必定能夠拿到一流的offer,我僅是拋磚引玉,點播你,啓發你而已,若是想在找工做時駕輕就熟,須要你平時不斷積累和總結,領悟其中的真諦。編程

二、心態決定一切
設計模式

對於找工做,心態很重要,找工做以前,必定把心態端正。二十年寒窗苦讀,幾千個夜晚與孤獨爲伴,最重要的一個目的是找一份理想的工做,從而實現自身的價值,於是我以爲,咱們至少應該像準備高考那樣,全身心投入到找工做的準備中,將以前所學知識從新溫習整理,以便將全部能力可以最大限度地發揮出來,進而向面試官充分展現本身,推銷本身。數組

三、冰凍三尺非一日之寒
網絡

關於找工做前的準備,有兩個因素直接決定着你是否能最終被錄用,一個是項目,另外一個是基礎知識,這兩個中任何一個被面試官相中,都可能拿到offer數據結構

對於項目,不在多而在精,通常的項目,例如普通的管理系統、網站等,面試官幾乎不用耗費腦力,一眼就能看到底,沒有什麼好講的,最切合也最能引發面試官興趣的項目每每是與他如今的領域相同或相近,解決的問題的確具備必定的難度且提出的解決方案具備必定的創新點。但遺憾的是,對於大部分畢業生,項目的深度每每不夠,畢竟想在研究生短短的兩三年時間裏面成爲這方面的專家,仍是比較有難度的,因此這個時候就全靠你的基本功了。併發

基本功基本上可分爲如下幾個部分:編程語言,數據結構與算法,操做系統和其它小知識點。對於編程語言,我的認爲C語言是必須掌握的,不少公司把C語言做爲必考項,例如微軟,另外要在C++JAVA兩種面向編程語言中選一個,主要知識點是面向對象編程中的一些基本概念,如:虛函數、構造函數、析構函數、拷貝構造函數等。有一些題目已經成爲經典,是必須、必定、非要掌握的,例如:(C++語言)虛函數是怎麼實現的?構造函數能夠是虛函數嗎?爲何鼓勵將析構函數設計成虛函數?對於數據結構和算法,這是面試的重點,不少公司基本上只考算法與數據結構,好比微軟四面全是寫算法(幾乎佔面試題目的90%左右),這就須要你們平時多積累,多練習。尤爲對一些基本數據結構和算法,要很是清楚,好比:單鏈表反轉,Trie樹,兩個數組交併差集等;對於操做系統,主要掌握Linux裏的一些基本概念,好比線程,進程,內存管理,文件管理等,這些也會在面試中出現,必定要好好複習。最後是一些其它知識點,好比設計模式(單例,工廠模式等),編譯原理(程序從編譯到運行要經歷的幾個過程)等。

四、修煉程序員之「葵花寶典」

找工做過程當中,一些經典的題目,必定要反覆推敲,不少題目來自固定的那幾本參考書,你們應該好好琢磨這幾本書中的題目:

(1)       面試指南類書籍

面試指南類書籍是很是基礎的書籍,裏面的題目比較經典,經常以筆試或者面試題的形式出現。雖然對於進入好企業幫助不大,可是應付通常的小企業,這本書能夠做爲必定的參考。

(2)       《編程之美》

這是一本實戰書,任何找過工做的人都知道,不少筆試面試題直接來自該書,值得各位找工做的應屆生反反覆覆地閱讀和討論。此外,該書中有些題目難度過大,從找工做角度考慮,可暫時不看。

(3)       《編程珠璣》

該書分爲一二兩本,但從找工做角度考慮,第二本可暫時不看。第一本書主要是軟件設計思想,書中的例子已經成爲百面不厭,百考不厭的經典題目,好比數組循環移位,隨機採樣算法等。

(4)       《算法導論》

大師級的書,幾乎是找工做必看,該書對各類常見算法有很深刻的講解和詳盡的證實,並對每一個算法的起源,動機和求解過程有較多的涉及。

(5)       《深刻理解計算機系統》

該書從程序員的視角介紹了計算機系統。幾乎囊括了計算機的各個技術,包括數據表示、C程序的機器級表示、處理器結構,程序優化、存儲器層次結構、連接、異常控制流、虛擬存儲器和存儲器管理、系統級I/O、網絡編程和併發編程等。該書中提到的一些知識點,常做爲面試題目出現,好比Linux信號量,虛擬內存管理等。

(6)       CareerCup.Cracking.the.Technical.Interview.Ed4.2010

該書還沒有在中國大陸發行,但在網上可找到很是清晰的電子版,本人在此留下一個連接:http://ishare.iask.sina.com.cn/f/12828753.html,僅做爲學習之用,請勿用於商業目的。該書中的題目全是常見題,相對於上面基本書,其題目更新,技巧性更強。聽說,有人藉助此書拿下huluhulu是美國最知名的視頻網站之一)的offer

五、八面玲瓏

關於找工做的技巧,這個主要介紹兩點,一是回答問題的技巧。對於項目,主要回答點應該是遇到的挑戰和解決問題的思路,對於算法問題,要從複雜度高的算法逐步向複雜度低的算法過渡,第一眼見到題目,可先將本身想到的思路說出來(好比O(n2)複雜度),而後不斷優化(好比O(nlogn)複雜度),最後儘可能獲得一個最優的算法(好比O(n)複雜度),這時候可能要在紙上寫出來,一旦你沒有了思路,應該主動要求面試官加以提示。另外一個是交流技巧,這裏指的是同窗之間的交流,這一點很是重要,每當前一個同窗面試完後,應該主動跟他交流,主要打聽一些我的收穫和心得,尤爲是別人的失誤,應該儘可能避免,由於面試官一天要面試衆多的求職者,極可能會對不一樣的求職者提出相同的問題。

六、多多益善

最後是offer的選擇。offer原則儘可能多拿一些,以便給本身留一些選擇的餘地,至於怎麼選擇offer,這是我的的問題,每一個人側重點不同,因人而異,但我以爲適合本身的就是最好的,不必和別人進行比較。

技術的更新永無止境,做爲一名即將畢業的學生,要時刻保持清醒的頭腦,不斷地學習,不斷地充實本身,只有這樣,才能在激烈競爭中不被淘汰,二十年寒窗苦讀,最重要的一個目的是找一份理想的工做。夢想立刻就要實現,但願學弟學妹們再接再礪,像準備高考那樣準備找工做!

相關文章
相關標籤/搜索