不要當數據科學家

一、引言

當有人問我如何進入數據科學行業時,我的建議是:不要去做數據科學家,改做軟件工程師(俗稱碼農)。

img

這是個人觀點。我很想在評論區裏看到你的見解。

每個人都希望成爲一名數據科學家。但是,儘管數據科學可能是21世紀最性感的工作,人們卻忽視了另一個回報豐厚的高薪職業——軟件工程師

我經常收到來自剛畢業學生和想轉行員工的消息,想讓我給些有關數據科學家的建議。我告訴他們轉變想法,去做軟件工程師。

我在這兩個崗位都有經驗,下文會說明做軟件工程師的9點原因。


二、原因

1.軟件工程師的崗位更多

與數據科學家相比,軟件工程師的崗位數多了一個數量級。

以下是谷歌搜索“ 數據科學家在招崗位”和“軟件工程師在招崗位”的截圖。

img

谷歌搜索:data scientist usa indeed

img

谷歌搜索:software engineer usa indeed

7616個數據科學家崗位,同時卻有53893個軟件工程師崗位。這只是在美國的崗位,而其他國家也有類似的結果。

根據Glasssdoor的說法,數據科學家的收入更高,但我未經檢驗的假設是,數據科學家的平均實力也更強。

img

img也就是說,如果你收到OpenAI薪水100萬美元的offer,我建議你接下這個offer。


2.“數據科學”的概念沒有共識

管理層通常對“數據科學”的含義沒有共識。 即使給定業務限制,也可能不會嚴格遵循既定框架。這意味着“數據科學家”的職責因公司而異。

img

崗位職責簡要概括

理想狀態下軟件工程師與數據科學家可能規定了職責範圍,但現實中不太會遵循它。對於仍在構建基礎架構的初創公司而言,尤其如此。

被聘用的候選人最終致力於解決公司當前亟需解決的問題,而不是解決他們被錄用時的“崗位介紹”。

img

該領域員工的真實工作表明,許多數據科學家發現自己的像軟件工程師一樣在編寫代碼。我還認識部分擅長用Excel處理財務問題的“數據科學家”。

這些都與你在Kaggle比賽中磨練時的預期形成鮮明對比。


3.數據科學很孤立

大多數公司不需要像軟件工程師一樣多的數據科學家。其他公司目前正在僱用他們的第一位數據科學家。

因此,許多數據科學家最終還是獨自工作,即使他們和開發人員坐在同一張桌子上。

這會使獲得反饋和他人意見變得困難。軟件工程師要麼不瞭解預測建模,要麼忙於處理完全不同的問題。

相比之下,軟件工程團隊的好處之一就是可以對同事說:“我認爲我們應該以XYZ方式去做ABC。 你怎麼看?”。

做好將來只能自言自語的準備,或者和橡皮鴨聊天……


4.數據科學是探索性的

準備好與管理層尷尬的對話,解釋爲什麼你花了2周的成果無法使用。

面對已解決問題還是未解決問題軟件開發AI之間的根本區別之一。

除了Bug和約束,你在開始任何工作之前就知道大多數軟件工程項目是否可行。但做機器學習,你無法說這種話,直到建立好模型後,你才能知道模型是否有效。


5.公司還沒有準備好使用AI

即使在每個公司都是AI公司的時代,大多數公司也沒有基礎架構來支持它,甚至並不需要它。

一家快速擴展的初創公司的數據科學主管最近分享了一些經驗。

首先,你要找出問題所在,然後建立基礎架構,然後再聘請數據科學家。這不是一個快速的過程。

最近,另一家知名公司的第一數據科學人才向我宣泄。她被迫在筆記本電腦上而不是雲上訓練AI模型的數據。

如果你入職後公司沒有特定問題需要解決,或者公司沒有爲數據科學做好準備,那麼你可能會發現體現自身價值會非常艱難。


6.軟件工程教授通用技能

成爲初級軟件工程師就像獲得MBA一樣。你會學到所有事物的一小部分基礎。

你將學習數據庫、雲技術、部署、安全性以及編寫簡潔的代碼。

通過觀察你的上級領導、高級開發人員或項目經理,你將學會如何架構軟件。

你將通過代碼審查獲得指導。

如果你進入擁有一個卓越軟工團隊的公司,幾乎可以保證你會迅速提高自己的技能並建立通才背景。


7.軟件工程更容易轉移

通過提供更全面的技術經驗,當你確定需要做些轉變時,軟件工程可以提供更好的退出機會。

DevOps、安全性、前端、後端、分佈式系統、商業智能、數據工程、數據科學……

我知道很多從軟件開發轉向數據科學的員工。如果你瀏覽了數據科學職位描述,你會立即發現裏面充斥着軟件開發核心技能。

img

如果您可以構建端到端項目,則除了爲Kaggle構建模型外,你還可以做更多的事情。 您可以工業化部署該模型,設置賬號和授權,然後開始向用戶收費以進行訪問。 這就是你自己的創業公司。

我從不認爲數據科學是獨門祕籍。根據數據做出決定是一項必殺技,但是隨着我們越來越受到數據驅動,這也將成爲每項工作的一部分。


8.機器學習將成爲軟件工程師的工具

隨着AI的商品化和易於使用,軟件工程師將開始使用AI來解決他們的問題。

我可以在下午教一位開發人員構建Sklearn分類器。這並不意味着他們可以建造下一個AlphaGo,但確實爲他們提供了一種替代方法,能基於用戶輸入的硬編碼條件邏輯方法。

數據科學家有專業知識,例如統計學和對模型如何工作的直覺。但是DevOps和安全工程師也有他們自己的專業知識。

我認爲這些崗位的同多於異。經驗豐富的軟件專家可以在不同專業之間進行遷移,其速度比新進入者快一個數量級。

雖然我認爲我們不會看到將數據科學完全融合到軟件工程中,但能感覺數據科學可能會成爲另一個軟件工程專業。


9.人工智能不能取代軟件工程師

聽起來很愚蠢,因爲我擔心AI造成其他工作過時,所以在2014年我進入軟工領域工作。

img

從那以後,AI幾乎沒有移出特定環境。技術的採用速度慢,而AI的應用範圍比媒體想象的要窄。

與其他專業相比,機器學習距離軟件工程自動化的範圍更遠。雖然我們有一些初創公司正在開發利用AI自動編寫代碼的出色產品,但編寫代碼並不是真正的工作,真正的工作是使用技術解決問題。在出現新的技術革命之前,這仍然是一項寶貴且高薪的能力。


三、總結

首先,上述觀點是一家之言。其次,我意識到我把數據科學家、機器學習工程師和AI研究人員混爲一談。但是我認爲這些觀點仍然值得考慮,因爲這是你的職業生涯選擇。

不要太當真。我希望你能進行研究並做出自己的決定。畢竟,這是成爲數據科學家的一部分。

歸根結底,我們通過解決問題而得到報酬。

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