經驗分享:兩年從不會編程到AI工程師

量子位 發佈 2020-01-23T13:53:57+00:00

「機器學習「的世界深深吸引了他,最讓他著迷的是輸入數據,然後預測結果這個過程。原來,他對銀行產品的複雜性著迷,經過了一段時間工作後,覺得不過是從客戶獲利的一種方式。總之,舊的東西沒變得有那麼吸引他,又出現了新的興趣。他決定改變工作方向了。但現實是,他完全不會編程。那時候的他的字典

賴可 發自 凹非寺量子位 報導 | 公眾號 QbitAI

想做機器學習的工作,卻覺得自己沒有專業技能?

有一位小哥,從不知道Python到找到AI工程的工作,用時兩年。他的文章在網上獲得了5000多條點讚。

有網友在他的故事裡看到了激情好奇心

這條路不好走,這非常不容易。享受路上小小的勝利,從遇到的眾多挫折中學習。All the best!

他的經驗或許能給你一些啟發。

不知道Python,卻被」機器學習「吸引

這位David Chong小哥在新加坡管理大學的專業是經濟和金融,本來畢業後打算在銀行工作。

畢業前的9個月,他找到了日企野村證券的工作。這期間,他接觸了一些數據分析的軟體,學習了Excel VBA編程,數據可視化軟體Tableau和Power BI,還有機器人過程自動化軟體UiPath。

「機器學習「的世界深深吸引了他,最讓他著迷的是輸入數據,然後預測結果這個過程。

原來,他對銀行產品的複雜性著迷,經過了一段時間工作後,覺得不過是從客戶獲利的一種方式。

總之,舊的東西沒變得有那麼吸引他,又出現了新的興趣。他決定改變工作方向了。

但現實是,他完全不會編程。

那時候的他的字典里,Python是一種蛇,而Pig……是一頭豬。

在Mooc上瘋狂自學,紙上得來終覺淺

想學數據科學,網上資源大把大把,於是他在Mooc上註冊了不少課程:

  1. Python 訓練營:Python 3 從零開始成為英雄[ Udemy ]
  2. 用於數據科學和機器學的 Python 訓練營[ Udemy ]
  3. 使用MySQL管理大數據[ Coursera ]
  4. Java初學者教程[ Udemy ]
  5. Web開發人員訓練營 [ Udemy ]
  6. 機器學習A-Z:動手實踐數據科學中Python和R [ Udemy ]
  7. 用Docker進行機器學習和NLP模型[ Udemy ]

不過他只完成了前三門課程。Mooc的課程內容非常簡潔,也讓他很快就對一門課失去興趣,還沒有上完就去看下一門。

MOOC上教授傳統機器學習方法時,往往會跳過模型實際在做什麼這個部分。比如,會教隨機森林是決策樹的集合,但不會講決策樹怎樣決定在哪個分支上選擇哪些特徵(也就是熵概念和與之相關的數學);會簡單介紹支持向量機是分類方法,但不會講如何確定超平面。

深度學習的課程更不能滿足做獲取AI專業技能的需求。

相關課程通常會在Tensorflow上,在MNIST這樣不錯的數據集上給出大量代碼,然後讓你覺得自己是深度學習專家了。

但是這遠遠不夠。研究論文通常包含複雜的體系結構,涉及理解深度神經網絡模型中的特徵提取,以及其他更複雜的特徵,例如Transformer和雙向編碼。理解為什麼某些最新模型比其他模型更好,以及遷移學習transfer learning元學習meta learning等概念也很重要。

小哥認為,Mooc的課程的優勢在於快速入門。上面的課也容易給人誤導,任何人都可以成為機器學習的從業者,以為機器學習就是關於.fit() and .predict()的幾行代碼。

實踐和挫折

因此,上了在線課程後。為了提高編程能力,David選擇在Hackerrank上進行練習,完成關於SQL和Python的問題。

同時,他還用python進行了一個項目,來實現在網上自動預訂羽毛球場。新加坡的羽毛球場需要提前搶著預定,經常提前兩周就預訂完了。

經過一段時間的學習和操練,David對自己的技能水平心裡有了個大概:

對寫python很有信心,但是對代碼效率一無所知。

在機器學習上,是jupyter notebook專家,可以把Jupyter notebook 的主題改為「 dark mode」,並使用所有的鍵盤快捷鍵。

他想做數據科學家。

但是面試失敗了,涉及代碼的技術測試比他學習的「數據科學」發展更快。他本來申請了技術分析師的職位,被轉去了另一部門,做了業務分析師。

這離他的目標還很遠。

接受專業學術訓練

為了有更好的技能,他決定在學校繼續讀商業IT碩士學位(專門研究AI)

接受專業教育的過程中,大大的補充了此前知識框架的不足。

他學習了傳統ML模型背後的數學原理,在自定義數據集上應用了最新的深度學習架構;有關AI的重要概念,包括常見的搜索算法,Q-learning and 深度Q-learning;算法設計,包括圖形算法,時間和空間複雜度,名稱匹配算法以及其它很多算法。

他還參加了幾個學校的碩士項目。這些項目不完整,數據集經常從Kaggle上獲得,在Jupyter notebook上結束。深度學習模型在Docker上運行,但不考慮部署。

David 看來,碩士教育提供了AI從業者所需要的嚴謹學術訓練,但缺乏實際應用的訓練。碩士課程不會告訴你數據科學工作的必要條件。這個部分需要自己去弄清楚。

軟體工程和DevOps技能通常是必需的(儘管並不廣泛)。在大型組織中,代碼協作也很重要。比如,如何設置Docker環境,啟動AWS EC2實例,在Azure blob存儲上託管數據集,有效地組織代碼,使用GitHub或GitLab進行版本控制。課堂不會教授這些內容。

在面試中積累

David繼續進行面試,在技術面試和非技術面試中積累了很多經驗(大多數人都不及格),也知道了自己所缺的知識,然後花時間補足。

面試帶來更重要的經驗是讓他詳細地摸了摸行情。

他明白了公司對於同樣一個職位角色做的不同描述,以及這與公司在採用AI技術的成熟度之間的對應關係。

最終,在決定做AI工作的兩年後,他找到了一個好機會,是一個會被培訓成AI工程師的職位

小哥目前的職位是在野村證券操作風險部門operation risk的數據分析師。他在郵件中告訴量子位,下個月他將會轉去新的崗位。

小哥覺得,這只是一個開始,職業之路就像一場馬拉松,不是短跑。

One more thing

看了David小哥職業路徑,對你有沒有啟發呢?

David 說分享自己的經驗也是為了鼓舞更多的人,不要把他的經驗看成指南。

這是我個人的軼事,我希望能夠鼓舞人們,抱持信念去做他們想做的事情,因為人生太短暫了,不能過沒有意義的生活。

做你愛的事情,因為你會花你生命的一大部分來工作。

如果你感到迷失,記住Elsa說的「do the next right thing」


參考資料:

https://towardsdatascience.com/i-had-no-idea-how-to-write-code-two-years-ago-now-im-an-ai-engineer-13c530ab8227


— 完 —

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態

關鍵字: