一年半時間如何拿到演算法offer?

今年研一,感覺自己什麼也不會,導師完全放養,2個月沒見過面,從入學到現在一個學期快結束了總共見了5次面,沒有項目,沒有指導,哎

想做機器學習方面的工作,距離明年秋招還有一年半,目前在看C++primer,然後學一學數據結構和演算法,同時再學校李航的《統計學習方法》,但是感覺很吃力;另外面試肯定需要介紹項目經歷,這方面又太欠缺,不知如何是好,輾轉反側,徹夜難眠。

求助各位大佬,我該如何準備,才能拿到一個演算法offer?


水得很,主要是背誦,不會寫快排會背kkt條件的演算法工程師多的是,想找工作就好好背書,把李航那本書像背政治那樣背下來,把常見數據結構背下來,想學習真才實學就去學cs229,cs231n,cs224n,cs294,cs246,這些公開課就夠學一年的,然後你會發現內功不足,估計還得補mit的6004,6828,以及mit老爺子的線性代數,boyd的優化。最後得出結論,還是背書吧,像背政治一樣背,也就差不多了,真是水得很。一線互聯網技術面,問項目千篇一律,問演算法大多數寫不出來,問概念倒背如流,我也搞不清要問啥。利益相關匿了。


導師並非11,我挺尊敬我導師的,也就請大家不要猜了(笑)

至於機器學習演算法offer這塊,我個人認為這兩年是最好拿offer的時候,競爭相對較小,公司也不想放棄相關人才,市場泡沫還並不顯著。

過幾年就不好說啦,所以選擇還是要慎重(逃)

============================

Top2,力學專業,碩士研究生,導師放養3年,第三年導師還去了南科大,自己找了個導師勉強畢業。

畢業後接觸深度學習,半年時間,現在拿到了二線視覺演算法工程師30W/Y,新加坡NCS 5K/M.

就這半年我的工作狀態,996都不足以形容,9 12 7 比較合適。

==============================

當然,努力不光是為了錢,更因為熱愛。

好了,正式回答一下題主的問題。

研一,感覺自己什麼都不會,再正常不過,只要你不是本科很牛的人,上了研究生自然會感覺什麼都不會,因為根本就沒有接觸過項目。

想做機器學習方向,但是又感覺吃力。不知道題主本來是什麼專業,想做機器學習的話建議把《矩陣分析》看懂,多花點時間在這個上面,看懂的意思,簡單點就是能夠理解這些理論改怎麼用。然後是《概率與統計》,了解貝葉斯,分布是什麼。最後看《模式識別》,知道什麼是線性分類和非線性分類,怎麼提取特徵。大概有了這些知識你再去學什麼公開課就簡單多了,基本的機器學習演算法,你就算是沒聽過,看個幾天也能懂了。當然這只是理論基礎,確保你能往後走得更遠。

編程就不要怕困難了,多碼多練,有個幾次調bug調幾天的經歷其實也差不多了。如果你計算機演算法基礎不好的話還需要看《演算法導論》,刷刷leetcode。

有了這些你基本上可以去實習了,沒有一點問題。

總之1年半,只要你不亂用,是肯定足夠了。

。。。

我說的這些是你怎麼從書本中學習,如果你能發現身邊的大腿並果斷抱上去,能夠事半功倍

===============================

可能我說的不足以讓你快速拿到一份好看的offer,但是卻能讓你在下一次AI低潮期保證全身而退。


修改記錄:

2018-1-11

2h。

還有很多可以展開說的模塊:該問題回答框架(已完成),學習過的網課(詳細課表在知乎存在過一段時間,現已刪,其他平台沒有刪),我當時具備的能力技能(幾乎已完成),我認為還需要的能力技能(與我個人的規劃有關),簡曆書寫,自我介紹,面試,提問題,談待遇,offer選擇。

花費時間總計:9.5h,獲得贊數:64,被收藏:87,感謝:10多個。

贊, 是不是表示 具有同等經歷的人,或者說已經經歷過的人的認同?還是表示 你寫的內容我認為很贊,我就給你贊? 我有64個贊,說明有64個人和我具有相同的經歷?

