【入行系列】免費資源學習編程和入行成為 Programmer? (2022 更新)
2022-08-19
前言
承上篇,提到開辦編程課程已經近五年了,同事建議我集合過往的經驗,寫幾篇關於新手入門的文章,讓有意投身業界的朋友先找到一個正確方向。這篇緊接著上一篇說明不同語言的分別,介紹一下不同語言的入門方法。
應該網上自學還是報讀課程?
雖然我們是營辦課程者,但我並不建議希望入行的朋友第一步就急著報讀實體課程:畢竟在香港物價高昂,租貴人工貴,自然有真人導師的課程都特別貴,如果作為完全初學者便急急報讀課程,初學者能聽到的往往只是在網上都能夠拿到資源的皮毛知識,花了錢之餘亦未必能夠於短時間內掌握知識,可謂得不償失。
更佳的做法,其實是率先網上自學,有足夠的基礎了解後,再考慮報讀實體課程,或者一些天資較聰敏的同學,還會有機會已經可以跳過實體課,直接嘗試投身業界。
可是自學往往會遇到一個問題:「到底怎麼入手啊!!!」嗯,對的,網上資源泛濫,也做成初學者感到混亂難以開始。所以,這篇文章收集了一些我經常建議同學率先自學的免費資源,在不用花費一分一毫便可感受自己是否喜歡編程,並可以給予大家一個正確的入門方向,按步就班,一步步成就編程的目標。
當然,有些同學在自學的過程中,會感受到無比的挫敗,而且又沒有動力。如果真的是這樣,報讀課程,有一班共同努力的同學,也會是一個能夠鼓勵自己和推動自己進步的方法。(傳送門:按這裡考慮報名吧!若然給價錢嚇倒,還是回來這裡繼續閱讀下去)
網上自學 CS50x
在眾多的課程之中,最高質的莫過於由 Harvard University 每年所拍攝的 CS50x Introduction to Computer Science。這個課程專為所有背景包括文商科生而設,讓他們都能夠一步步掌握電腦運作原理和編程知識。
如果你在瀏覽器搜尋 CS50x, 會發現有幾個不同版本,edX 的版本付款後能夠獲得導師對答和取得證明,但若然你不需要的話,可以到訪 CS50x https://cs50.harvard.edu/x/2022/ ,這裡有免費而且完整版本的課程,所有內容與付費版無異。
CS50x 包括非常廣泛而十分重要的基礎編程內容,由最簡單的 Scratch 讓讀者了解簡單編程原理,一步步由 C 開始透過編程入手理解電腦的底層運作,再到一些常見的語言例如 Python、SQL、HTML、CSS 和 JavaScript 等等。如果你有讀到上一篇關於選擇語言的文章,你會發現這個課程幾乎涵蓋了大部份內容。
不過,最令人卻步的是,課程的安排是以「每星期」計算,很多人以為自己一星期完成不了一週的內容,便放棄了編程。其實不用這麼灰心!這個課程本來是設計給全職讀書的大學生,那麼也假設他們投入的時間會比正在閱讀文章的你更多。依我的觀察,若你能使用 3 倍時間,即大約 3 星期完成這課程 1 週的內容,便已經非常理想!
這個 CS50 系列還包括一些後續課程,例如專門為 遊戲開發 而設的 CS50 Game Development,還有了解人工智能的 CS50 Artificial Intelligence 等等。
CS50 太難了!
筆者我很希望你別讀到這裡,先挑戰一下 CS50⋯⋯然後才回來讀下去。
殘酷的現實是,CS50 對於某些初學者來說,仍然是過份困難,儘管 CS50 Lecturer David J Malan 怎麼費盡力氣由講台左邊走到右邊,又手舞足蹈解釋很多概念,始終每課的長度差不多有一至兩小時,而且練習又長又難,對於集中力差一點點 或 英文差一點點 的朋友來說,要堅持完成 13 週的課程(乘 3 即是大約半年時間),實在有點不可能。
那是不是要放棄呢?都不是!還有一些免費平台都是十分簡單易學,以下介紹兩個對初學者來說都容易上手的入門網站。
- freeCodeCamp
freeCodeCamp 是一個著名老牌網站,包括了很多方便初學者入門的練習。對比於 CS50, 實在是另一個極端,每個練習只需要花大約 1 - 5 分鐘便能完成,好處是學習成功感、速度感來得較快,而缺點就是內容較鬆散,而且有些內容太過簡單,重重覆覆做起來可能會沉悶一點,亦沒有進階的內容。
初學者建議從「JavaScript Algorithms and Data Structures」開始學起,然後再按興趣嘗試其他例如 Responsive Web Design 或 Data Visualization 等課題。若然偶然覺得太過簡單,亦可以返回 CS50 梅花間竹的兩邊學習。
- Tecky Code
以上的資源都是英文為主,有沒有中文的呢?也有!我們 Tecky 也打造了一個比 freeCodeCamp 深入和詳盡一些的免費入門網上學習平台,包含 JavaScript 和 Python 的各式各類入門學習題目。同樣地,每一題大約花 5 - 15 分鐘便能完成,能夠快一點有些成功感,隨時隨地可以學習,而且更是少數以繁體中文配合英文用語的 編程學習平台,讓英文較弱的同學都能輕鬆學習。
當然,與 freeCodeCamp 有著同樣缺點,就是內容較鬆散,完成 Tecky Code 後還是建議回到 CS50 繼續學習更深入的課題,這樣才能完整學習各方面的知識。
還聽說有個什麼 LeetCode 操題平台?
如果你從現職 Programmer 道聽途說怎樣學 Coding,可能有些朋友會介紹一個名為 LeetCode 的平台,這個貌似與上方的 freeCodeCamp 和 Tecky Code 相似,但其實這個平台的內容卻艱深得多。
這個平台多數讓專業 Programmer 或已有充足編程認識的 準Programmer 去鍛練自己對 演算法Algorithm 的認識,而且更多時候是用作準備面試前的操練,並不適合初學者。作為初學者來說,就像還未學好 文法Grammar 便想學習文學賞析一樣,是難度太高的挑戰。
我建議 LeetCode 是放到最後,當你對自己的編程有一定信心時,才開始操練吧!
留言
閱讀更多
如何成為 Programmer (二):其實入行不難
2018-11-02
續上一篇講及 Programmer 前景不錯之後,可能你也心思思想投身這個行業,但倘若你本來不是 CS Degree 畢業,也不是理科生,你還以為 Programmer 或 Coding 都與你無緣了。不過,根據很多的調查發現,原來這種種背景都絕對不是問題!
學寫Code失敗之四大原因
2020-03-21
不知不覺間,筆者從事編程教育已踏入第三個半的年頭:在這段時間之中,見證了二百多位同學由編程初哥開始,經過十多星期的努力、挫折、合作,最終成為專業的程式設計師。當然,在這段時間之中,筆者亦見證了一些學寫Code失敗的情況,固然每個人的天份才能有所不同,有些同學的思考方式天生就與編程較為契合,有些同學則要花九牛二虎之力,才能成為一個專業的程式設計師。 因此,筆者由數年的觀察所得,發現學寫Code失敗的同學皆有一些共通點,因此希望在此分享,如果你有意踏入資訊科技一行,或是想報讀我們Tecky的課程,不妨留意一下自己編程有否這些自己不察覺的問題啊!
回應業界部份人士對 Coding Bootcamp 常見之質疑
2020-11-06
筆者由開始在Coding Bootcamp一行創業以來,固然在教學上得到不少滿足感,始終這一行是為了幫助同學轉行而存在的,因此當同學成功找到一份軟件工程師的工作,滿足感的確是無與倫比。 然而,在這趟旅程之上,常常都收到不少質疑,絕大多數更是來自於業界同行。 因此,本文就集中回應一下,解答一下大家的疑惑。
【入行指南】我應該學習哪種 Programming Language?
2022-08-16
不知不覺間,開辦編程課程已經近五年了,親身培訓及提攜投身科技界的畢業生都超過 500 人,回想起每一個同學在最初學習階段,對一些常見的問題都一頭霧水,同事建議我寫幾篇關於新手入門的文章,讓有意投身業界的朋友先找到一個正確方向。