2019年演算法崗就業分享 | 總結篇

之前的一個分享,整理之後發出來,算是對自己大學生活的總結。
我今天的分享,標題叫做《恰當的時間,做恰當的事情》。
我會分成三個部分來介紹,個人的實習求職經歷,一些經驗以及附錄,附錄部分是供大家參考,不會展開講。
一、個人經歷
首先我想回顧一下自己的經歷。
大一
我和在座的很多人一樣,大學之前沒有接觸過程式設計,其實我最開始是讀了一本《喬布斯傳》,覺得計算機/網際網路很酷,大一的時候,就想開發一款iOS的APP,所以通過慕課學習了斯坦福的一門Swift課程(CS193p),不過一開始就遇到很大的困難,那個課每年都更新,我喜歡看最新的,最新的視訊沒有中文字幕,看得很痛苦,一邊查單詞一邊學。之後又補了Objective-C的教材,也是咬著牙看完,再接著就聯絡學院的老師,參與開發了一個實驗室iOS外包專案,那時候很多東西都不懂,好在有一位13級的學長,能力很強,也很有耐心,手把手教我如何debug,讓我有了一個很好的程式設計初體驗,我也一直很感激他。
軟工專業的同學,大二開學的那個暑假,會參加學院組織的暑假實訓,幾個人一起組隊完成一個專案。那時候我第一次作為隊長,和幾個朋友一起開發了一款基於Cocos2d-x的小遊戲,技術棧是C++。第一次獨立組隊做東西,經驗不足,所以一直到最後一天,還在熬夜改程式碼、除錯以及準備第二天的presentation。
感覺很刺激,那時候我第一次真切的感受到程式設計的魅力,當我玩著自己和隊友一起做出來的小遊戲,那也是我這個大學裡面最有成就感的一個專案。
大二
大二的時候開始做一些Java後臺的專案,然後參加花旗杯、intel杯等比賽,順勢開始接觸資料探勘、深度學習(也就是大家通常說的AI)。也正是這個時候,開始覺得哎好像我對這個很感興趣,不妨繼續做下去。
因為開始的比較倉促,也是緣起巧合,所以我深知自己基礎方面需要補足,有了之前的學習經歷,斯坦福的CS231n課程、Andrew Ng的課程學習起來更加得心應手,李航老師的《統計學習方法》、周志華老師的《機器學習》等,成為啟蒙讀物,《論語》中說:“學而時習之,不亦說乎?”,我現在也經常翻閱,開卷有益。
我注意到大家似乎已經對機器學習這塊有濃厚的興趣,個人覺得這是好事,但是大家千萬不要覺得跑幾個Demo就算入門了、看幾個網課就算了解,還有很長的一段路要走,當然,如果大家從本科開始學習,那麼等到研究生階段的時候,就會達到更好的水準。我個人不建議走演算法的同學本科直接就業。(真香現場)
其實等大家到了大二就會發現,身邊有些人已經成了大腿,而有些人則成了大腿掛件。到了畢業的時候,那些大腿更粗,掛件則往往掛斗掛不住了。
高中班主任最喜歡說“優秀是一種習慣”,優秀的人會更加優秀。季羨林小學初中的時候成績不錯,但只是班裡前幾名,有一次不小心考了甲等第一,當時的山大校長、教育廳長、前清狀元親筆寫了一副對聯和扇面獎給他,之後他的虛榮心就被抬起來了,從此認真準備考試,兩年之內,四次甲等第一,後來更是同時拿到北大和清華的錄取,說的便是優秀成為習慣的故事。
我們身邊的很多大腿也是一樣,可能一開始沒想做大腿,一時被人誇,之後也就只能對自己加強要求,繼續做大腿,不然就失了面子,因此硬著頭皮上。
大三
因為提前修了很多學分,所以大三的時候基本沒什麼課,也得益於我校開明的政策,所以開始準備去企業實習。
當時選擇了兩家企業,分別是北京的位元組跳動和深圳的騰訊微信,做的主要是機器學習方向。
在頭條實習很有感觸的一句話,這裡也分享給大家:“在頭條,沒人把你當做實習生,你也不要把自己當做實習生”,意思就是要時刻以正式員工的標準要求自己,不要因為自己是實習生就懈怠。
在頭條的日子真的很開心,每天很充實的學習新東西,工作上也有自己獨立負責的部分(雖然搞出過問題),週末偶爾和盆友一起逛吃逛吃。不過剛去的第一個月,因為天氣太乾,經常性流鼻血,止不住那種,那時候想啊是不是放棄算了,但後來還是咬咬牙堅持下來,好在第二個月也就適應了天氣問題。
後來去騰訊其實是個巧合,中間拿了實習offer,本來準備回校參加實訓,後來朋友提醒實習可以抵實訓,索性去了騰訊,就當體驗。不得不說,體驗確實不一樣,兩家差別極大的公司。這些在之前的部落格裡寫過一些,不再贅述。
對於騰訊的那段實習,其實要有一個很深的 反省 :心態一直沒有調整過來,總覺得做一些所謂粗活不能很好的提高,所以沒有盡全力去做,後來實習結束,非常後悔。很多雞湯文都說,年輕人要耐住性子從基礎的事情做起,把做基本的東西做好,道理我都懂,但只有經歷才體會深刻。
一定要擺正心態,紮紮實實做事情。
大四
今年9月初實習結束,開始參加秋招,有段時間特別痛苦,因為競爭壓力實在太大了!在微信實習的時候,我們組有十個實習生,有浙大、北大的好出身,也有發了一堆paper的學術達人,其餘除了我也全都是碩士。
總之從背景上來講,我絲毫不佔優,到了秋招的時候尤其明顯,很多演算法崗甚至直接寫學歷限研究生以上,本科被拒之門外。
一度也想到要放棄,坦白講我要開始並不是衝著所謂的演算法高薪,只是單純的感興趣,如果我能提前得知今天的校招情況,我說不定會選擇一個別的方向,也許會輕鬆許多。
因為一直在實習,所以秋招準備的比較晚,不過好在沒有放棄,結果也還不錯,後面陸續拿了幾家公司special offer,最後選了上海拼多多。原因也很簡單,面向薪資程式設計。
如果強行做一個總結的話,其實大一到大四大概是我理解的恰當時間做恰當事情,先打好基礎,然後確定好專業方向,接著去大廠實習豐富簡歷,最後秋招的時候好好總結沉澱。

