軟體工程師轉職機器學習工程師:一條可行的捷徑?
很多人問我,軟體工程師是否能藉由轉職成為機器學習工程師(MLE)?答案是肯定的,但並非如此簡單。這其中存在一些需要注意的地方。
機器學習的本質:分類與迴歸
目前,現實世界中約 90% 的機器學習應用都集中在分類和迴歸上。這些任務主要處理的是結構化資料,這些資料通常儲存在資料倉儲和關聯式資料庫中。這兩種資料儲存方式是現實世界中最常見的。
SQL 的重要性
由於資料多儲存在資料倉儲和關聯式資料庫中,因此需要使用 SQL 來提取資料。如果你是一位 C 或 C++ 軟體工程師,即使你精通這些語言,也無法直接勝任機器學習工程師的工作。你必須具備使用 SQL 從資料庫中提取資料的能力。
-
具備 SQL 技能的情況: 如果你已經熟悉 SQL,那麼轉職成為機器學習工程師是一條非常棒的捷徑。
-
不具備 SQL 技能的情況: 如果你不熟悉 SQL,則需要學習它。SQL 面試並不容易,你需要掌握複雜的 Join 語法,並了解如何從各種資料儲存系統(例如關聯式資料庫和資料倉儲)中獲取資料。
Python 的必要性
機器學習領域的應用程式開發幾乎都使用 Python。如果你沒有 Python 經驗,就需要學習它。儘管 Python 是由 C 語言編寫的,而且 C 語言本身可能更難,但機器學習的各種函式庫和工具都基於 Python。
-
資料清洗: 機器學習工程師每天大部分時間 (約 95%) 都花在資料清洗上,而這些工作都是透過 Python 函式庫完成的。
-
應用統計: 機器學習也需要應用統計知識,而這些也都是透過 Python 來實現的。
具備 Python 和 SQL 技能的優勢
如果你是一位 Python 程式設計師,並且熟悉 SQL,那麼你可以開始學習機器學習的相關知識,包括各種函式庫、模型(例如 XGBoost)和 TensorFlow 等。了解端到端機器學習流程將會讓你更具優勢。
機器學習流程的四個步驟
- 資料提取 (Data Sourcing): 這是第一步,也是最困難的一步。
- 資料清洗 (Data Cleansing): 這是第二步,相對來說比較容易。
- 模型建立 (Modeling): 這是第三步,也是最簡單的一步,因為我們已經知道哪些模型最有效。
- 生產部署 (Production): 這是第四步,也是最複雜的一步,許多公司甚至不允許機器學習工程師參與這個階段,而是將模型交給其他團隊部署。
資料工程師:另一個選擇
雖然資料工程師(Data Engineer, DE)的角色與機器學習工程師相似,但通常資料工程師的收入已經很高,而且是一個非常穩定的職位,因此他們可能沒有轉職成為機器學習工程師的動機。資深的資料工程師在美國的年薪可能達到 25 萬美元或更高,而頂尖的機器學習工程師的薪水可能更高,但資料工程師的工作壓力通常較小,並且不需要像機器學習工程師那樣頻繁地與業務部門打交道。
結論
總結來說,軟體工程師轉職機器學習工程師是一條可行的捷徑,但必須具備 SQL 和 Python 技能。如果你已經具備這些技能,那麼你就可以開始學習機器學習的相關知識,為轉職做好準備。
訂閱電子報
請在下方評論區訂閱我的電子報,裡面有許多關於資料領域的資訊,包括各種職位介紹和機器學習工程師的實用指南。所有內容都是免費的,歡迎訂閱!