天天看點

為什麼我勸你不要當資料科學家?

為什麼我勸你不要當資料科學家?

資料科學家這一職位越來越火熱,人人都想從事資料科學,這不僅因為這份工作聽上去高大上,更重要的是,它真的是一份高薪的工作。但是,資料科學家是人人都能做得來的嗎?

大家好,我是夢想家Alex 。相信很多小夥伴對于資料分析和資料科學家的差別很感興趣 。正好最近我從鋒哥那裡找到了這篇文章 。本文系一篇觀點文章,我很樂意聽到讀者的反駁意見。

成為一名資料科學家是每個人的夢想。甚至連奶奶級的人也想當資料科學家。但是,盡管資料科學可能是 21 世紀最性感的工作,但另一個報酬也同樣豐厚的高薪職業——軟體工程師,卻被低估了。

我經常會收到寫剛畢業的學生和想改行的人寫來的信,向我尋求從事資料科學的建議。我給他們回信說應該要去做軟體工程師。

鑒于我在資料科學家和軟體工程師都有經驗,我會試着說服你去成為軟體工程師。

軟體工程的工作崗位更多

與資料科學相比,軟體工程領域的工作崗位要多上一個數量級。

下面是我在 Google 上搜尋 Indeed(一家招聘網站)上的 “資料科學家” (Data Scientist)和 “軟體工程師” (Software Engineer)崗位的截圖。

為什麼我勸你不要當資料科學家?
為什麼我勸你不要當資料科學家?

從搜尋結果來看,資料科學崗位有 7616 個,而軟體工程的崗位有 538893 個!這還隻是美國的就業情況,但其他國家也顯示出類似的結果。

據 Glassdoor 的調查結果稱,資料科學家的收入更高,但以我未經驗證的假設是,資料科學領域的工作平均而言也更進階。

為什麼我勸你不要當資料科學家?
為什麼我勸你不要當資料科學家?

也就是說,如果你得到了 Open AI 給的 100 萬美元薪水的工作機會,我會建議你要抓住這個機會。

“資料科學” 的含義還沒有達成共識

管理層對 “資料科學” 的含義往往沒有達成共識。也有可能是由于業務上的限制,他們沒有辦法生搬硬套一個角色架構。

這意味着 “資料科學家” 的職責因公司而異。

為什麼我勸你不要當資料科學家?

雖然從軟體工程師到資料科學家之間的理想角色有可能存在,但在現實中卻不大可能實作。這點對于那些仍在建設基礎設施的初創公司來說尤為如此。

被錄用的應聘者最終都是為了解決公司目前需要解決的問題,而不是他們可能被錄用的 “角色” 。

來自該領域同僚的轶事證據是,許多資料科學家發現,自己像軟體工程師一樣也要編寫後端代碼。我還認識其他所謂的 “資料科學家” ,他們是用 Excel 處理财務資料。

而這與參加過 Kaggle 的你的期望大相徑庭。

資料科學是孤軍奮戰的工作

大多數公司并不像軟體工程師那樣需要那麼多的資料科學家。其他公司正在招聘他們的第一位資料科學家。

由于這個原因,許多資料科學家最終都将是孤軍奮戰,即使他們和開發人員在同一張桌子上工作,也是如此。

這可能會導緻很難獲得回報和第二種意見。軟體工程師要麼不懂預測模組化,要麼忙于處理完全不同的問題。

相比之下,在軟體工程團隊的好處之一就是能夠對同僚們說:“我認為我們應該用 XYZ 的方式實作 ABC。你有什麼看法?” 。

要從事資料科學的工作,請做好和你自己或者一隻橡皮鴨進行這樣的對話的準備。

為什麼我勸你不要當資料科學家?

資料科學是探索性的工作

你要做好與管理層進行尴尬對話的準備,解釋為什麼你花了兩個禮拜的時間做的東西還不能用。

緻力于解決已解決的問題與未解決的問題,是軟體開發與人工智能的根本差別之一。

撇開錯誤和限制不談,在開始任何工作之前,你就應該知道大多數軟體工程項目是否可行。但在機器學習領域就不能這樣說了,因為你隻有在構模組化型之後才會知道模型是否有效。

