全文共 2004 字,預計學習時長 7 分鐘

圖源:unsplash

過去的5年裏,機器學習變得愈加容易,機器學習工具也正在變得愈加“平民化”。而與此同時,軟件工程卻比以往更復雜了。然而,這對於軟件工程師來說是件好事,但對於機器學習(ML)專家來說則不然。

原因何在?事實上,這是機器學習到軟件工程,數據科學到數據分析發展的進程。

機器學習工具正愈加“平民化”

谷歌希望每個人都能接觸到機器學習模型的訓練,不論他們的技術知識如何。隨着機器學習大衆化,雲服務的市場逐漸增長,理解算法的價值則逐漸下降。

很久以前,我們手動編碼算法。後來,Sklearn可以在幾行代碼中完成同樣的操作。原始的TensorFlow很難使用,Keras使其變得容易。如今,谷歌、微軟和亞馬遜都提供服務用以選擇、訓練和調整雲中模型,然後立即在API後提供模型。

可能在不久的將來,人人都可以訓練人工智能。但是隨着複雜性的降低,對於經驗豐富的軟件工程師來說,它只是信手拈來的另一個工具而已。

機器學習發展集中於幾門語言上

語言的重要性不必多說。你知道COBOL(面向商業的通用語言)嗎?如果知道, 便能獲得一份終身工作 。世界金融體系依賴於此,然而如今沒有人再學習COBOL了。大多數機器學習是 通過Python來實現 ,而軟件開發則是通過多種語言實現的。

如果每位機器學習工程師都具備使用Python的經驗,那麼你的競爭對手就是每一位機器學習工程師。但從軟件的角度來說,你只會和使用相同技術的部分工程師競爭。

我總是能看到許多高薪的軟件工程師(Ruby onRails)職位,這令我很驚訝,這個職位早在幾年前就過時了,但是由於歷史遺留問題,許多大公司,如Shopify、Instacart、Kickstarter等,仍在使用它。

你確實可以並且應該學習多種語言,這對於能否成爲一名優秀的軟件工程師來說至關重要。

軟件工程需要更多技能

我們總是期待軟件工程師對每個方面都至少有一些瞭解。

快速草圖

後端工程師知道瀏覽器的工作原理,前端工程師也具備一些數據庫的概念。兩者都能防止如SQL注入這樣的安全漏洞。對軟件有一個整體理解能使改換專業變得更容易,還能幫助構建端到端解決方案。

廣泛的技能組合使軟件工程師能更好地適應模棱兩可的環境。隨着需求的增長,軟件工程師經常轉行到數據科學領域。但反過來,數據科學家則不太可能去開發軟件。隨着人們開始將機器學習看作硬編碼條件邏輯的替代品,更多軟件工程師去涉足機器學習領域。

成爲有競爭力的全棧開發者需要數年時間

實際上,優化數據庫、構建API微服務以及構建響應式前端這三者之間並沒有什麼共同點。他們可能是由3種不同的語言實現的。這些領域裏幾乎沒有自動化。

與此相比,全棧機器學習工程師正在實現愈加強大的自動機器學習技術(AutoML),筆者可以爲此編寫一個SOP(標準操作程序),並將訓練分類器的任務交給實習生。軟件工程技能組各個部分的自動化淘汰還需時日。

(通常)機器學習是產品的補充而非產品本身

圖源:unsplash

少數公司將人工智能作爲其核心產品,而大多數公司將人工智能作爲既有產品的補充。媒體可能會使用機器學習進行文章推薦,但其核心產品是寫作或是出版平臺。

有趣的是,大多數公司將機器學習用於簡單和相似的用例。這使得單個公司很容易將上述用例作爲軟件及服務(SaaS)產品。再然後,突然之間初創企業不再需要在內部構建它了。

這與極度複雜且定製化的基礎設施問題形成對比,亞馬遜網絡服務(AWS)上沒有能在短時間內處理Medium基礎設施的現成方案。

基礎設施正變得異常複雜

亞馬遜雲服務(AWS)已經拓展出200多種不同的雲服務。Heroku在雲中運行應用程序的平臺即服務(PaaS)方法很不錯,但很昂貴。現在有一個全新的雲服務平臺來進行管理(網絡、數據庫、服務器),在這裏,一個小失誤可能會引發很大的安全隱患。

有一個名爲“雲工程”的完整開發子集,其任務是使軟件在AWS、GCP或者Azure上運行。在小公司中,建設基礎設施的任務通常落在高級開發人員的肩上。這個任務很複雜,但也意味着寶貴的工作機會和難以複製的技能。

前端開發正在持續發展

當筆者開始做開發時,還可以用jQuery構建響應式前端。但不久後公司轉向了Angular或者React,Angular升級爲Angular2(突發的改變),React將類組件轉換爲功能組件,並加入了hook。以上這些框架/函數庫的工作方式完全不同。

一些公司致力於基於模型自動生成前端。但筆者的同事們一致認爲,我們距離高質量產品還有很長一段路要走。

圖源:unsplash

軟件開發十分複雜,但這種複雜性意味着不可替代的技能,這非常有利於就業。廣泛的技能組合賦予了人們端到端解決實際問題的能力。爲了構建一個能使普通人自行解決問題的社區,軟件工程是一個不錯的開端。

機器學習該何去何從呢?它仍然擁有一席之地,但顯然,解決問題比訓練模型更爲重要。

推薦閱讀專題

留言點贊發個朋友圈

我們一起分享AI學習與發展的乾貨

編譯組:賀宇、蘇牧辰

相關鏈接:

https://towardsdatascience.com/machine-learning-is-getting-easier-software-engineering-is-still-hard-d4e8320bc046

如轉載,請後臺留言,遵守轉載規範

推薦文章閱讀

相關文章