感謝, 是不是表示 還沒有經歷過的人 看到這篇文章 主觀覺得對自己有用,所以就感謝答主的付出,感謝答主的回答?

收藏, 應該表示 這篇文章有用。

目前就先這樣吧,希望這篇文章能幫助一些人。

修改如下:

  • 1. 增加 我當時具備的能力技能,也就是我通過學習網課以後獲得的能力
  • 2. 修改 修改記錄 的格式
  • 3. 增加 學習歷程 的簡要概括

2018-1-9

1min。修改如下:

  • 1. 刪除 學習歷程 部分課程信息

2018-1-8

3.5h。刪刪改改,還是不滿意。先這樣吧。修改如下:

  • 1. 增加 學習歷程 的概括,時間方面。
  • 2. 增加 求職歷程 部分正文
  • 3. 增加 學習歷程 部分課程信息
  • 4. 增加 Ng 深度學習系列課程 Honor code 描述

2018-1-5

這個補充快寫了2個小時了,都到1月6日了,哎。。我雖然沒有刪答案,但是過程中刪了很多文字。。就這樣吧,周末還有學習計劃。修改如下:

  • 1. 增加前言,學習歷程,求職歷程,offer選擇 四個模塊的標題

2018-1-4

用時約1h。寫不好或者多愁善感了就想刪,寫好了擔心太耗時間,擔心自己描述不清楚誤導別人。發個微信朋友圈都得糾結半小時,所以我把微信朋友圈刪了。。隨緣吧。。。做了以下修改補充。

  • 1. 日期錯誤,修改日期。應為2016年。 感謝 哇*咔 的提醒。
  • 2. 待遇加單位: 每年。
  • 3. 國企更改為科研院所。
  • 4. 補充我的方法,增加同學的方法,師兄的方法。

2018-1-3

用時約1h。先寫這麼多,寫的太簡要了。。以後看情況考慮是否繼續寫,或者是否刪答案。。


我是2018應屆碩士,非cs科班,我準備的是 機器學習演算法工程師。

我從2016年7月初左右開始準備,到現在2018年1月初,應該差不多一年半,期間收到了若干offer,某中型互聯網企業 offer 30-50 每年,若干個某小型創業公司 offer 24 每年,某科研院所 offer 保證給戶口。

以上是準備結果,應該可以回答這個問題。

現在不打算寫個詳細的回答,只是簡要的回答一下。

第一,從求職網站尋找你想做的職位,看看職位需求是什麼。

第二,你要知道招聘流程是什麼。

第三,根據流程有針對的準備。

第四,準備簡歷。

第五,投簡歷。

第六,面試,得到面試經驗。

你需要的硬體有:

cs的演算法,機器學習的演算法,項目經歷。

我的方法是:

通過網課迅速建立機器學習的知識框架,通過網課上的作業強化理論轉化實踐的能力。通過網課的準備,cs的演算法我準備的一般,機器學習演算法準備的很充足,項目經歷這塊是網課的項目經歷。

我同學的方法是:

研二去實習,有轉正機會,好像需要申請,她沒申請,聽她說轉正難度不大。轉正的公司是國內頂尖的互聯網公司其中一家。同學搞數據挖掘的。

我大牛師兄的方法:

向領導訴說一下,領導發動人脈內推。師兄在第一波內推中,就找到比較心儀的很多公司。內推的公司都是國內頂尖的互聯網公司。師兄不是搞演算法的。


前言:

主要介紹我選擇機器學習之前的經歷

以下正文:

2016年6月,受大神師兄影響,想從事全棧工程師。先在 freecodecamp 學習,後7月份在 Udacity 學習FEND。鏈接如下。

SSQonline:每天花費八小時或以上,在 15 - 20 天內能學會或完成的事有哪些?

8月初搞定FEND,此時心裡對前端工程師的工作已經有了大致的印象。7月份主要精力在FEND,其實我還在學習 Ng 在 Coursera 的機器學習課程,這門課讓我喜歡上了機器學習這個方向。


學習歷程:

