數據科學家請轉行!軟件工程師是更好的選擇
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)
如果一個應屆畢業生或跳槽者問我該如何進入數據科學領域,我會告訴你,轉行成為一名軟件工程師,而不是數據科學家。
可能你會感到奇怪,許多人都渴望成為一名數據科學家,數據科學可能是21世紀最熱門的工作,但這卻讓另一個高薪職業貶值——軟件工程師。
如求職者在數據科學和軟件工程領域均有經驗,我的答案是從事后者。接下來我會告訴你原因。
1. 海量的軟件工程職位
與數據科學相比,軟件工程領域的崗位需求要多得多。以下是用谷歌搜索“數據科學家”和“軟件工程師”崗位得到的兩張截圖。
谷歌搜索結果:美國數據科學家職位
谷歌搜索結果:美國軟件工程師職位
搜索結果顯示有7616份數據科學職位,而軟件工程職位高達538893份。而這僅是美國的就業機會,其他國家的搜索結果也類似。
Glassdoor稱數據科學家的收入更多,而未經筆者驗證的假設則是:數據科學崗位的平均年齡也更高。
圖源:www.glassdoor.ca
圖源:www.glassdoor.ca
也就是說,如果Open AI100承諾年薪一百萬美元,那么我建議您接受這個offer。
2. “數據科學”的含義尚未達成共識
通常,管理層對“數據科學”的含義無法達成共識。也許,在業務限制的情況下,管理者們并沒有嚴格遵循角色框架。這意味著“數據科學家”的職責因公司而異。

雖然軟件工程師和數據科學家之間可能存在一個理想的角色范圍,但在現實工作情境中也許會超出此框架。對于規模擴展并仍在構建數據基礎架構的初創公司而言,尤其如此。
被聘用的候選人最終會致力于公司目前需要解決的問題,而不是專注于對應的崗位“角色”。該領域同事透露,許多數據科學家發現自己像軟件工程師一樣在編寫后端代碼,甚至有些 “數據科學家”在用excel處理財務數據。
這與你在Kaggle競賽中不斷成長并形成的期望可差得遠。
3. 孤立的數據科學
大多數公司對數據科學家的需求程度不如軟件工程師。一些公司目前正聘請其首位數據科學家。這就意味著,即使和開發人員共處一桌,許多數據科學家最終只能獨自工作。
圖源:unsplash
這使數據科學家很難獲得工作反饋和其他意見。因為軟件工程師要么不理解預測建模,要么忙于處理與數據科學完全不同的問題。
相比之下,加入軟件工程團隊的一大優勢就是能夠對同事們說:“我認為我們應該以XYZ的方式實施ABC。您有什么看法?”
4. 探索性的數據科學
如果你鐵了心要做數據科學家,那么要準備好與管理層進行尷尬的談話,解釋一下您花了兩周完成的東西為何不能使用。
研究已解決和未解決的問題是軟件開發和人工智能的根本區別之一。除了故障和約束外,在開始任何工作之前,您應了解大多數軟件工程項目的可行性。在機器學習中,只有構建了模型之后才能評估其有效性。
5. 公司尚未做好使用AI的準備
即使每個公司都進入了AI時代,大多數公司沒有支持AI的數據基礎架構,甚至不需要該架構。
一家發展迅猛初創企業的數據科學主管最近在閑聊時分享了一些建議。首先找出問題,然后構建基礎設施,隨后引入數據科學家。這并不是一個快速的過程。而另一家知名公司的首批數據科學員工向我抱怨。她被迫在筆記本電腦上訓練人工智能模型,而非云端。
圖源:agilityexchange
如果沒有待解決的具體問題,或者公司沒有引入數據科學的充分準備,也許您會發現自我增值比較困難。
6. 軟件工程傳授通用技能
成為一名初級軟件工程師好似攻讀一個科技MBA學位。什么方面都得學一點。你將學習數據庫、云技術、部署、安全性和編寫簡潔代碼;你得通過觀察Scrum領導者、高級開發人員或項目經理來學習管理構建軟件;你還得通過代碼審查獲得指導。
如果是在一家擁有成熟工程團隊的公司工作,你將迅速提升技能并建立通用背景。
7. 軟件工程更靈活
通過提供更全面的技術體驗,軟件工程可以在你決定進行工作變更時提供更好的退出機會。DevOps,網絡安全,前端,后端,分布式系統,商業智能,數據工程,數據科學等領域…
我認識許多從軟件工程轉到數據科學的開發人員。如果瀏覽過數據科學的職位描述,你會發現它們包含了各種核心的軟件開發技能。

如果你可以構建端到端項目,那么除了為Kaggle構建模型外,你還可以做更多的事情。例如采用該模型進行生產,設置授權和Stripe預扣款,然后開始向用戶訪問費用。現在你也擁有了自己的創業公司。
我從不認為數據科學不可轉讓。基于數據做決策是一項絕妙技能,但隨著人類越來越受數據驅動,數據本身也將成為每個工作的一部分。
8. 機器學習將助力軟件工程師
隨著人工智能的商業化和易用性程度增強,軟件工程師將開始使用AI來解決相應問題。
圖源:unsplash
我能夠在下午教會一位開發人員構建Sklearn分類器。這并不意味著他們可以構建下一個AlphaGo,但它確實為他們提供了一種基于用戶輸入硬編碼條件邏輯的替代方案。
這是普遍現實。經驗豐富的軟件從業人員可以在不同的專業之間進行轉換,其速度與業內新進入者不在一個級別。雖然我認為數據科學與軟件工程不會完全合并,但數據科學很可能會成為另一個軟件工程專業。
9. AI不會取代軟件工程師
我在2014年就進入了軟件工程領域工作,因為我擔心AI會讓其他工作落伍。但從那以后,時間放慢了。技術采用緩慢,AI的應用范圍不如媒體吹噓的那么神奇。
圖源:unsplash
與其他專業相比,機器學習與軟件工程自動化相差甚遠。雖然一些初創公司正在開發炫酷產品,比如AI自動編碼,但編寫代碼并不是核心工作。主要的工作內容是用技術解決問題。
“駕馭未來”,這將仍是一項寶貴的高薪技能。
以上只是筆者拙見,如果你有不同的看法當然沒問題。我希望你能自己研究得出結論,畢竟,這也是數據科學家工作的一部分,不是嗎?