統計學出身但編程一般,該選擇數據分析還是挖掘算法?

0x00 前言

本文的話題來自一名應屆生關於畢業後職業發展方向的選擇。

在職業選擇上,數據分析和算法工程師是很多小夥伴都會糾結選擇的地方,本文正好對該問題進行了討論,也希望給更多的小夥伴以參考。

0x01 職業困惑

問題

統計學出身但編程不強的碩士應屆生,畢業了該選擇數據分析還是挖掘算法路徑?

問題描述

各位前輩們好,我是國內某985的研二學生,還有一年畢業,研究生階段主要跟導師做數據算法的研究,發過一篇會議論文,還有篇算法相關的畢業論文正在寫。明年就畢業了,周圍不少也在陸續進行暑期實習,但是感覺拿到算法工程師崗位實習的同學還是以本科學CS的爲主,而我從本科到研究生都是統計學,本科還輔修了經濟學學位,編程開發水平真的很一般,SQL和Python這類日常用的工具使用沒問題,但距離編程開發、數據結構、代碼素養之類還有很大的距離。因此想問大家對於我這樣情況的學生未來職業選擇的問題:

  1. 以我這樣統計出身但編程不強的背景,是否在應聘數據挖掘/算法工程師的崗位時有競爭力?

  2. 我也不排斥做數據分析師,也覺得靠近商業、改進業務也很有趣。但是現在數據分析崗位的門檻比較低,算法用的並不多,待遇總體上也比做算法低很多,如果選擇做數據分析我這些年爲算法做的努力是不是白費了呢?

0x02 大家的討論

討論1

非CS本科運氣好轉做了偏算法相關研發,說實話確實工程能力,算法結構有很大的欠缺,在實際項目落地的時候就經常考慮不足,寫的代碼思路和速度也能明顯感覺到自己和科班的差距,經常打擊自信心,但是主要還是算法崗,所以我也勉強湊合可以用,遇到啥學啥嘍。我覺得其實最應該考慮好自己興趣和擅長點,一個事自己有興趣且能長久堅持獲得持續成就感才能停過長久工作生涯哇。

討論2

一般我都是建議先做難的崗位。算法對於學歷背景和編程能力的要求是要高於數倉和數分的。其實上週我的實習生也問了我這個問題,他想做數據挖掘,我也鼓勵他做數據挖掘,先嚐試去做更難的、技術壁壘更高的事情,之後如果想做數分,思路也會開闊很多,反之則很難:我很少看到數倉數分能轉算法的,而且年紀越大越不可能。

這個圈子裏算法的地位也會高於數分和數倉,我們組是數分數倉工程混合的,算法地位最高,其他的都是給他打下手,基本在技術層面沒有什麼話語權。另外一個就是待遇,一個985研究生剛畢業的算法工程師,可能比那些所謂高級的數分和數倉的工作還高。

另外從思考問題的角度來講,數倉和數分很多時間只能思考一些線性的問題,做統計還行,做預測啥的就有點心虛了。長時間只會寫SQL的人思維會被禁錮得很厲害,多擼些代碼會對思維的訓練有幫助。

討論3

先面算法,如果因爲工程能力被拒了就轉數分,理論上當然是能做算法就做算法,不能做算法就做數分啦,至於編程能力的問題,這可能更多的是面試官的選擇問題,即他是否想要一個背景好但是工程能力不強的人。

不過現在算法的門檻很高,要是不是水平很高,還是比較勸退,因爲算法模型的優化效果怎麼樣是不可控的,可能如果一個季度試了各種方法都沒效果,老闆就認爲你沒有產出。

討論4

cs好說,工具而已,私下練習就能解決啦。主要是樓主統計學本碩直接去做數據分析有點屈才~能算法就儘量算法吧~編程能力可以練,編程不強就學啊,leetcode刷起來,不還沒畢業麼。第一份工作選錯了,不知道過多少年才能找到適合自己的。統計學的碩士,學校還不錯的話,大廠算法崗幹三年,工資一個月30/50k不成問題,甚至現在應屆算法30的都有很多了,當然競爭很激烈。

討論5

如果能進頂尖的諮詢公司或者大廠,做數分也是蠻有意思和前途的,要不然就走算法,其實做算法也需要數據分析能力。

忽略這兩個選項,三年之後,你期望自己做着什麼樣的?

也得想明白是否願意並且喜歡日常工作以代碼爲主這種方式。

0x03 困惑解答

前面是小夥伴們的討論,下面簡單分享一下居士的觀點。

