離家之際(一) – 在那條名為失敗的道路上

在蹉跎了近4年光陰後,終於再次決定離開這裡,離開所謂的家鄉了。
這個決定本來應該要更早到來的,但因為當年某個社會運動又燃起對這塊土地的熱情與希望。很明顯地,我已把那份情感消耗殆盡,現今餘下的只有憤恨與鄙夷。

儘管這四年來的決定幾乎都以失敗作收,但如果這份經驗能帶給你/妳什麼啟發的話,就拿去用吧。

那些關於轉職 – 程式語言、機器學習、深度學習、演算法的迷思

現在很多內容及求職網站都會告訴你軟體工程師薪水多好多、演算法的未來多麼光明、以及對比特幣的各種吹捧。除此之外還有一卡車的線上課程或實體論壇灌輸你/妳下面這個觀念:

螢幕快照 2018-08-16 下午2.21.42

但,真有這麼美好嗎?

跟我稍微有點交集的人應該都知道我這兩年花了不少時間自學程式語言、資料分析跟機器學習(ML)深度學習(DL)演算法。可能我這人實在是太不努力因而轉職失敗,這裡就列一下我上過的實體與MOOC給以轉職為目標的人參考看看:

Python 程式語言入門:

  • 台大資訓系統訓練班 – Python程式設計
  • University of Michigan
    • Programming for Everybody (Getting Started with Python)
    • Python Data Structures
    • Using Python to Access Web Data
    • Using Databases with Python

資料分析:

  • Udacity (Data Analyst Nanodegree)
    • Statistics
    • Intro to Data Analysis
    • Data Wrangling
    • EDA
    • Intro to Machine Learning
    • Data Visualization
  • University of Michigan
    • Applied Social Network Analysis in Python
    • Applied Machine Learning in Python
    • Applied Plotting, Charting & Data Representation in Python
    • Introduction to Data Science in Python

ML/DL:

  • Stanford University
    • CS224N: Natural Language Processing with Deep Learning
    • Machine Learning (Andrew Ng)
  • Deeplearning.ai (Andrew Ng)
    • Sequence Models
    • Convolutional Neural Networks
    • Structuring Machine Learning Projects
    • Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
    • Neural Networks and Deep Learning

演算法、資料結構(code practice):

  • Hackerrank
  • InterviewBit
  • Codewars
  • Kaggle

這還不包括自己去找其他外部資料跟研究別人的code怎麼寫,而且在進入ML/DL之前我大約花了近半年時間把統計學跟微積分重新摸上手(我是不覺得台灣學生除了數學跟統計相關科系會有誰在大學畢業後還記得統計學跟微積分在幹嘛啦,歡迎提供例外打臉。)。另外也參加了Python Taiwan 及 Pytorch Taipei 相關主題的讀書會,寫了好一些演算法相關文章(有興趣麻煩自己去找我的Medium或另一個專放技術相關文章的wordpress)。

然後我失敗了。

如果有觀者一個月前在FB看到我的PO文,現在可能會很疑惑:你既然都失敗了為什麼還要推薦別人去學???你是不是想抓交替???

沒錯,我在轉換商業價值的這一段路上失敗了。

但那是否表示這整段投入的時間、得到的知識收穫、以及因為這個機遇產生的跨領域交流經驗都是沒有價值的呢?

我個人推薦花時間學程式語言/演算法並非因為其可能可實現的商業價值,而是:

  1. 練英文(免費的聽說讀寫全方位訓練) – 當初自學的時候時常碰到MOOC課程裡面某些內容在影片中講得不太清楚或是需要查閱一些參考資料,便養成習慣去找英文的技術部落格或網站。當時台灣的技術部落格一種是很菜又愛寫堆拉跡來混淆視聽,一種是都只寫超簡單的技術入門,含金量高的技術部落格少之又少。甚至後面連翻譯都懶得自己做直接去抄中國的翻譯再簡轉繁貼在內容農場呵呵。然後台灣自己做的MOOC在一兩年前也就那幾個根本少得可憐,我個人在看了幾週台大林軒田當時紅得亂七八糟被大家當神在拜的課程後,當下就決定還是乖乖上英文課(如果你時間夠多可以上完Andrew Ng的ML之後再去看林軒田的機器學習基石,相信你會有一種原來你的母語是英文的錯覺。);後來在做面試解題練習時也很常跟外國人連線全程英語溝通講code。好英文,不練嗎?
  2. 訓練資訊查詢與整合能力 – 在看技術文章或是研究coding的時候還蠻常有那種本來只想看懂特定一篇但後續要另外再讀十篇才有辦法把所有內容整合在一起的情形。在偽知識及假新聞充斥的時代,這種資訊的分辨能力或許沒有商業價值,但你會覺得它不重要嗎?
  3. 訓練邏輯能力 – 程式語言是一門非常講究邏輯的學問,當邏輯不通的時候寫出來的程式就是會回傳各種光怪陸離的結果。當我們更能分辨邏輯上的因果關係,或許就不會那麼容易被各種雙重標準及話術挑撥矇騙了?
  4. 開源性質且支援龐大 – 大部分的知識在離開學校後不是很難接觸到就是少少內容要貴貴收費,但程式語言以現在來說連許多高階技術內容都可以免費且平等取得,其技術論文絕大部分也都能直接google到並免費下載(當然,看不看得懂就看個人造化了。);學習時會碰到的大多數問題也都能在網路上找到答案或找到人給予答案。
  5. 跨領域知識整合 – NLP自然語言處理需要語言學的相關知識、影像辨識則是色彩學/工業電腦視覺的領域延伸而來。更不用提在不同的資料集及想要解決的問題框架下需要將相關領域的知識與演算法結合以得到最佳解。
  6. 了解現今科技的進展與侷限,或許還能藉機思考一下科技帶來的道德與經濟問題 – 虛擬貨幣的龐氏騙局、影像辨識帶來的隱私侵害問題、AlphoGo是否會統治人類及科技將如何取代高階白領等等。

當然,以上益處可能因人而異,畢竟我是那種有不懂的地方就堅持要想辦法找資料搞清楚的類型。也是看過不少跟我上一樣課但領悟到的東西大相徑庭的人。而這些能力當然也不見得一定須要靠學一門你或許毫無興趣的技術才能得到。

那如果真是以轉職為目標的人呢?我的良心建議是花筆錢去念個研究所或拿個程設學位(美國/加拿大/法國,不要想國內了。你這幾年有聽說過哪一間國內研究所發表了什麼了不起的model或做出什麼了不起的project嗎?!)。MOOC跟自學無法給你人脈跟大型project做實戰訓練。Kaggle的資料集通常都已被清理得乾淨到不行,且Kaggle上面的名次通常不代表什麼,就只是超參數調校得很成功而已。在研究所/學校你才能用相對低很多的時間成本找到含金量高的專案跟可以跟你一起投入且能力相當的夥伴。台灣的就業市場,還是以文憑論成敗,不會因為是軟體工作跟知識開源而有所不同。


大概就是這樣吧。如果你/妳真心想學又覺得自己天資魯鈍需要有老師幫你上課解惑歡迎私訊聯繫,我會視交情給點折扣。上禮拜幫一群菜雞上了將近三小時的課才換到一杯不怎麼樣的冰滴咖啡,覺得真是慈善事業來著。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s