主要介紹我的網課學習歷程,我認為的機器學習演算法工程師需要的技能,以及我學習過的、正在學習的、將要學習的網課與技能。我之前在知乎回答過一個問題,有過提及一部分,現在我已經把內容刪了,原鏈接如下

SSQonline:Coursera 上有哪些課程值得推薦?

課程筆記與代碼 在我的 Github 和個人博客中有詳細說到,因為有很多私人信息,所以此處不願意貼鏈接,如果有熟人認出我了,也希望請不要指出來。

以下正文:

概括:

從2016年7月到2017年12月初,之間一直通過網課學習機器學習演算法(主要),cs演算法;通過網課的項目作業鍛煉自己的代碼能力。時間有限,我的打算是:上網課,打比賽(kaggle),去實習。最終網課沒有全部上完,比賽剛準備打(還沒打),實習還沒去就收到了offer。

時間花費方面:

周一到周五晚上,周末2天,寒假暑假,過年停了一星期,幾乎不間斷。我記得大體是這樣的。

網課內容方面:(先列部分目錄,以後有時間了再)

詳細內容知乎已刪,目前無。其他平台沒有刪。

簡要來說,把有名的機器學習演算法相關的網課(大學網路公開課,平台上的網課)學一遍,一門一門的學,學玩一門課估計你就想著怎麼規劃以後的路了。光想沒用。

我當時具備的能力技能:

  • 說一下求職的過程,自己當時的能力,以及在自我介紹時用到的表達。
  • 這部分裡面絕大部分能力都是 我通過網課學習之後獲得的能力

以下正文:

  • 關鍵詞:熟悉,了解,原理,應用。
  • 熟悉原理與應用:熟悉原理,表示可以手寫演算法推導;熟悉應用,表示可以不調用庫手寫代碼把模型用計算機語言實現,應用到具體案例並且得到還可以的結果,有 小項目應用經歷 或 有應用經歷。

我當時的能力是:

1. 機器學習演算法:

  • 比較熟悉原理與應用的有 線性回歸(L1,L2),邏輯回歸,神經網路(碩士有修過),決策樹,adaboost,K-NN,K-D tree, locality sensitive hashing(最基本的),Kmeans,GMM,Gradient descent(Batch,mini-batch,stochastic),優化(momentum,RMSprop,adam)
  • 比較熟悉應用的模型有:CNN,PCA(課題用到)
  • 比較了解:SVM(課題用到,推導就算了),ICA(課題用到), 強化學習(有Q-learning應用小項目經驗),文本檢索與搜索引擎
  • 了解 Tensorflow,有小項目經驗;LDA;

2. CS演算法,數據結構能力

  • 某斯坦福演算法課學了一遍,做了一遍作業
  • LeetCode 幾乎沒怎麼刷(這點不要學我,有時間還是要刷的)

3. 編程語言

  • 比較熟練 Python(以上模型都是用python實現的)
  • C++/ C 很久不用,比較生疏(本科有修過)

4. 以上對自己的能力判定比較主觀,所以會附加我的

  • github網址,
  • 博客網址,
  • 領英網址

附:

  • 一般網上常見的機器學習演算法相關的面試問題,應該是大部分,我都能回答出來,具體問題有哪些,現在不寫。
  • 我也有一些問題回答不上來,應該是小部分,或者很少。現在不寫。
  • 但是進國內頂級的互聯網公司 這些還不夠。個人猜測的原因現在不寫。

求職歷程:

主要介紹我求職的過程,就是前文的第一第二到第六。

以下正文:

第一,從求職網站尋找你想做的職位,看看職位需求是什麼。

我從2017年6月初開始準備簡歷,8月中旬開始準備求職,職位名稱關鍵字是 機器學習演算法工程師。

求職,我首選官網,然後雙選會,最後才是第三方;第三方的我試過的網站有拉勾,智聯,大街,boss直聘。

  • 拉勾直接進微信群,然後發招聘消息,發內推消息,非常靠譜;
  • 智聯,沒怎麼用到;
  • 大街,怎麼說呢,隨便一個工作都來找你,教師,銷售,hr,手機簡訊電腦郵件轟炸,作用對我來說不大;
  • boss直聘,沒怎麼用到。

