程序员找工作那点事儿
?從7月中旬回武漢之后開始系統的復習,到9月下旬正式開始找工作,最后到10月中旬結束,前后歷時三個月,從前期的職業定位,到中期的復習準備,最后到后期真槍實彈的筆試面試,個人感覺找工作就是個系統的工程,是個很復雜的事情,至少對于我是這樣的。經歷了感觸頗深,在這里,我想將我這幾個月,尤其是最后半個多月筆試面試的經歷與感受記錄下來,一來祭奠我那些由于高強度筆試面試犧牲的腦細胞,二來希望能給學弟學妹們半點借鑒。
? ? ? ?下面主要從三個方面來記錄這段經歷:職業定位、復習準備、實戰經歷。
一、職業定位
? ? ???我想大家在找工作之前應該會給自己定個目標,或者是職業范圍,比如想到哪個城市去工作;想加入到什么行業,比如互聯網、通信、傳統軟件、游戲等等;想進什么樣的企業,國企、民企、外企或者考公務員;最后想從事什么職業,是搞研發還是搞測試,是搞Web前端還是搞后臺開發,這些都是要考慮的。只有定位清楚了,才能有針對性的復習和準備,才能有的放矢,增加命中率。
? ? ? ? 就拿我自己來說吧,本來我對去哪個城市是沒什么特殊要求的,不過我想進入互聯網行業,國內好一點的互聯網公司,深圳有一兩家,廣州有一兩家,杭州有一兩家,上海有一兩家,其它的基本就全在北京了,所以從概率上來講,我多半要去北京了。然后,國內互聯網公司基本屬于民企。所以,綜上,我多半要去北京進入到某個民企從事互聯網行業。當然,除了這個,知名外企我也想試試,只為一試,只為一死,因為我自己實力我了解,即便技術關過了,英語口語這關肯定也是要死掉的。
? ? ? ? ?最后,也是最重要的一點,打算從事什么職位,一般的互聯網公司都會有這些職位:前端開發、后臺開發、windows開發、手機軟件開發、測試,運維等等。我以前雖然搞過web開發,不過那已經是幾年以前了,現在已經丟的差不多了,所以前端我沒有優勢;windows開發沒做過,手機開發沒做過,測試沒做過,運維也不熟,這些都排除就只剩下后臺開發了。大部分公司后臺開發都要求linux c/c++語言,我近一年來做的項目主要用的就是linux c,所以最基本的平臺和語言還算吻合。我注意到大部分互聯網公司,尤其是知名一點的互聯網公司都有這樣一個職位:數據挖掘/機器學習工程師。然后聯系到我近兩年的學習經歷,論文牽線,我和數據挖掘結下了不解之緣。除了項目之外,其它時間,我基本都在學習數據挖掘的相關知識,包括數據挖掘相關算法,推薦系統,搜索引擎等。綜上,我給自己職位的定位就是,大的方向是后臺開發,細分下來就是數據挖掘、推薦系統、搜索引擎相關。
二、復習準備
? ? ? ??從七月中旬到九月下旬,系統的復習我花了兩個多月,別說我復習的時間長了,高考只決定了未來四年,我們要花最少一年來復習,考研只決定未來三年,我們要花將近一年時間來復習,找工作決定未來多少年,我不好說,因人而定,總之是跨入社會的一個新的起點,新的平臺,我覺得花多少時間來準備都不為過。當然,這個也是因人而定,有的人基礎好,可能不需要怎么復習就可以直接扛著槍上戰場,我不行,我沒考過研,所以什么數據結構、操作系統、計算機網絡什么的都丟的差不多了,如果不復習就去筆試面試,我估計等著我的只有一個結果:go to hell。
? ? ? ? ?復習我主要圍繞四個方面:基礎知識、具體職位相關知識、技術博客、項目。
1.基礎知識
? ? ? ???計算機涉及的知識太廣,我們不可能面面俱到,不同的公司考察的重點也不一樣,不過也有一些共同點,塵埃落定之后,回過頭來看一看,個人覺得《程序員面試寶典》就是一個很好的知識框架。總結下來,就是一句話:一個中心,兩個基本點。一個中心是數據結構和算法。大一點的公司都會或多或少的涉及這方面的知識,不管是筆試還是面試。先說筆試,至少會有一道算法設計題。變態一點的像百度,基本都是編程題和算法題。面試最少也會考察一道算法題,逐步優化并且代碼實現。這一塊是重重之重,最好是找兩本數據結構和算法方面的書系統的復習一下。兩個基本點,一個是語言,一個是操作系統、數據庫、網絡相關知識。語言選擇最熟悉的一種語言即可,個人覺得如果語言有項目基礎,面試寶典上面涉及到的語言知識就可以應付一般的筆試。至于操作系統、數據庫、網絡相關的,基本考到的也都是小題,本科階段的積累應付筆試應該沒多大問題,如果要應付面試中面試官就某個知識點的追根究底,恐怕還是逃不過對某些知識點的系統復習。比如經常會問到的,操作系統中的進程和線程的區別,進程通信和線程同步,tcp/ip相關知識等等。
2.具體職位相關知識
? ? ? ? ??因為我投的是數據挖掘、推薦系統和搜索相關職位,所以這一塊我主要復習這方面的知識。這個看具體職位吧。具體職位具體復習,就不詳談了。
3.技術博客
? ? ? ??? 這一塊主要是拓寬自己的知識面吧,或者說把前面復習的知識在這一塊靈活運用,因為面試中大部分也不是考死知識,也是給我們一個問題,然后讓我們分析解決并且逐步優化。這里給大家推薦幾個博客。第一個:http://zhedahht.blog.163.com/這里有一系列的微軟google等面試題,我是花了幾天時間把這里面的60幾篇博客從頭至尾看完,而且大部分算法都用筆在紙上實現了一遍,沒辦法,因為面試就是這樣,紙上寫代碼。這里面,八皇后問題創新工場筆試中考到了,當然這個問題很多書中也談到過,不過這里用到的全排列的思想代碼實現比較簡潔。第二個:http://blog.csdn.net/v_july_v這里有大量的面試題分析以及海量數據處理問題總結,很久以前我就開始跟蹤這個博客,里面海量數據處理問題總結的很到位,基本可以應付絕大部分筆試面試中遇到的海量數據相關問題,我經歷的搜狐和騰訊的筆試以及百度的面試都涉及到了這方面的問題。第三個:編程之美,這是微軟的一幫工程師總結出來的一本面試心得,其中,對于每個問題如何解決如何優化都講解的非常到位,建議大家務必把這本書好好看看,如果時間不夠,可以只看第二部分數字之魅和第三部分結構之法。其中“尋找發帖水王”問題大眾點評網考到了;“1的數目”問題微軟考到了;“尋找最近點對”問題創新工場二面的時候問到了;“求數組的子數組之和的最大值”問題騰訊考到了;“鏈表相交”問題創新工場一面的時候問到了…
4.項目
? ? ? ???主要是因為我有個項目做了有兩三年了,有點陌生了,但是我簡歷中寫到了這個項目,避免面試官問到而我談不出來,所以我把之前做過的兩個項目的相關文檔都看了一下,思路整理了一下。這一塊也是因人而異,需要復習就復習。面試的時候有東西談總是好的。
三、實戰經歷
? ? ? ? ? ?下面談談我的面試經歷吧。主要談談四次印象最深的面試:最爛的一戰——搜狐;最爽的一戰——創新工場;最累的一戰——微軟;最成功的一戰——360.
1.最爛的一戰——搜狐
? ? ? ? ???搜狐是我筆的第一家公司,也是我面的第一家公司。為什么說是最爛的一戰呢,因為我滿懷希望的去,結果傷痕累累的回來。面試官三十歲的樣子,親和力比較強,我先做了下自我介紹,介紹到項目的時候,圍繞項目聊了一下,因為我簡歷里面提到了hadoop,所以又聊了一下hadoop可靠性相關的問題,這些都沒什么,因為都是我簡歷里面的東西。然后,面試官問設計模式熟不熟悉,我只了解少數幾個模式,所以說不熟,然后面試官就沒再問了;然后面試官又問我數據庫熟不熟悉,數據庫我簡單的復習了一下的,沒把它作為重點,以前的項目也用過,基本的sql語句我還是了解的,但是我擔心我說熟悉,他會深挖,所以我說不熟,然后他也沒問了;然后他又說,“我看你第二個項目是用java做的,我們研發部這邊也主要用java”,我本科的時候確實一直用java,不過研究生階段沒怎么用過了,有些api不太熟了,我就實話實說了,然后他又沒問什么了。我簡歷上寫了熟悉linux開發,然后他說能否說一下你熟悉的linux命令,我說了幾個,然后提到以前做項目的時候用crontab做過任務計劃,然后他抓住這一點,給了我一個任務,叫我寫出任務計劃,天啦,都幾年沒寫過了,我哪還寫的出來,命令里面幾個時間的順序都記不得了。最后,他說做個數學題吧,叫我求出1到1億的和,我拿到這個題就開始想應該是個什么算法,從頭至尾就是按照計算機的思維在解這個題,又是循環,又是遞歸,又是溢出,甚至在往位運算方面想,總之,最后沒給出他想要的結果。最后,聊了一下鏈表、hash相關的問題。面完了,我問他,我今天面試有些什么問題,方便我改進,他總結了幾點:1.項目經驗不足,意思就是我linux相關的開發工具不熟;2.數據庫設計模式這些基本的知識掌握的不好;3.數學比較弱,他說那個數學題高中生的水平都可以做出來。不過,最后他加了句,你數據結構還是學的比較好的,傷感。回來的路上,我又回憶了一下,他說那個數學題高中生都可以做出來,不會就是求和公式吧,暈,我把它想復雜了。
? ? ? ? ? 總結一下搜狐的面試,整體來說,面的東西都比較基礎,沒有什么太深的東西。不過畢竟是第一次面試,經驗不足。第一,我太過保守,沒有十足把握的,我都說不熟,給他得印象就是我不會,比如數據庫、設計模式、java;第二,把水想的太深,其實水并沒有那么深,比如那道數學題,我怎么就沒注意他說的是數學題,不是算法題啊;第三,不知道的東西千萬不要主動提,比如那個crontab,我以為我知道,但其實我已經忘了,悲催。
2.最爽的一戰——創新工場
? ? ? ? ??一面面試官是個年輕的小伙子,比我大不了多少。同樣先做自我介紹,然后聊了一下項目,然后他看我寫的了解hadoop,就問我多長時間能把hadoop的平臺搭起來,就是單機模式的,這個我之前搭過好幾次了,還寫了相關的技術博客,我說半個小時就可以搞定,他很滿意,說之前公司來了一個實習生,給他一天的時間,硬是沒有搭起來。然后叫我寫一個判斷單鏈表相交的代碼,這個我之前看過,很快就寫出來了。然后就是一個開放性的問題,因為我簡歷上寫了搜索引擎,所以他問我,搜索引擎的搜索框里搜索詞的提示和糾錯怎么實現的,這個我首先想到的就是trie樹,開放性問題嘛,當然方案越多越好,我又想到了貝葉斯分類。一面結束的時候,他說我挺不錯的,問我明天什么時候有時間,暈,都不用等通知,已經給我安排下一場面試了。二面主要圍繞兩個問題,一個是k-means聚類基本算法和優化,還有一個簡單的算法題,不記得了。二面完了,下午就收到了參加創新工場雙選會的通知。
? ? ? ? ? 創新工場,整個面下來都是很輕松的,可能是因為面的都是簡歷里面的內容,不管是hadoop還是搜索還是聚類。所以,面試也看運氣吧,碰到這樣的面試官,爽死了。
3.最累的一戰——微軟
? ? ? ? ??微軟不愧是軟件業的老大,他的面試給人的感覺就是正規嚴謹,面試官也是從頭到尾都很嚴肅,個人感覺從頭到尾大腦都是高負荷,不過也是最受益的一個。第一個面試官三十多歲,首先做了一下自我介紹,然后簡單的聊了一下hadoop,接著,就給我一段代碼,讓我指出其中的錯誤,我每找出一處,他都追問,“你看看還有沒有”,最后,我大概找出五處左右的錯誤,實在找不出來了,他就沒問了。然后,他說,我們來寫段代碼吧,叫我寫了段memcpy的代碼,這個代碼之前寫過,主要要注意拷貝邊界。寫完之后,他看了看,說,“你看看你的代碼有沒有什么問題”,天啦,我聽到這個,我當時就凌亂了,因為我確定這段代碼是沒問題的,因為之前寫過好幾次,最后他提示我,循環可能永遠不會停止,我才恍然。這個問題結束之后,最后的重頭戲來了。最后一個問題是,一輛車有無限大的油箱,圍繞一個環形跑道走,跑道上總共有k個加油站,每個加油站m升油,每兩個加油站之間的距離為a[i],先回答,這輛車能不能從某個加油站開始走完跑道,回到起點,如果能,從哪里開始。大致的問題就是這樣子的,具體的我記不清了,我最怕的就是這種題了,最開始,我題目都沒搞懂,他解釋了半天,我題目才搞懂。搞懂之后,先給他講思路,在他一次次修正我的思路并且確定思路是最優的之后,他說了句“問題聽懂了吧,OK,開始寫代碼吧,我出去坐坐,10分鐘之后進來”,然后他端著咖啡走出了房間,去外面大廳去了。再一次凌亂,什么都要寫代碼,這就是微軟。OK,沒辦法,寫唄。不過,好歹是寫完了,他進來看了之后,還是那句“你看看你的代碼有沒有什么問題”,我硬是沒看出來。后來,回來的路上我才想起來,忘了加判斷,先要判斷能走完,然后再找從哪里開始走才有意義,我忘判斷了。唉。
? ? ? ? ? ?第二個面試官大概40多歲,從頭到尾就面了一個問題,二叉樹的序列化存儲,也是先給他講思路,每提供一個思路,他都說能否繼續優化,直到最后時間復雜度和空間復雜度都達到了他的要求,然后就說“那好,你實現一下吧”,好吧,我已經習慣了,實現這個代碼花了我將近半個小時,他看了看,也是那句“你看看你的代碼有沒有什么問題”。怎么微軟的面試官都是一個模式。
? ? ? ? ?微軟面了兩個面試官,從下午2點面到4點多,整個的感覺就是累。感覺面試官就是一步步逼著你,直到發揮你最大的潛力,好幾次我都想說,這個我做不出來了,咱能不能換一個,沒好意思說,不過最后還是被他們逼著把題給做出來了,不過,我終究離他們的要求還是有一定距離。
4.最成功的一戰——360
? ? ? ? ??之所以說是最成功的一戰,是因為,360我是霸面的,而且面上了,我生平第一次霸面,也是最后一次霸面。那天面完百度,我沒有直接回學校,而是去了360面試的咖啡廳,我中午去的,我問門口的hr能不能霸面,hr說要等前面名單上的人都面完了之后才行,ok,我就等唄,誰叫我那么中意360呢。等到下午差不多5點,我這個崗位的人才面完,面試官終于空出來了,給了我一次面試機會,非常感謝360的hr和面試官,給我一次機會,這也說明360是個非常開放的公司。面試細節,我這邊就不提了,因為投的是數據挖掘工程師,所以面的主要是數據挖掘,推薦,算法相關的東西。
? ? ? ? ?最后,做個簡單的總結吧,通過前面的描述,我想大家也看出來了,我們這專業的想找個好工作完全靠技術。當然,首先要選好自己的職位,選擇最匹配自己的崗位,然后夯實自己的基礎。只要堅信自己的技術夠厲害,總會有適合自己的工作在那兒等著你。被拒很正常,被拒了不是說明你不夠優秀,只是不適合你而已。就像找對象,不找最好的,只找最合適的。
? ? ? ? ?Ok,就這些吧,希望大家看完不要覺得這是在浪費大家時間才好,希望還在找工作的童鞋們早日找到適合自己的工作。另外,學弟學妹們,你們也加油吧,期待明年戰場上你們的傳奇。
總結
以上是生活随笔為你收集整理的程序员找工作那点事儿的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 超低价DDR4内存有猫腻:时序这项重要参
- 下一篇: 马斯克称要裁员10% 知情人士:特斯拉中
