菜雞程式指南EP3. 文件、參考書、網路影片、線上課程......新手怎麼選擇教學資源?

更新於 發佈於 閱讀時間約 10 分鐘
在確定學習哪種程式語言後,接下來總算要進入正式的學習了......(´・ω・`)吧?
按照慣例,在搜尋引擎裡輸入 "xxxx(語言) 教學" ,一樣跳出各種琳瑯滿目的選擇,首先前兩個一定是某些電腦補習班的廣告(不信去試),再來有YT教學影片、實體參考書、IT鐵人賽教學文、網路課程等等等等。如果你跟我一樣有選擇困難症,應該跟我一樣開始頭昏眼花、焦慮不已吧。・゚・(つд`゚)・゚・。
這個章節就稍微總結整理一下,身為程式小白,你會碰到的幾種學習資源,以及該如何妥善選擇才能有最大的學習成效吧(ゝ∀・)b!
(文章末尾也會推薦幾個優質的教學資源給大家~)

文件 (Document)

程式是一門充滿細節且極度繁瑣的知識領域,因此不論是最基本的程式語言、或者是進階的模組套件、應用程式,都有相應的文件提供開發者參考,包括語法、函數、參數、組態設定等等,是所有資源裡面資料最完整的。
JavsScript 的文件
既然是最完整的,那新手是不是應該從文件入手,以獲得最全面的知識學習呢?
答案是,千萬不要
文件的腳色其實更像是「字典」,在你可能需要一些比較特殊的用法、或是細節的操作時,才會去翻閱的資源。即使是程式高手,也絕不是靠著死啃文件來進步的,而是在有需要的時候才去查詢。
就像在學習寫作文,沒有人是靠生啃一整本字典,把裡面所有的單字、例句死背,就能夠寫出流暢優美的文章;相對的,都是先從閱讀小短文開始,慢慢認識生字、練習造樣造句、理解段落設計,久而久之培養出一定的語感,再練習寫出順暢的文章。
而字典,就只是你在忘記某個字的寫法的時候,拿起來翻的工具書而已,絕對不是什麼學習資源。

參考書(實體/電子書)