有些同學,包括當年的我,覺得我既然選擇就業的話,那我就不需要care績點之類的東西,我可以很負責任的告訴大家,績點很重要!在面試的時候,如果你能拿到甲等及以上獎學金,是很好的加分項。多說一句,如果有人告訴你說什麼,大學不掛科就不完整之類的話,請務必拉黑他。
二、建議和體會
明確就業方向
如果準備本科就業的話,首先要明確自己未來從事什麼方向,這裡我根據今年秋招的情況列舉了5個大方向,分別是前端、移動端、演算法、大資料和其他(當然這裡指的是技術序列,也就是不包括產品、設計等)。從今年來看,移動端和後端仍然是需求最大的。
這麼多方向,我要選哪一個呢? 我的建議是興趣+時代,首先你要感興趣,知道自己感興趣的最佳辦法就是多嘗試,多嘗試幾個方向,你自然知道自己喜歡什麼了。還是就是要順應時代, “一個人的命運啊,當然要靠自我奮鬥,但是也要考慮到歷史的行程”。就像這幾年機器學習火熱,彷彿不知道點相關的東西就顯得落伍了。當然,順應潮流不是無腦從眾,一定從事這個方向,而是說你不能拒絕潮流。嘗試之後不喜歡,再試試別的也不無妨。
當然還有一個觀點是這樣,學到最後都是全棧,一些外企招聘尤其如此,多學一點,總歸是沒錯的。
結識優秀的人
還有就是建議大家多結識優秀的人,優秀的人能對你的決策起到積極的指導。包括學生、老師等,多和他們溝通,尋求他們的建議和指導。我個人很不喜歡圈子一說,但是往往你會發現,很多時候一些自然而然的圈子就會形成。 建議大家經常走出自己的小圈子,去看看外面更大的圈子。
說完大方向,我們再說說一件很實際的事情,我們如何學好一項技術?

我推薦的方法是基礎理論、動手、實際開發最後深入理解。
這裡也給大家分享一個關於碎片閱讀和體系化學習的觀點,來自微博上的愛可可老師,學東西最重要的是形成網路,我們很多時候喜歡看一些零散碎片化的東西,比如部落格、公眾號推文,但是這樣零散的閱讀,第一難以取捨,第二不知輕重緩急,最重要的是,沒有體系,碎片化的資訊無所依附,也就難以留存。所以最重要的是先形成體系,之後再通過碎片填充。
我們接著演算法這個方向,假設你選擇了演算法方向,而且你準備本科直接就業,那你可以做些什麼豐富你的履歷呢?
我建議從以下五個方面入手:

這裡我列舉了幾個演算法方向的,其餘方向也大同小異。這裡尤其圈出來的是第二項,coding能力這幾年越來越重要,推薦大家及早開始刷題,早上起來上課沒有精神,先刷一道LeetCode提提神。現在的面試套路是,你的學校決定你是不是過簡歷關,接著面試先寫題,題寫出來了再繼續聊,寫不出來就沙揚娜拉。
前面我們說了在校的一些準備,接著我們再說說畢業時的事情。
首先,首先應該恭喜大家選擇了一個非常不錯的專業,計算機專業這幾年正是風口上的豬,薪資一路走高。
華科有一個十幾個人的本科生團隊,平均年薪更是達到了40w,恐怖如斯。
也有一些觀點說,現在應屆生的年薪過高,對新人來說是一種捧殺,市場終將冷靜下來,但什麼時候冷靜,我們就不得而知了。
最後我們再回到分享的標題,恰當的時間,做恰當的事情,希望大家都能規劃好自己的大學生涯,目標清晰,不浪費時間,畢業的時候不要有後悔的事情。
之前大三也寫過一篇同樣型別的文章: 即將步入大三的學長給CS專業新生的一些建議 ,雖然幼稚還是列在這裡,算是有始有終。
