你想進什麼公司,和你讀什麼計算機方向,關係不是很大。只要是理工科的學生,面對技術崗位,其實機會是差很少的。html
至於你想什麼職位,那顯然和你的專業/方向關係較大,好比說不少大數據職位,就明確表示要求你DM/ML/NLP/IR背景,可是這也只是說這些學生可能更有優點些,事實上,數學和統計學出身的,不少搞這個很是牛逼的。linux
因此,不要問選什麼導師,選什麼方向;也不要問個人實驗室很水老闆很菜我還能找到好工做嗎?你要問的是:我想畢業去互聯
網公司,我讀研的這幾年是應該打醬油呢,仍是打地溝油?git
想找一個好的互聯網技術類、研發類工做,無非就是如下4點,你任選一點,作好了,都是有利的,哪4點?github
語言層面面試
算法層面redis
項目層面算法
專業層面編程
具體分析以下:設計模式
語言層面網絡
你是想搞C++仍是Java?選定一門語言後,多看一些這方面的書。
C++,不用說了,《Effective C++》,《More Effective C++》,《Inside The C++ Object Model》等等。
Java,最好能看點虛擬機相關的。尤爲是Java虛擬機的內存管理。以及多線程、線程池、設計模式等。
問題來了:學C++好仍是學Java好呢?語言爭論天天都在發生,真的好無聊。建議按照方向和興趣來選擇,不靠譜的說:
若是是想作大型遊戲開發、底層研發、系統研發、驅動研發等等,就選用C/C++。
若是是想作網站開發、網絡研發、上層開發、Android開發等等,就選用Java。
順便說一下,有空能夠學學Python。
算法層面
學好算法。這個有兩條路,最好是並行,那就是看書和作題。
看書的話,主要有《算法導論》、《算法》(Robert Sedgewick著)、《算法競賽入門經典》、《挑戰程序設計競賽》
找一本認真看,認真思考。證實過程能夠不看,可是算法思想最好能懂,以及實現,最好能在紙張上寫出來。複雜度總要知道吧?
研一的時候,我就把算法導論上的不少算法,都本身親自coding了下。
特別複雜的數據結構,好比紅黑樹、B樹,沒空就別搞了。互聯網面試通常都不要求的。
主要是排序、查找、簡單DP、貪心、圖算法和搜索。 根據身邊同窗的面試經驗,二分搜索和快速排序,是面試常備了。看書的時候,若是有時間,能夠思考幾個問題:
這個算法的時間空間複雜度,各是多少?如何分析?
工程實現裏,都有哪些trick?如何加速?
這個算法可能用在哪些方面?有哪些應用?你好比說吧,求交集的算法,就普遍用在倒排索引、新浪微博共同關注、計算Jaccard係數等等上。
除了看書,還有就是很重要的:刷題啦。主要有poj,zoj等。找一個網站,認真刷一些題目,踏踏實實的,別浮躁。
項目層面
若是實驗室比較牛,基本上忙項目就足夠累死累活了;不過作了相對給力的項目,對於找工做,仍是有很大幫助的。基本上不用怎麼愁了。
若是老闆這兒沒項目呢?
若是實驗室比較水,那就儘可能去實習。大公司的實習經驗很能給簡歷加分。若是老闆不讓你出去實習。ok,既然實驗室很水,說明自由時間比較多,那仍是能夠幹不少事。好比說,github上就有不少開源項目,你能夠選擇一兩個著名的,閱讀源碼,而後嘗試本身也參與進去。
說幾個我比較感興趣的開源項目吧:redis,spark。
專業層面
你對數據挖掘很精通,你對推薦系統很熟悉。你在NIPS,SIGIR上發表論文無數;你是百度推薦大賽,阿里巴巴大數據比賽冠軍常客。
也就是說,除了嘗試發頂會論文,還能夠參加各類比賽。本專業本領域裏都有什麼比賽能夠參加呢?搜一下微博或者知乎,或者問下師兄師姐,不就知道了?
專業層面,能夠作的東西很是多。好比,你對數據挖掘很感興趣,那麼數據挖掘中的常見模型,咱們瞭解多少?機器學習,咱們掌握到什麼程度了?舉個例子:
SVM和logistic regression這兩種model,有什麼特色?各自的適用場合?
feature selection的經常使用方法有哪些?爲何lasso能夠做爲feature selection?
Adaboosting爲何不容易over-fitting?你能不能從statistical view來解釋解釋?
哦,你和我說,你不是搞學術研究,你反感Learning Theory,你說你是一個工程師,那你寫了多少代碼?
scikit-learn,weka,以及spark,你會用哪一個工具?(熟悉一種工具)
你有本身下載一些數據集跑跑實驗嗎?你有參加一些大數據相關的競賽嗎?(動手實驗/參加比賽)
專業層面,能作的,要作的,還有不少。
哦,最好熟悉下linux的基本使用。
最後的話
若是能在讀研期間作到這裏的一點或者幾點,到時候甚至不須要翻《編程之美》或者leetcode就毫無壓力啦。 最後說幾點我的感覺。
算法牛,項目牛,長得又帥,又精通不少語言,這種人,是很少見的。
也就是說,你想拿一個好offer,通常只要有一兩點突出,就能夠了。
互聯網面試,除了個別公司個別面試官,通常都是要考查(考查?考察?這兩個詞有什麼區別?考察是調研、研究、分析的意思)算法的。你研一的時候準備,看書作題,總比研三的時候抱佛腳來的好吧?
何況,算法的學習,也不只僅是爲了面試吧?多是受益終身的。或者,吹牛皮裝逼做爲談資,也是能夠的。
別輕易說我就要去某某公司。到時候,你會發現,選擇比你想象的多。
也有可能比你想象的還少,爲何?
就看你有沒有作到我上面說的這些了。
原文地址:http://developer.51cto.com/art/201511/497862.htm