最近換工作,要學很多以前我沒用過的程式語言技術,像是 TypeScript, GraphQL, Relay 等等。於是我上網找了很多免費的、付費的教學影片,像是在 YouTube、 Udemy、PluralSight 等等平台。
但很多教學影片從製作至今已經過了兩三年甚至五六年。在軟體的世界,過一年就人事已非了,何況是現在去看 2016年的教學說明。許多 web packages 的版本在六年間已經從 version 5.x 跳到 18.x 之類的... 因此即便那個教學影片再怎樣的手把手教學都沒有用。資訊已經完全過時。
軟體的世界就是這樣,技術日新月異。圖書館都不願意收舊的 coding 教科書,因為過時的資訊難以幫助到人。
軟體的世界就是這樣,技術日新月異。圖書館都不願意收舊的 coding 教科書,因為過時的資訊難以幫助到人。
許多人常萌生要自學 coding的念頭,但因為不得其門而入,一不小心熱情就會澆熄。身為一個自學 coding轉行當軟體工程師的人,我理解這種感覺。我們身在一個資訊爆炸的時代,但資訊量太大,找到對自己有用的教學資源其實就是自學最困難的一步。
很多人想到要學 coding,會想「課程會不會很貴?」「會不會很難?」「會不會需要花很久的時間?」其實這些問題都問錯了。自學 Coding是個知難行易的學問;如果知道怎麼找自學的資源,不用花多少錢甚至免費就能達成。如果找到對症下藥、適合自己的資源,認真跟著看跟著做也不會難上手。但如何找到那個沒有過時、資訊正確又適合自己的課程?很多人花了大把時間、大把金錢就卡在這個第一步。
我舉一個生活化的例子你就懂了。Ikea 的傢俱你說難組嗎?其實一點都不難,但先決條件是 Ikea的說明文件非常好懂、資訊正確,而 Ikea 家具的品管做得不錯,大部分我們買回家的包裝裡頭零件都正確,因此照著說明書一步一步完成不難還非常有成就感。
但我們也都買過很爛的家具組:說明書沒人看得懂、裡頭的零件缺一大堆,甚至連家具的裁切、材料本身都有問題,大小根本組不起來。不然就是說明書過時了:零件已經改版本了,但說明書沒有更新。如果組一個家具要一直打給客服補貨、換貨,而且甚至問題在哪裡我們都推敲不出來、客服那頭沒人回答我們問題... 我們一定非常洩氣,很快就放棄組家具了。我們一定心想「組家具太難了!」
講了一大堆,我要給予想要自學寫程式卻不得其門而入的你幾個建議:
1. Coding 的應用非常廣。首先請理解你為什麼要學寫 code。
很多人問我,學 code要學什麼語言?什麼語言最有用?其實這個問題問錯了。每個語言都有它的用處,端看你想要拿它來做什麼。你說西班牙文比阿拉伯語有用嗎?但如果你的目的是要去阿拉伯旅遊,那自然是阿拉伯語比較有用。
Coding有一層神秘的面紗,因為我們一般人不太知道什麼地方需要用到程式語言。答案是,任何科技產品背後幾乎都有軟體工程師。不管是你的手機、平板電腦、工廠的機器手臂、生產線的運行、網頁、導航程式等等等,這些東西沒有一樣不是靠程式語言達成的。所以先要知道你想要從事哪一個產業、哪一種的軟體工程師,才能知道該學哪一種語言。這裡有一篇講各式各樣的軟體工程師種類
2. 開始學之前,先花一個月以上的時間做研究、擬定學習計畫、尋找適合自己的資源。
我最近陪女兒看一個芝麻街的影集叫做 Mecha Builders,教小朋友怎麼以工程的角度解決問題。裡頭的人物每次遇到問題都是三個步驟: Plan it, Test it, Solve it。
工程的基本流程,第一個步驟就是規劃。工欲善其事必先利其器。把自己想學 code 的目的是什麼、時程是什麼、教學材料是什麼全部都想好,最後才是開始學。上課是最簡單的步驟。
台灣亞洲流行補習文化。補習班就是把 planning 的步驟都幫你做好了,時程、教材都準備規劃好了。甚至連你的最終目的都告訴你了:按照志願序填下來就對了。在這樣的教學環境長大,會讓我們以為只要等著別人告訴我們該學什麼,然後我們照單全收就對了。就像是別人把食物都熱好放在你面前,看誰吃得了最多就贏了。
但如果今天沒有人幫你把三餐備好,你知道去哪裡買菜、如何切菜、怎麼煮三餐嗎?其實前面的步驟比吃難得多了;如果你種菜、買菜、洗菜、切菜、煮菜都會了,還害怕不會吃嗎?
事實是,如果你只知道怎麼吃,那你就只能等著別人幫你煮好飯,別人煮什麼你吃什麼。只有你自己知道怎麼規劃自己的三餐,你才有選擇權自己煮自己想吃的。
所以說要把重點放在如何擬定學習計畫,尋找學習資源。Ikea 說明書有了、零件道具也都有了,那就幾乎人人都可以組出家具。但自學任何事情的路上不會有人把說明書交到你手中;你要自己主動去搜集資料。搜集資料本身就是很好的工程師訓練。
3. 請看教學資源上一次更新的日期。
通常如果是一兩年之內有更新過,那資訊可能還對得上。超過三五年沒有更新的課程,很可能已經過時,不如花時間找更常更新內容的課。
4. 有問題的話,有沒有可以詢問的地方。
Stack overflow 是一個人人都可以上去問問題的平台,但愈冷門的技術,就愈少人討論,你遇到問題的話,很可能就得自己摸索答案。 愈普遍的語言,資源愈多。
就像你如果今天學一個很冷門的語言,比如某個快要沒有人使用的原住民語言,你遇到問題的時候、需要教材的時候,都會比較困難。當然也有好處,就是你一旦變成專家,你的競爭對手也比較少。最後附上幾門我自己上過,一直不斷更新到最新資訊的課程,價格也很親民。這幾門都是想要從事網頁開發的新手很好入門的課程:
The Complete Web Developer in 2024: Zero to Mastery (這門課現不在 Udemy 上;如果堅持Udemy 平台,建議很受好評的 The Complete 2024 Web Development Bootcamp)
Master the Coding Interview: Data Structures + Algorithms
The Complete Junior to Senior Web Developer Roadmap (2024)
Complete Python Developer
最最後....
《讓我自學轉行成為矽谷軟體工程師的唯一一堂線上課程》
直接講結論。那唯一一堂課就是 The Complete Web Developer in 2024: Zero to Mastery (當時上的是 2019 版本,但它每年都更新)。 七折折扣碼 PPP_30 九折折扣碼 FRIENDS10
追蹤我的粉絲頁一段時間的朋友,就知道我一直很推崇一位線上課程的老師 Andrei Neagoie。
我 2019年上的是他這門 The Complete Web Developer: Zero to Mastery。我那時小孩才剛出生幾個月,我沒時間去上程式語言特訓班 bootcamp(光每天要搭地鐵進舊金山這點我就不大可能達成),所以我選擇在家看線上課程。而這門課就是我自學期間 60% 的資訊來源,讓我用九個月的時間轉行找到矽谷軟體工程師的工作。 這門 Zero To Mastery 的課後來Udemy 已經沒有了。原因是 Andrei 自己創業搞自己的平台了。因為他的課程夠多(現有 76門 coding 課,包含網頁開發、前端、後端、AI、機器學習...),這也很合理。
我每天信箱都收到非常多想要我幫他們推薦書呀、產品呀、課程呀等等的邀約,但因為我是雙寶上班媽媽,沒有太多時間親測這些產品,我絕得不會亂推我自己不了解的東西。但 Andrei 的課是經得起時間的考驗的。他也沒有找我幫他推銷;我從很多年前就自己 email 他問他有沒有跟他合作的機會,幫他把他的課程介紹給我的讀者們。 但因為他自己平台的課程賣得比 Udemy 貴,我還是戒慎恐懼地想了又想,會不會大家覺得只想要便宜的?
如今他的課程已有 76門,他平台上的課程已經規模經濟了,也已經不貴了。重點是我自己上過他五門課(網頁開發、Coding Interview、python、machine learning 等,我把連結在底下 ),我可以很確定他課程的品質是很好的,教的方式也讓人很好理解。他平台上涵蓋的內容包羅萬象,跟coding 有關的主題都可以找到。有時最花時間的事不是看 Netflix,而是在選片。上線上課程也是這樣;課程很多,但我們要花超多時間過濾資訊。那不如就去 Andrei 的課程平台上找課程吧,確保品質。
你可以選擇
1. 單買你喜歡的課程 (每門價格不一)
2. 付月租費,在會員期間可以上76門課任何一門 (23 USD/month)
3. 終身會員 (999 USD)
以下折扣碼都試試看:
五折: PPP_LOW
七折折扣碼: PPP_30
九折折扣碼: FRIENDS10
Zero To Mastery Academy (一次瀏覽 76門課程的總課程平台)
其他推薦課程:Complete A.I. Machine Learning and Data Science: Zero to MasteryThe Complete Junior to Senior Web Developer Roadmap (2024)
Master the Coding Interview: Data Structures + Algorithms
Complete Python Developer in 2024: Zero to Mastery
想要聽我完整的轉行故事嗎?
我的自傳《文藝少女的矽谷進擊》博客來連結:https://reurl.cc/GdgLNW
延伸閱讀:
是不是要「很聰明」、「數學很好」才能寫 code?
寫 code 與寫作的相似處猶豫「我適合當工程師嘛?」
這麼老了轉行還來得及嘛? 一歲女兒顛覆我對「時間」的理解女生當工程師比較難嘛?
想學寫程式的我,是否太笨了?(探討先天條件 v.s. 後天努力)
謝謝您的分享。
回覆刪除看到文末這段話「有時最花時間的事不是看 Netflix,而是在選片。」深有同感!
決定初入門學coding就從Andrei 的課程平台開始。