最後拿到offer,主要通過雙選會,拉勾微信群內推,其他微信群(特定企業或單位)。

職位需求:

找個招聘網站,搜職位名稱,就可以看到職位描述,根據職位描述,不斷修改自己的學習計劃,不斷調整自己的能力與公司的需求相匹配。

機器學習演算法工程師 有做廣告的,推薦系統,文本,搜索, 有深度學習的(語音,NLP,計算機視覺) 有強化學習的 還有直接說模型的。看你想做哪個,適合哪個。

第二,你要知道招聘流程是什麼。

  • 投簡歷,筆試,面試,offer
  • 投簡歷,內推面試,offer

第三,根據流程有針對的準備。

投簡歷,

下面再說。

筆試,

我根據我的經驗簡單說一下,具體詳細的網上有很多。

互聯網公司大部分都是上機筆試;筆試的方式有的是牛客網,賽碼網,公司自己找的網;筆試的題目每個公司都不一樣。

筆試一般分幾部分,1. 選擇: 考的有操作系統,計算機網路,(微分,矩陣),概率,cs演算法,機器學習演算法,數據結構。2. 編程(考cs演算法)。(3. 問答題。4. 設計題)。

其中與機器學習演算法有關的筆試題目佔比具體情況分公司,有的很小,有的比較大,但都沒超過50%(不包括深度學習演算法工程師)。

面試,

下面說。

第四,準備簡歷。

我根據我的經驗簡單說一下,具體詳細的網上有很多。

先寫一個模板,然後最好再根據不同公司企業要求有針對的修改。

我是這麼排版的,個人基本信息,教育背景,技能,項目經歷,證書

第五,投簡歷。

如果是郵箱投遞,郵件主題 姓名學校崗位學位;正文 簡單的自我介紹 以及展示與貴公司的匹配程度,怎麼展示?可以把職位需求用淺灰色字體表示,自己能力達標的用黑色字體表示。簡歷名稱 姓名學校崗位學位

第六,面試,得到面試經驗。

我遇到的有是2,3,4面;有技術面,hr面,CEO面。

面試時間,快的40min,慢的4小時。

面試內容,cs演算法,機器學習演算法,項目經歷,自我介紹內容,簡歷內容,公司出題。

面試一開始一般都會有一個自我介紹。說什麼,個人基本信息,能力,潛力。個人基本能力就是姓名學校學位以及其他突出點;能力就是你會什麼,做過什麼;潛力我是給面試官說我的規劃目標,我完成了多少,我到哪一步了,接下來怎麼做。

自我介紹完就是面試開始問問題了。

最後面試官會問你,你有什麼問題嗎?

技術方向 我一般會問你們主要用什麼技術,你們有做XX方向的打算嗎; hr方向 就問所有的待遇。


offer選擇:

主要介紹我收到offer郵件之後,對於不同offer的選擇。

以下正文:

目前無。


希望我的經歷可以給樓主點幫助。

我本科演算法功底還算可以,但是沒接觸過機器學習,研一開始接觸,自學python,研一很忙,幾乎都是擠出時間去自學,主要學了python(處理數據很重要),西瓜書、李航老師的統計學習方法,kaggle練過題,吳恩達老師的那個公開課很有名氣,講的很基礎也很好,但是我嫌太浪費時間就沒看完,研一時間很緊。

但是我自己認為我的實力依然很菜(也的確如此)。

研二導師放養,出來再魔都某二線互聯網公司實習,可以說這讓我演算法能力與工程能力的巨大提升,真正工業界處理演算法和數據,和自己單機琢磨,完全是兩個領域。

碼了那麼多字,其實就可以總結為兩個:「實習」


羨慕放養的導師+1

建議出去實習+1


為什麼這麼多都說要出去實習的呀,我導師說我在一群博士裡面只能打打醬油,其實老實說導師給的項目質量都不錯,一個月還發幾千塊,美滋滋,不過我還是不相信我怎麼可能只能打醬油呢

注:方向CV


演算法的方向我不是很熟悉,不敢亂給建議。但是我對所有參加校招的人的建議都是一樣的,打好你這個方向的基本功,刷leetcode、劍指等等題,然後研二去找一個實習,這樣你的校招就已經成功了一大半,不說收割,起碼不愁找不到工作。

