【為什麼我們要挑選這篇文章】搭著 AI 浪潮,數據科學家是近年最夯的職業,然而過來人建議,與其當數據科學家,更建議去當軟體工程師,為什麼?(責任編輯:郭家宏)
在數據最夯的時候,數據科學家被稱為 21 世紀最性感的工作,一時進入了全民數據科學的時代。數據科學的價值雖然有目共睹,但不是每個公司都有條件來實現數據驅動的商業願景,每個公司的數據基礎設施水準層次不齊,有些遠達不到數據科學家可以大展拳腳的水準。
作為前任數據科學家和現任軟體工程師,作者給出了過來人的建議。讓我們聽聽他為什麼勸想做數據科學家的勇士不如去做軟體工程師。
原文 傳送門
當有人問我如何進入數據科學領域時,我建議他們去做工程師。
這只是我的個人觀點。我很希望能聽到你的反駁意見。
每個人都希望成為一名數據科學家。雖然數據科學可能是 21 世紀最火熱的工作,但是軟體工程師也同樣是一份報酬率很高的職業。
經常有應屆生和跳槽者來問我要如何進入數據科學這個領域。我給他們的建議是:還是去做軟體工程師吧。
我在這兩個領域都有經驗,我想用親身經歷說服你,軟體工程師是更好的選擇。
軟體工程領域的就業機會更多
與數據科學相比,軟體工程領域的工作機會要多出一個數量級。以下截圖展示了 Google 搜尋「數據科學家」和「軟體工程師」工作後的搜尋結果。
我們可以得到 7616 條有關數據科學工作的搜尋結果,以及 53,8893 條有關軟體工程工作的搜尋結果。該搜尋只是針對於在美國的工作,在其他國家試下來也有類似的結果。
根據 Glassdoor 的說法,數據科學家能賺更多的錢,但根據我個人未經檢驗的假設,數據科學工作的平均所需的工作經驗也要求更高。
但如果 Open AI 給你開出 100 萬美元(約新台幣 3000 萬元)的薪水,我建議你還是接下這份工作。
「數據科學」的定義仍沒有達成共識
管理層通常無法對「數據科學」的定義達到共識。由於業務限制,完全尊重該職位的本來定義有時也是一種奢侈。這意味著「數據科學家」的職責因公司業務需求而異。
儘管軟體工程師和數據科學家之間存在很多不同的角色分工,但現實不太可能遵循這種明確的職責劃分。仍在搭建基礎架構的新創公司尤其如此。
被聘用的候選人最終將致力於解決公司當前最需要解決的問題,而不是解決他們被錄用「職位」的工作範疇內的問題。
很多同事的經驗表明,許多數據科學家發現自己像軟體工程師一樣在編寫後端程式碼。我還認識一些精通 Excel 和財務工作的「數據科學家」。
這與你在經歷 Kaggle 比賽中成長時的期望形成了鮮明的反差。
數據科學家們仍處於孤軍奮戰的狀態
大多數公司不需要像軟體工程師那樣多的數據科學家。很多公司目前正在僱用他們的第一位數據科學家。
因此,即使與開發人員坐在同一張桌子上,許多數據科學家最終還是獨自工作,這樣工作的問題是很難獲得別人的回饋。軟體工程師們要嘛不了解預測建模,要麼忙於處理完全不同的問題。
相比之下,當軟體工程團隊的好處之一就是你有機會對同事說:「我認為我們應該以 XYZ 方式實施 ABC。你怎麼看?」
數據科學是偏探索性質的職種,不保證結果
你準備好跟你的老闆解釋「為什麼過去兩週以來的勞動成果不能用於提高業務了嗎?」這種尷尬的對話時常會發生。
解決已知的問題或是未知問題是軟體開發與 AI 之間的根本區別之一。
暫且不談程式碼問題和其他限制,作為軟體工程師,在開始工作之前你大概知道大多數軟體工程項目是否可行。但在建立一個 ML 模型之前,你並不能知道該模型是否會有效。
公司還沒有準備好使用 AI
即使在「每個公司都是 AI 公司」的時代,大多數公司沒有支援 AI 的基礎架構,很多公司甚至不需要 AI。
一家快速擴展的新創公司的數據科學主管最近分享了一些建議。
首先,你要發現問題,然後建構基礎架構,然後請數據科學家來解決問題。這不是一個可以快進的過程。
最近,另一家知名公司請的第一位數據科學家向我抱怨:她被迫在電腦而不是雲端的大數據上訓練 AI 模型。
如果你沒有特定的問題要解決,或者公司沒有做好數據科學戰略的準備,那麼你很難體現自身的價值。
軟體工程學習更普遍的技能
成為初級軟體工程師就像獲得一個科技領域的 MBA 一樣。你可以在很多方面都學到一點知識。
你會學習數據庫、雲端技術、部署、安全性以及如何編寫簡潔的程式碼。
透過敏捷大師、高級開發人員或專案經理,你將學習如何管理軟體開發的過程。
透過程式碼審查,你將得到很多指導。
如果你加入的公司擁有一支成熟的軟體開發團隊,毫無疑問你會迅速提高自己的各項技能。
軟體工程的經驗更容易遷移
當你決定進行跳槽時,軟體工程可以提供更全面的技術經驗,從而給你更好的就業機會。
DevOps、安全性、前端、後端、分散式系統、商業智能、數據工程、數據科學……
我知道許多從軟體轉向數據科學的開發人員。如果你搜尋數據科學的職位描述,你會發現它們包括了很多核心的軟體開發技能。
如果你可以搭建端到端的項目,那麼除了為 Kaggle 構建模型外,你還可以做更多的事情。你可以搭建一個模型,進行生產化,設置授權和 Stripe(線上支付),然後開始向訪問用戶收費。那麼你已經可以做自己的新創公司了。
我不是說數據科學的經驗不適合遷移。根據數據做決定是一項重要的技能。但是隨著社會變得越來越受數據驅動,這種技能也將成為每一項工作的一部分。
機器學習將成為軟體工程師的一項工具
隨著 AI 的商品化和使用簡化,軟體工程師將開始使用 AI 來解決他們的問題。
我可以用一下午教一位開發人員如何構建 Sklearn 分類器。這並不意味著他們可以建構出下一個 AlphaGo,但這確實為他們提供了一種條件邏輯編碼的方法。
數據科學家具有關於統計,以及模型工作原理的專業知識和直覺。但是維運和安全工程師也有他們自己的專業知識。
我認為這幾者的相同比不同更加普遍。經驗豐富的軟體專業人員可以在不同專業之間遷移,其適應速度可以比新入職者更快。
雖然我不認為數據科學會完全整合到軟體工程中,但我確實感覺數據科學可能會成為另一個軟體工程專業。
人工智慧不能取代軟體工程師
因為擔心 AI 會取代其他工作,我於 2014 年進入軟體工程領域。
自那以後,AI 並沒有像我想像得那樣快速發展。技術的場景落地速度很慢,而 AI 的使用範圍也遠沒有媒體所宣傳得那麼廣。
與其他工作相比,機器學習要實現把軟體工程自動化的進程更路漫漫。雖然有一些新興公司在開發諸如「AI 寫程式」之類的出色產品,但編寫程式並不是真正的工作。真正意義上的工作是指使用技術去解決問題。在 AI 擁有這項能力之前,寫程式將仍然是一項寶貴且高薪的技能。
總結:數據科學家、軟體工程師都透過解決問題獲得報酬
首先,這篇文章只是經驗之談。其次,我把數據科學家、機器學習工程師和 AI 研究人員粗略地歸為一類,這三類工作有其個體差異。但是我認為我的論點仍然值得你考慮,畢竟這關乎你的職業選擇。
不要太把我的觀點當真。我希望你做好充分的行業研究然後做出自己的決定。這也是成為數據科學家的一部分。
追根究柢,我們透過解決問題來獲得報酬。
(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈身为一名数据科学家“过来人”,我为什么更建议你去做软件工程师 〉。首圖來源:Piqsels CC Licensed)
更多關於工程師的職涯
GitHub 數據告訴你:用哪種程式語言的工程師最快樂?
【GitHub 熱門】中年工程師自創「面試寶典」,苦練 8 個月轉職 AWS 拿百萬年薪
有必要把程式語法背熟嗎?資深工程師:其實你更需要 Google 的能力
全方位掌握消費者數位軌跡
AI 如何有效提升電商業績、降低導入成本?