從數學專業到統計專業再到算法工程師,如何校招,如何跳槽,如何提升自己。

作爲一名算法工程師,我的經歷應該不算是從業人員中的大多數。而且我從業時間其實也還不是太長,但還是有一些心得想分享給和我相似經歷的童鞋們。

個人經歷

我大學往後的經歷大概是,本科專業是應用數學,輔修了心理學的雙學位(有畢業證,也有學位證,但還是有點困惑國家到底是否認可),研究生保研到本院的專碩,應用統計,學制是三年。畢業後校招特別特別幸運的被網易北京提前批錄用,也同期拿到了微店的提前批,崗位都是數據分析師,拿到口頭 offer 後就沒有面過其他公司了(~ ̄(OO) ̄)ブ,主要的原因只有一個,因爲我當時意識到自身能力和大環境的差距,以及面試真的很靠運氣和眼緣,爲了保住自己的自信心,就一直在學校默默等網易最終的 offer。後來在網易待了一年半左右,跳槽的時候面了幾家公司,最後都拿到了 offer,權衡了下,最後選擇了字節跳動,現在在字節也已經待夠一年啦。

學生時代

詳細來說說學生時代吧,因爲我的學校不在北上廣,所以直到碩士畢業前都對找工作這件事沒什麼概念,所以也沒有任何實習經驗 (ノへ ̄、),後來才發現這樣真的很喫虧,而且找工作的時候簡歷就不會好看。本科的時候基本上被數學分析,高等代數,泛函等等等折磨的夠嗆,後來到研究生學統計的時候就好了一些。因爲研究生時候的老闆年紀比較輕,接觸了很多比較新的領域,於是他就帶着我們走進了機器學習的大門,從 andrew ng 在 coursera 上的 machine learning 開始,組會也一直有討論 The Elements of Statistical Learning 這本書,而且我們真的討論的很細緻(這本書真的值得一推,校招時找到工作真的全靠它)。還有李航的那本統計學習基礎也很推。所以在研究生期間,我們學了大量的理論知識,但編程卻學的很少,連 linux 都用的很少。本科的時候學過 c++,當時真的不喜歡 ︿( ̄︶ ̄)︿,連考試都是勉強過,沒想到後面。開始學編程的契機,其實也不是因爲要找工作,而是身邊有已經就業的朋友強推 python 給我,於是我就去學了學。自學 python 其實不難,現在網上能找到各種各樣的課程,尤其是那種不用配環境,互動的課程,學起來真的很輕鬆,但是難的是堅持。
現在網絡這麼發達,應該沒辦法找理由說沒有資源學習了,所以不管你在哪裏上學,不管學校如何,都不是問題~

簡歷

之所以先寫簡歷的部分,是因爲不管是校招還是後續跳槽的面試,簡歷都是重中之重。面試官們會通過簡歷來建立對你的第一印象,更有甚者它會直接決定是否會有後續的面試。
首先技術相關的工作,我覺得簡歷應該簡單大方,不要花哨,我一般會選擇用 latex 來做簡歷。
其次,簡歷內容應該重點明確,把自己最重要,最熟悉的項目放在前面,用簡短清晰的語句來描述,不要大段大段的文字。
最後,我習慣對我已經寫好的簡歷建立一個類似思維導圖的東西,這樣能幫我更好整理思路。比如如果第一個項目用到了樹相關的算法,我就會以此展開來複習所有與樹相關的知識點,不要放過任何細節。
加分項,簡歷中最加分的就是附上自己的技術博客或者 github,尤其是你的 github 有很多 star 的時候。

校招面試

考慮到之前並沒有任何實習經驗,而且 python 還是自學的,所以做了一個蘭州二手房的分析的項目,如果你也像我一樣,並沒有實習經驗或者實習經驗很少,一定要自己獨立完成一些感興趣的項目,github 上有很多相關的項目可供參考。項目不用太複雜,重點是遇到問題後解決問題的思路完成度
在網易筆試通過之後,我即將面對人生中第一個和工作相關的面試,但大腦中對整個流程卻一片空白。於是我當機立斷在前往北京之前,投了幾個實習,想先了解下互聯網行業面試大概是什麼樣的。這幾個實習面試對我的幫助很大,首先了解了互聯網面試的流程,其次認識到自己的優勢和劣勢。我的優勢在於理科出生,理論比較好,機器學習算法細節瞭解比較充分,而劣勢也相當明顯,沒有實習經驗,對數據結構瞭解幾乎爲 0,編程能力較弱。這也是我覺得很重要的一點,要認清自己,不能盲目自信,也不能誇張認爲自己什麼都不行。面試過程中要充分放大自己的優勢,但也要承認自己的劣勢,並給出合理的解決方法。

工作中提升自己

初入團隊,領導和同事對你能力的認知是一片空白,這時候最重要的獲得別人的認可,而認可是一個累計的過程,即將做的每一個項目都是獲得別人認可的機會,所以要好好把握,大概三四個項目後,leader 和同事就會對你形成固有印象。
工作中負責,我覺得是一個最重要的品質。而負責是基於主動思考的,當接到一個項目時,你是如何對待它,只做一個執行者還是會主動思考,提出自己的想法(即使想法並不是十分完善)。當你主動思考了,策略效果可能會更好,畢竟你對這個項目最熟悉,能看到,拿到第一手的數據。當你對代碼質量,代碼邏輯負責的時候,也會少很多後續可能需要"回鍋" debug 的問題。
還有一個比較重要的品質是主動學習,互聯網行業迭代更新很快,要保持學習才能跟上大時代。一方面是工作中的主動學習,趁着工作的機會學習自己之前並不瞭解的方面,比如之前都用 map reduce,而組裏都用 spark,那就剛好學習 spark,組裏的每個同事都是最好的老師;另一方面是工作之餘,很多童鞋平時工作真的很忙,但是刷微博的時候看看大佬們分享自己領域的最新的進展也是好的。
工作之餘,不要忘記你在面試時發現自己的弱項,畢竟找工作,在現在這個社會,在互聯網行業並不是一勞永逸的事情。我自己的弱項,就像前面所說,數據結構知識幾乎沒有,所以有空的時候我也會去刷刷 leetcode,因爲現階段目的性並不是很強,也就是說並不是爲了找工作而瘋狂刷題,而只是爲了提升自己,所以整個過程也就更愉悅。準備一定要做在前面,不要到了時間點匆匆忙忙。

跳槽面試

說到這其實跳槽面試就沒有什麼好說的了,面試官們具體問了什麼,我也記不清了。而且每個面試官風格都不一樣,命中同一個面試官的可能性微乎其微。
推薦給大家這本書 軟技能:代碼之外的生存指南
這裏也提到了面試的一些準備技巧,大家也可以借鑑學習。

最後歡迎大家來我的公衆號,諮詢或者找我玩,搜索:阿塔聊算法
目前有一個論文共讀的項目,大家有什麼覺得比較新穎或者感覺讀起來有難度的論文可以發消息給我,我會選擇幾篇比較火的,和大家一起閱讀,最後形成文檔~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章