至於演算法方向怎麼學,知乎也好,谷歌也好,大牛不要太多,就不班門弄斧了。

最後,作為一個非科班出身順利趟過校招的前輩,給你打打氣也算是提個醒,這行就是這樣,不要期待誰喂飯到你嘴邊告訴你怎麼學,所有坑都要是自己趟過來,所有學習方法都要是自己總結出來,這樣你才能在這日新月異變化的互聯網行業樹立根基。不用輾轉反側,把握當下,不要浪費時間,你完全來得及。


我是2018應屆小碩,拿了兩個二線互聯網30w+演算法offer

找演算法工作基本的要求:

基本的硬體條件,雙985/211最好

基本的編程能力,leecode/劍指能刷一下最好

基本的演算法知識,CV/ML/DL最新演算法熟知最好

特別重要的加分項:

實習,互聯網大廠或者CV獨角獸演算法實習

項目,前沿方向的項目最好,自動駕駛/人臉識別這些

paper,有cv、ml頂會當然隨便找工作了

競賽經歷,出色的code能力


去實習去實習去實習,重要的事情說三遍

拿offer難度從低到高

實習轉正

實習後應聘其他公司 內推面試

在校搞研究,發頂級期刊 參加筆試面試


導師放養其實也挺好,你可以按照自己計劃準備,這比拖後腿的老師強多了。


先回答問題:

  1. 機器學習方面:之前有回答過相關的問題:機器學習該怎麼入門? - 武俠超人的回答 - 知乎
  2. 刷題:LeetCode和各種經典的書籍反覆刷,多多總結最優解(刷題盡量用C,C++或JAVA)
  3. 面試相關:主要是臨場表現、表達能力、情商等等,多看看面經多多積累實際經驗。多通過合適途徑找內推,少隨便內推,最好不筆試

1和2在國內公司演算法崗面試這兩個分別佔據30%和30%,3佔據20%,最後20%是運氣。

拿到演算法offer並不難,offer之間千差萬別,好公司核心部門核心組的最高級別offer才應該是對自己最高的目標

PS:另外,很疑惑的是題主為啥會覺得老師放養不好呢?我反而覺得如果老師管的很嚴格找不到好工作是有情可原,老師放養再找不到好的演算法工作真只能是說自己的問題了,我身邊的人都多麼地希望老師能放養!


羨慕放養的導師,我導師直接說活不幹完不放假的,實習什麼的想都別想!


導師完全放養簡直完美啊,想學什麼想去哪實習完全沒有阻礙,你還輾轉反側啥。。不能理解


找工作碰運氣。當然也和你的學校有關係。別的因素就不那麼重要了,也就是起到錦上添花的作用。


超級羨慕放養的導師。。

有個比賽叫做kaggle可以試著打打看


有相關題庫,題目類型也就那些,練一練就會了。


要麼發文,要麼實習


如果題主有充裕的時間不去搞科研或者項目的話,依我看演算法的話還是得刷題才行 既然答主要拿offer,那就去刷各大公司的offer的題啦,學習各種演算法並在刷題中實踐。不知道樓主本科搞過ACM么,一年半時間在ACM中拿個牌是完全有可能的。同理,演算法能力在一年半中提升也是有可能的,當然這階段可能項目經驗會少很多。這裡有個演算法面試的大牛的bolg,推薦答主去看看:http://wdxtub.com/2016/01/22/programmer-startline-1/。這些基本都是面試中必考的了,希望樓主學習學習


推薦閱讀:

學習演算法時,思考和看答案的界限在哪裡,我很想知道!是要一直思考出問題的答案還是看答案學習方法和思想?
演算法工程師大致是做什麼的?
ACM/TOPCODER類程序設計能力對於想成為機器學習、數據挖掘類演算法工程師的學生來說的意義是什麼?
演算法工程師有哪些發展前景?
招行信用卡中心研發offer與大眾點評網研發工程師offer 怎麼選?

TAG:面試 | 演算法 | 機器學習 | 演算法工程師 | 秋招 |