身為一個書呆子(✺ω✺),講到「學習」,直覺想到的就是「讀書」,因此入門的第一個學習資源,就是到天瓏書局(專門賣電腦參考書的書店)買回來的一本磚頭書。
直接講結論:讀得很痛苦,整本嗑完後不明所以,完全沒有「啊~我學會了XXXX」 的感覺。
(詳情可參考 EP0.
我當年噩夢的元凶
回頭檢視當初的過程,以及後來陸陸續續接觸到的其他參考書後,我認為可能是囿於文字與圖片的呈現方式,讓這些參考書的「腳色定位」非常不明。
以初學者來說,不論學哪個語言,做重要的都是「培養程式思維」,因此在學會基本語法,如變數宣告、迴圈、判斷式、函式後,其實最需要的是大量的練習,在過程中熟悉這些工具的運用,漸漸掌握「設計程式」的訣竅。
而市面上大部分的參考書,一樣都會有上述基本語法的教學,帶你認識程式運作的基礎;然而,再帶過這些內容後,很多參考書就開始教你「進階模組運用」,一個章節教一個模組,以及該模組的範例應用程式碼,直到最後一章。
上述並非表示模組不重要,但這樣的章節安排非常破碎,彼此之間沒有任何知識節點,而且在沒有專案概念的情況下,大部分的模組教學對於初學者來說根本「沒有使用情境」,簡單來說就是「學了也不知道幹嘛」( º﹃º )。
這樣的結果就是讓參考書的定位非常尷尬:前半部講語法的部分確實非常新手友善,讓你慢慢熟悉一個語言的語法規則,然而後半部又突然變得像介紹模組的「字典」,頂多比文件多一兩個示範的程式碼罷了。
(也不是不能理解這樣的章節設計,畢竟這樣寫書最快,找幾個模組、稍微補一些自己的程式碼就可以出書,不用花太多心力在設計章節架構上。)
除非你是已經有一定程度的 Coder,清楚知道程式架構與模組運用的概念,看參考書來按圖索驥,可能比較有幫助;反之,如果你是「完全的小白」,或是「稍微熟悉語法運用」的新手,都強烈勸退你想靠書籍來學程式的想法(๑•́ ₃ •̀๑)。
(註:這邊說明的情境是「給初學者的學習參考書」,並非只所有程式相關的參考書,如果往資料結構、演算法等更精深的領域學習的話,書籍仍是一個詳盡、優質的學習資源)

網路影片/教學課程

來到本章節的重點,也是我最推薦大家學習的方式ヽ(●´∀`●)ノ!
在我崎嶇的學習過程中,接觸各種不同媒介的學習資源後,我認為影片是最適合新手學習的資源選擇,理由如下:
  • 有聲音配合畫面,比較不容易睡著(我一直看字會愛睏XD)
  • 跟著教師 Live Coding 的畫面,可以逐步理解解題過程的邏輯,學習從無到有建構程式碼,建立程式思維;同時也可以觀察教師遇到 BUG 時,是如何透過排除法測試一步步問題、下關鍵字查詢答案等等技巧。
  • 觀察教師的程式碼,參考教師的命名習慣、排版習慣、函式設計技巧、物件設計邏輯等等,來內化成自己的 Coding 哲學,學習如何提升程式可讀性與維護性。
  • 專案導向的學習路徑:在初學者已經熟悉基本的程式語言運用後,下一步要挑戰的便是如何將程式碼從「單純解題」,晉升到「服務功能」的程度,也就是完成一個完整的專案(Project)。
    依據你想精進的領域不同,專案的方向也會不同,以我自己的後端領域來說,初學者的專案大概就是先完成在雲端上啟動一個小網站的程度。
    很多網路教學課程都會在教學內容中從無到有製作一個簡易的專案,這個部分也是我認為網路教學資源相對比書本豐富優質的一個原因:在建立專案的過程中,初學者可以從「需求」層面來出發,思考專案的建構邏輯,包含模組設計、程式碼優化、版本控制等等的概念。
    如果你需要存取資料,則可使用 SQL 或 NoSQL 等資料庫來協助高效存取;
    如果你需要登入功能,則可使用 Bcrypt 相關模組建立密碼驗證系統;
    如果你需要快取功能,則可使用 Redis 或是 memcached 等應用程式;
    如果你需要 AWS 相關服務,則可使用 AWS 提供的 SDK 模組進行串接......

    從上述敘述可以看出,所有學習內容都是根據「需求」,來決定要學習使用什麼工具來解決,以及需要使用到多深的程度,而不是像參考書,將模組條列式的詳細攤開來介紹。
    除了漸漸熟悉越來越多的應用與細節外,我覺得這樣的過程也有助於初學者建立「工程師思維」:程式碼的目的,就是為了要解決需求或問題。
    遇到問題,尋找辦法,代入程式,解決問題,就是工程師的核心精神。

除了上述優點外,我也推薦大家盡量服用英文的教學資源,畢竟在程式世界,不管是教學資源還是交流論壇,大部分還是以英文作為溝通渠道,因此越讓自己習慣閱讀、理解英文,熟悉相關領域的關鍵字,在學習或是尋找問題的效率都會越高(゚3゚)~♪。

坊間補習班

拜託不要。
......
好啦,這樣講不免有些一竿子打翻一條船的嫌疑,但我自己的親身經驗是真的不划算,補習班套課的價格可以在 Udemy 上買好幾百堂優質課程,而且課程內容、品質也不一定比較好。
如果你是剛入坑的新手,絕對不建議你馬上就腦衝花錢報名補習班,起碼去 Udemy 上個幾堂課後,如果真的還是覺得沒有方向、想要有個完整的學習課程與助教協助,「請多上網爬詢相關課程評價後」,再決定是否要報名。
(悲慘經驗一樣參考 EP0.

結語:除了媒介外,你還應該注意的事情

走筆至此,無論你未來是要選擇書、教學影片、課程來學習程式,除了考慮上述提及的優缺點外,還有一個更重要的關鍵,那就是
!!!記得看版本!!!
用「日新月異」四個字來形容程式碼的更新速度完全不為過,去年的教學影片可能今年就有一些函式規則的變動,更別提更久以前的教學資源,與現今的版本一定差異更大(´_ゝ`)。
雖然在大多數情況下,短時間的版本差異不太會造成惡性 Bug ,但我個人還是建議對於這種程式實作教學,盡量挑選較新的、或是教師也持續更新的教學資源,不要選五年以前的課程(除非是概念解析、非實作的課程,比如解釋 API、MVC、CSRF 之類的短影片)。
(實際上我自己偏好三年以內的教學資源(ノ>ω<)ノ)
同時也要注意版本號,版本號的第一個數字是版本差異最大的,比如說 Python2 跟 Python3 看起來只差一號,但兩者基本上可說是不同的語言了,相對可使用的模組與應用也完全不同,務必在開始學習前注意這些細節。

文章的最後也不藏私(*´∀`)~♥,分享幾個我個人推薦的優質課程內容給大家參考(偏網頁開發領域),也歡迎大家留言分享自己上過的優質學習資源交流一下歐~

ccClub 讀書會

身為讀書會助教,當然要自肥一下自己家的教學資源啦~
目前 ccClub 以 Python 基礎語法教學為主,除了 YT 教學影片Judge 刷題系統可以免費使用外,還會不定期舉辦讀書會,透過大家一起學習的方式增加學習動能與效果,詳情請見 ccClub 粉絲團,追蹤我們的最新訊息吧!

AppWorks School

AS 是 for 轉職者的實體培訓班,在 EP0. 有相關介紹,在這邊就簡單給大家參考。

FreeCodeCamp

FreeCodeCamp 分為兩部分,一是學習網站,提供各種類型的初學者教學系列,每個概念配合一個簡單的情境題,讓你在解題過程中逐漸熟悉與法規則;
(我自己的 HTML, CSS, JavsScript 的基本觀念是在這裡學的)
另外則是 YT 頻道,在這裡他們跟多位程式教學創作者合作,上傳各種不同領域的教學影片,從初階的語法教學到各種不同的應用實作,簡直是學習資源的寶庫,有什麼好奇想學的領域都可以先來這裡挖挖看~

TreeHouse

TreeHouse 是程式教學線上套課,採訂閱制付費,比較特別的是回提供課程路徑(Road Map)給學習者,比如說後端開發課程、前端開發課程、資料庫開發課程等等,會包含該領域所需的技術課程章節,適合想要有系統的學習開發技能的朋友。

Udemy

Udemy 也是蠻老牌的線上課程平台,包含各種知識的影片課程,費用也不貴,而且時不時會有特價,你可以先把喜歡的課程存起來,等到打折的時候在購買。
我個人非常推薦 John Smilga 這位老師的課程,在 JS 裡他有提供很多迷你專案的練習,讓你可以循序漸進的理解各種情境的使用技巧。另外 HTML 跟 CSS 的課程也非常推。
(你可以先在 FreeCodeCamp 的 YT 影片裡找他的影片試聽看看)

YouTube

附上幾個我覺得很棒的頻道,就不細講了,提供給大家參考。
祝大家都能找到自己喜歡的學習資源,我們下一章再見ε٩(๑> ₃ <)۶з~
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
56會員
85內容數
這裡是專屬於我個人的生物學筆記,紀錄那些神奇有趣、變化萬千的有趣生物知識。 撇開為了分數而苦讀的生硬生物知識,讓我告訴你該怎麼用正確的姿勢,閱讀生命的奇蹟故事!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
魚骨書籤的沙龍 的其他內容
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
身為程式初學者,該抱持著什麼心態踏與認知上起點,才不容易在半途而廢?
這是我從程式小白到成為 Jr. 工程師的心路歷程,希望可以幫助道同樣在轉職之路上的朋友們。
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
身為程式初學者,該抱持著什麼心態踏與認知上起點,才不容易在半途而廢?
這是我從程式小白到成為 Jr. 工程師的心路歷程,希望可以幫助道同樣在轉職之路上的朋友們。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇心得主要是寫給寫作新手看的,因為我覺得老手都有自己的一套閱讀系統。先說明一下這只是我的經驗,並不是唯一的正解。寫作沒有所謂的對與錯,只有是否找到合適的方法。 那麼,我們開始了。 這篇心得分為三個部分,分別是: 為甚麼要閱讀 如何選擇讀物 總結
數學系的訓練,與上面閱讀原始碼的優先順序,本質上是反過來的。在數學的訓練中,是先把函數定義的非常清楚,再進一步去看函數應用在具體的數據上會發生什麼行為,然後就到此為止,不太會再有進一步的討論。但如上面西尾泰和所述,工程師看事情的角度,是先掌握全局,然後再進一步細化每一層的細節。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
我一直都不太能專心讀完一本課本, 總是喜歡收集各種在講同一個主題的書, 然後去分析這些書之間哪邊一致,哪邊不一致。 教科書作為老師上課時候的主要引用來源, 我想只要那本中文教科書的品質夠好,那麼用中文教科書也很適合。 然而,我想大家都有經驗,理工科的中文教科書,
Thumbnail
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
每次我的臉書或Threads推薦給我很多抄書仔的內容, 我都會為自己難過,是不是自己的閱讀習慣, 讓演算法誤以為, 我想吃這些第三第四第五手的資訊排遺。 有一類的帳號,專門把書籍課程等已經有結構的資訊, 做簡化,弄成精華版, 誇誇而談那些自己沒有的經驗。 而
Thumbnail
選擇困難是資訊洪流時代的必然,關鍵字搜尋後跳出一堆文章,到底那個可信?那篇合適?沒有標準答案且因人而異。英文學習沒有捷徑,只能踏實行之,既要有字彙量又要懂文法,尤其是還得用英文寫出文章時。學習過程不會都是快樂的,難免有壓力,但學習有所得的成就感是充實的。我試著分享自身的英文學習歷程、方法與工具書,以
Thumbnail
想必很多剛接觸日文的人都會很想知道一個問題:「要用什麼教材來學習?」 市面上有非常多各式各樣的教科書,從基礎到為各個等級設計的教科書、模擬考題都有。有的可以用來自學,有的只適合上課用。
學習語言,大量輸入(input)是非常重要的 學習英語不要再捧著單字書從頭背到尾 試試看利用網路免費電子書、有聲書資源,無痛、短時間提升英語實力
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇心得主要是寫給寫作新手看的,因為我覺得老手都有自己的一套閱讀系統。先說明一下這只是我的經驗,並不是唯一的正解。寫作沒有所謂的對與錯,只有是否找到合適的方法。 那麼,我們開始了。 這篇心得分為三個部分,分別是: 為甚麼要閱讀 如何選擇讀物 總結
數學系的訓練,與上面閱讀原始碼的優先順序,本質上是反過來的。在數學的訓練中,是先把函數定義的非常清楚,再進一步去看函數應用在具體的數據上會發生什麼行為,然後就到此為止,不太會再有進一步的討論。但如上面西尾泰和所述,工程師看事情的角度,是先掌握全局,然後再進一步細化每一層的細節。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
我一直都不太能專心讀完一本課本, 總是喜歡收集各種在講同一個主題的書, 然後去分析這些書之間哪邊一致,哪邊不一致。 教科書作為老師上課時候的主要引用來源, 我想只要那本中文教科書的品質夠好,那麼用中文教科書也很適合。 然而,我想大家都有經驗,理工科的中文教科書,
Thumbnail
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
每次我的臉書或Threads推薦給我很多抄書仔的內容, 我都會為自己難過,是不是自己的閱讀習慣, 讓演算法誤以為, 我想吃這些第三第四第五手的資訊排遺。 有一類的帳號,專門把書籍課程等已經有結構的資訊, 做簡化,弄成精華版, 誇誇而談那些自己沒有的經驗。 而
Thumbnail
選擇困難是資訊洪流時代的必然,關鍵字搜尋後跳出一堆文章,到底那個可信?那篇合適?沒有標準答案且因人而異。英文學習沒有捷徑,只能踏實行之,既要有字彙量又要懂文法,尤其是還得用英文寫出文章時。學習過程不會都是快樂的,難免有壓力,但學習有所得的成就感是充實的。我試著分享自身的英文學習歷程、方法與工具書,以
Thumbnail
想必很多剛接觸日文的人都會很想知道一個問題:「要用什麼教材來學習?」 市面上有非常多各式各樣的教科書,從基礎到為各個等級設計的教科書、模擬考題都有。有的可以用來自學,有的只適合上課用。
學習語言,大量輸入(input)是非常重要的 學習英語不要再捧著單字書從頭背到尾 試試看利用網路免費電子書、有聲書資源,無痛、短時間提升英語實力