最近由于校招如火如荼,一些小伙伴在后臺以及知乎上問我,在開發和算法之間猶豫,不知道如何抉擇,想要問問究竟哪一個崗位更好?
恰好我之前在知乎上回答過“對于技術崗位而言,開發崗累還是算法崗累呢?”的問題,于是將它搬運了過來,希望能給大家一點啟發和幫助。
了解我的朋友可能都知道,2015年的時候我在阿里媽媽的算法崗位實習,然而找工作的時候我陰差陽錯地去了某公司的開發崗位。做了一年之后,由于各種原因,有點后悔當初的選擇于是又想辦法轉回到了算法崗位上。所以說這兩個崗位我都待過,所以就各自來談談它們的缺點。有的時候我們不知道我們想要什么,但往往清楚我們不能接受什么。
這兩個崗位雖然說起來都是工程師、技術崗,但是兩者的工作內容和性質差得真不是一點半點。從業當中,也都有心力交瘁的時候,但是體驗和觸發條件都不太一樣。簡單說一說。
首先說開發,我個人在做開發的時候,蛋疼點主要有以下幾個。
開發篇
on call
on call可以理解成隨時等待召喚的意思,一般來說重要項目的開發人員都是7 x 24小時on call的。
只要線上有問題,一定會有電話打進來。凌晨兩三點也不是沒有可能,而且很多時候,這些問題未必是你的鍋,很有可能只是因為某某項目的負責人上有你的名字。
這點我想應該大小公司都有,之前和螞蟻的同事聊天,他給我吐槽說他凌晨起夜已經成了習慣。因為好像螞蟻到了晚上還有很大的流量,經常hbase抖動,每次抖動都會有電話打過來。還有什么燒烤吃了一半突然線上GG了,狂奔回公司查問題的,都不算是事。
不僅工作日如此,周末、假期都必須響應。所以基本上電腦隨身攜帶是肯定的,哪怕是過年回家、出國旅游基本上也都要帶著電腦。而且根據墨菲定律,千萬不要有僥幸,我僥幸過兩次,都中招了。最夸張的一次,在香港太平山上拿著手機看代碼。。。
什么?線上故障的時候,你睡得太死了沒聽到電話?
Emmmm,輕則被leader說上幾句,重則,可能你需要準備一下簡歷了。
大促熬夜
只要是電商公司,沒有不大促的,只要大促,沒有不要熬夜的。所以可以簡單理解成只要是電商公司,那么一定會有熬夜。
大促意味著巨大的流量,自然對系統的穩定性是一個頂級的考驗。就拿雙十一舉例,你以為只要在雙十一當天多準備幾臺機器就好了?too young,在真正大促到來之前我們需要做很多輪的模擬流量檢測,怎么模擬呢?就是搞一堆虛假的請求過來發送到服務器,看看服務器能不能抗住。這種模擬測試在行內稱為壓測,也叫壓力測試。
一般來說每次大促至少兩輪壓測,由于壓測可能導致系統問題,所以不能放在流量高峰期,也就是白天,只能晚上夜深人靜的時候搞壓測。那么你想嘛,熬夜就是必不可少的。
就算兩次壓測好了,兩次壓測加上大促當天的值班,至少每次大促都需要熬三天夜。每次熬夜,至少要兩三點才能睡覺。
來來來,你告訴我,這樣的大促一年有幾次?
光數的出來的大促就有四次,321, 618, 11.11, 12.12……而且現在這個大促的次數還有明顯地增加的趨勢。
并發工作
工作當中最令人感受不好的就是并發工作,也就是一件事情你還沒忙完,甚至剛剛做出一點眉目,立刻就被其他更加緊急的事情打斷。
比如你在查一個bug,剛剛鎖定了大概導致bug的代碼區域,還沒有具體檢查出來,突然測試就告訴你她發現了新的bug。或者是產品過來跟你聊一個新的需求,或者是有人找你問一些關于你們系統的問題。這種連軸轉的感覺是最痛苦的,只要很短的時間就會讓人心力交瘁。
當然這個問題并不只是在開發崗位出現,其實任何崗位都有可能出現這個問題。但是相對來說,開發崗位出現這種情況的概率更高。因為開發往往負責的是一個或者多個系統,系統大了可能出現的各種各樣的問題就很多。并且還會有很多使用系統的人問你問題,很容易出現這種情況。
其他問題
除了上面三點之外,其他蛋疼的點也很多。不過相比之下沒有那么嚴重,所以我就放在一起說了。
比如大多數公司文檔都不健全,對于開發來說接收陳年項目非常容易踩坑。而且很多時候需要直接去讀源碼,如果碰到之前的工程師代碼能力不行的話,會導致代碼非常難讀,就跟眼睛被針扎了似的。
還有就是肝deadline的現象非常嚴重,每一個產品提的需求總會給你設一個deadline。有時候總會有各種各樣的意外發生,導致你需要爆肝才能趕得上進度。比如線上出了故障排查了兩天,或者是臨時加了一個緊急的需求等等,無休無止地爆肝真的會讓人崩潰。
另外一點是經常重復性工作,今天增刪改查,明天改查增刪。面試的時候高并發、分布式,進去工作之后curd。經年累月沒有成長,如果是大公司的話,很多人干幾年也沒有過從0開始真正搭建項目的經驗。
有時候產品或者運營或者是老板不好溝通也是一個問題。要么是不懂技術溝通成本很高,要么就是無腦強勢,不懂裝懂,我不管你覺得,我要我覺得。
算法篇
SQL boy
很多人被算法崗吸引,就是覺得算法崗高大上,機器學習,人工智能。但其實真正從事之后,會發現根本不是那么回事。
如果在小公司,整天為數據發愁,不是這個數據沒有,就是平臺或者工具稀爛。如果在大公司,數據、平臺、工具都有了,但是每天當SQL boy。你和業務談算法,業務說明天上線,先統計上一版。老板整天告訴你,我想看這個、這個和那個,你去幫我跑一下。
你想說抽空能把某個模型優化一下,結果發現手上排的SQL根本寫不完。機器學習、深度學習的模型我明明會一堆,但是眼下的事情永遠只有SQL和數據。
問題難定位
做算法的過程,很多時候是一個和自己較勁的過程。
因為模型和開發的代碼不同,開發用代碼實現的功能結果是明確的,原因是可追溯的。但是模型不是,經常在別人場景下效果好的方法到你這里一團稀爛。特別是你老板報以期望的方法,你很難解釋……太多的可能性導致模型性能不好了,可能是訓練數據有問題,可能是特征有問題,有可能是流程有bug,但是老板不管這些,他們需要的是確定的結果。
并且很多人覺得查問題很簡單嘛,你找幾筆數據來看一下不就知道了?還有一些不懂裝懂的路人,哎呀你用這樣這樣不就可以了?
大數據時代,只有相關性,沒有因果性。幾筆數據能夠代表全部嗎?我抽了幾筆看了沒問題,就能代表全部數據沒問題嗎?換句話說幾筆數據有點小問題,就能代表這個是導致模型不行的原因嗎?千萬別信,信了就是大坑等著你。
我最頭疼的就是老板讓我去查某個問題,簡直是玄學,如果是明顯的問題還好,如果不是,你可能跑一堆SQL,看一堆數據還是一無所獲。更蛋疼的是,可能一切都沒問題,但就是效果不好,你也不知道為什么,畢竟神經網絡是個黑盒。
忽悠和大忽悠
算法行業的忽悠很多,心態不好的人很有可能會扛不住。
也是因為現在算法太火了,很多不明就里的人會用仰望的目光來審視。某些時候這個是好事,比如當和投資人聊錢的時候。但大部分情況下,則未必。
比如某些決策者會有錯覺,會有幻想,比如會提出一些他們自己都不信的口號。喊口號不是問題,但問題是口號里的指標要你去落實。你會發現你很有可能忍不住想要打人的沖動,其實老板也不是白癡,他們心里也門清,可能也是為了應付更高層的老板或者是投資人而已。有點像是晚晴鴉片戰爭時期的官員,從上到下都知道打不過英國人,但是總得想出點辦法來去寫篇“捷報”,不然怎么升官發財?
以前遇到過這么一檔子事,說是公司的日活用戶一直在降低,公司希望用機器學習的模型來篩選一批貪財的用戶,給他們發5塊錢紅包。這樣他們為了貪這5塊錢就會一直活躍,也就帶來了日活的增長,這樣就可以和更高層的老板交差了。看起來這個邏輯非常清晰,毫無破綻。
但問題是,當時的日活有三百萬,每天發多少紅包呢?只有幾萬個。你說應該怎么辦,即使算法選出來的每個用戶都不流失了,那難道就能增長了?入不敷出的成語學過沒有?老板才不管,你只管去做,做不好就是你能力不行。這種情況怎么辦?
同樣,這行吹逼的情況非常嚴重,簡直章口就來。反正別人不知道你到底怎么做的,面試的時候有些人吹得那叫一個天花亂墜。當很多人都這么做獲得好處,而你堅持底線,一直默默無聞的時候。你很難不對你的信念產生懷疑,究竟錯的是你呢,還是這個世界?
以上,只是我一家之言,如果言中,請勿對號入座。
最后,世上沒有完美的職業,總要有所得有所失。如果你能明白可以忍受什么,不能接受什么, 我想,你一定可以做出不后悔的選擇。
今天的文章就到這里,衷心祝愿大家都能找到稱心如意的工作。
責任編輯:xj
原文標題:開發崗累,還是算法崗累?
文章出處:【微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。
-
算法
+關注
關注
23文章
4601瀏覽量
92671 -
開發
+關注
關注
0文章
367瀏覽量
40811 -
程序員
+關注
關注
4文章
950瀏覽量
29768
原文標題:開發崗累,還是算法崗累?
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論