先說一個例子,一個人大統計學的小夥,畢業後專門選擇了數據分析,有算法工程師的機會也並沒有選擇。當時我還問了對方爲什麼這麼選,對方答覆是:數據分析很有意思。

說這個主要是想表達一點,找工作,除了看發展也看興趣,能堅持下去,可能更重要

然後回到算法工程師和數據分析這個話題上,分別簡單聊一下。

算法工程師,在小廠,就不多說了,就算是天天寫報表我都感覺是可能的。在大廠的話,很多團隊的算法工程師,是會要求很強的工程能力的,因爲基本不需要你研究什麼算法,更多的是將算法工程化,比如推薦系統。很多時候都是在做工程化的東西。

數據分析,這個崗位爭議其實很大,好的團隊,進去了是做數據挖掘的事情,差的團隊,進去天天寫sql。所以,這個要看情況來定,一般來講,好一些的團隊,數據分析會用到統計學、機器學習這些大部分人認爲算是高大上的東西,並且工程能力要求沒那麼高,會用就行。核心就在於如何去驅動業務。

但是由於現在各種培訓班都在教數據分析,感覺有點爛大街,會讓人感覺到數據分析的壁壘比較低,沒什麼含金量,過幾年就被淘汰的感覺,這些只是掛着數據分析的名字,做着提數事情的崗位而已。整體來講,高端的數據分析是很受歡迎的,而且價值不比算法低。

所以,總體來講,居士建議:

  1. 先看你的興趣愛好。喜歡數據分析,就做數據分析,可以安心做,天花板足夠高。

  2. 再結合你當前的情況,比如你的工程能力不是特別優秀的,說實話,如果面數據分析可能都有問題,面算法工程師可能壓力更大。

  3. 最後,從待遇上講,大廠裏面,從不認爲數據分析比算法工程師工資低。

0x04 反饋

本部分內容,來自提問的整理和反饋。

在上面的討論中,大家從各自不同的角度提出了對選擇算法還是數據分析的觀點。首先還是讓我們回到問題本身,總結一下大家的回答:

對於第一個問題,“統計出身但編程不強的背景,是否在應聘數據挖掘/算法工程師的崗位時有競爭力”:總體建議還是努力提高代碼水平和工程能力,畢竟逃避不能解決問題,既然還有時間那還是儘量努力補齊短板。原因是如果去小廠還好,小廠需要的能力比較綜合;但如果去分工非常細緻的大廠,算法工程師就得有很強的工程能力,因爲工作中更多的其實是將算法工程化。更何況之前的討論中也總結過,哪怕是數據分析崗位,現在對於分析師的各方面要求也越來越高,如果做項目的工程能力不優秀,面試數據分析都有困難。所以與其反覆糾結,不如在leetcode上再寫幾道題。

對於第二個問題,“數據分析也不錯,但是總體門檻和待遇都比算法低,統計學本科去是否屈才?”:首先總的來說算法崗的確是更難、技術壁壘更高的崗位,對於學歷背景和技術能力都有更多的要求,平均待遇也更高,如果能去算法崗自然很好。但這裏說的是平均水平,各個崗位人與人之間發展的方差都很大。高端的數據分析天花板很高,如果能加入一個優秀的非提數機、驅動業務的團隊,無論是才華施展還是待遇福利都不會讓你失望。

進一步我們跳出這兩個問題本身,嘗試提出一些職業選擇的方法論:

方法論1,如果對於兩個方向沒有明顯偏好,那在畢業前朝着算法或者數據挖掘的崗位努力一下是個比較好的選擇。這裏主要考慮的是試錯成本的問題,通常來說選擇了對技術要求更高的算法崗位,如果之後又不喜歡,轉崗數據分析是比較容易的,但反過來就比較難了。

方法論2,自然是興趣驅動。正如上面一位朋友所說,“一件事自己有興趣且能長久獲得持續成就感才能挺過長久工作生涯”,讓你有興趣的工作大概率也是讓你覺得有價值感、並且能展現自己價值的工作,能有正向反饋驅動自己堅持走下去。一個對數據分析、業務洞察充滿長久興趣和成就感的同學距離成爲一名優秀的分析師也不會遠,對於算法崗也是一樣。

0xFF 總結

關於職場相關的討論,很難有一個完全準確的答案,或者說是準確的道路,但是,在不斷的交流和思考後,道路會越來越清晰,因此,也希望大家有困惑可以多找居士交流。

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