一年半時間如何拿到演算法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難度從低到高
實習轉正
實習後應聘其他公司 內推面試
在校搞研究,發頂級期刊 參加筆試面試
導師放養其實也挺好,你可以按照自己計劃準備,這比拖後腿的老師強多了。
先回答問題:
- 機器學習方面:之前有回答過相關的問題:機器學習該怎麼入門? - 武俠超人的回答 - 知乎
- 刷題:LeetCode和各種經典的書籍反覆刷,多多總結最優解(刷題盡量用C,C++或JAVA)
- 面試相關:主要是臨場表現、表達能力、情商等等,多看看面經多多積累實際經驗。多通過合適途徑找內推,少隨便內推,最好不筆試
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 怎麼選?