公司還沒有為人工智能做好準備

即使在每家公司都是人工智能公司的時代,大多數公司也不具備支援人工智能的基礎設施,甚至不需要它。

最近,一家快速擴張的初創公司的資料科學負責人在與我喝咖啡的時候分享了一些建議。

首先,要找出問題所在,然後建構基礎設定,再引入資料科學家。這可不是一個快速的過程。(我的轉述大意)

最近,另一家知名公司的從事資料科學的零号員工向我發洩。她吐槽稱,她被迫在筆記本電腦上而不是在雲端上的大資料訓練人工智能模型。

如果你被錄用後沒有具體的問題需要解決,或者公司沒有做好資料科學的準備,你可能會發現自己很難提升價值。

軟體工程傳授通用技能

成為一名初級軟體工程師就像獲得了技術領域的 MBA,你所學到的東西都隻不過是滄海一粟。

你要學習資料庫、雲技術、部署、安全性和編寫簡潔的代碼。

你要通過觀察 Scrum 上司、進階開發人員或項目經理來學習如何管理軟體的開發。

你要通過代碼審查來得到指導。

如果你進入的公司擁有一支成熟的工程團隊,你幾乎可以保證你會很快提升自己的技能,并打造出一個通才的背景。

軟體工程更具可轉移性

通過提供更全面的技術體驗,當你決定是時候改變時,軟體工程提供了更好的退出機會。

DevOps、安全、前端、後端、分布式系統、商業智能、資料工程、資料科學……

我認識一些從軟體行業改行到資料科學的開發人員。如果你浏覽一下資料科學的崗位描述,你會立即注意到,崗位描述到處都是核心的軟體開發技能。

為什麼我勸你不要當資料科學家?

如果你能建構端到端的項目,那麼你還可以做更多的工作,而不僅僅是為 Kaggle 構模組化型。你可以采用該模型,将其産品化,設定授權和條碼,然後開始向使用者收取通路費用。這就是你自己的初創公司。

我從來不認為資料科學是不可轉移的。根據資料做出決策是一項殺手級技能。但随着我們變得越來越以資料為導向,這也将成為我們每一項工作的一部分。

機器學習将成為軟體工程師的工具

随着人工智能的産品化和易于使用,軟體工程師将開始使用人工智能來解決他們的問題。

我可以用一下午的時間教會開發者如何建構 Sklearn 分類器。但這并不意味着他們可以建構下一個 AlphaGo,不過,這确實給了他們一個替代基于使用者輸入的寫死條件邏輯的選擇。

資料科學家有專業知識,比如統計學,以及對模型如何工作的直覺。但 DevOps 和安全工程師也有自己的專業知識。

我認為這些都是常見的,沒有什麼不同。一個經驗豐富的軟體專業人員在不同專業之間的轉換速度比一個新入行的人選擇一個專業的速度要快一個數量級。

雖然我不認為我們會看到資料科學完全合并到軟體工程中,但我确實感覺資料科學有可能會成為另一個軟體工程專業。

人工智能不會取代軟體工程師

盡管這觀點聽起來很傻,但我在 2014 年進入了軟體工程領域,因為我擔心人工智能會讓其他工作都被淘汰。

然而從那時起,這一狀況就幾乎沒怎麼變過。技術采用的速度很慢,人工智能的應用範圍比媒體想象的要窄得多。

與其他專業相比,機器學習離自動化軟體工程更遠。雖然我們有初創公司在建構酷炫的産品,比如人工智能代碼完成,但編寫代碼并不是真正的工作。這項工作是用技術來解決問題。

在奇點出現之前,軟體工程仍然将是一項寶貴的高薪技能。

結 語

首先,本文所述都是轶事。其次,我意識到我将資料科學家、機器學習工程師和人工智能研究人員混為一談了。但我認為,這些論點仍然值得考慮,因為這是你的職業。

我姑妄言之,你姑妄聽之,不必太過當真。我希望你自己研究一下,然後再做決定。這畢竟是作為資料科學家的一部分。

說到底,我們的工作就是解決問題。

參考閱讀:

繼續閱讀