[程式教育] 如何學習程式語言?比較3種不同的學習管道

Photo by Julia M Cameron

前一篇我們提到,學習之前必須搞清楚「動機」與「目的」,再尋找對應的有效學習方法。但是對程式語言的初學者來說,還沒有理解基礎知識的情況,包括有哪些程式語言?分別應用在哪些領域?都還是矇矇懂懂的,很難有明確的動機與目的。

對國高中生來說,除了技職體系或五專之外,大部分的學生還未進入所謂專科教育。在沒有任何電腦科學的基礎知識下,不論你一開始是學習哪一種程式語言,我們可以把學習管道區分為以下三大類。

簡單來說,這三種學習管道是依照「自己學還是別人教」跟「單向學習還是雙向反饋」這兩個分辨點來加以區分,所以在學習曲線、花費的時間跟金錢成本上,當然也有所差異。

一、自主學習

自主學習,意即從零開始完全靠自己尋找相關資訊,一步步摸索前進。好處是因為全都自己來,學習過程比較深刻、容易記得住。但缺點是可能無法有系統性的學習,在未整理的龐大資訊量中,要花相對多的時間尋找正確的學習資源。

對於有自主學習經驗的學習者來說,在已經有明確的學習目標的前提下,只要尋找到適合自己的學習資源,那學習成效也是不錯的。但相對的,沒有明確目標,就容易在過程中發散,或甚至根本不知道如何開始,導致學習受挫。

缺點:不容易系統化學習
資源:書籍、線上教學影片

二、線上課程

線上課程,與上面提到的資源:線上教學影片,是有區別的。在這邊對「線上課程」的定義是一門「課程」,也就是課程內容是有「特定目標」的。在上完這樣的課程後,預期能獲得某方面的知識,然後帶著這些知識,繼續往下一個階段的課程前進。

相對於自主學習,透過線上課程,能較有系統化的學習。但這樣的課程,通常是事先錄製好的內容,學習者是單方面的吸收。一旦遇到有疑問的地方,只能再自行尋找相關答案,如果找不到解答,或者對其有疑慮,學習就容易到一半卡關。

缺點:單向吸收無法及時反饋
資源:免費或付費的線上課程平台

三、實體教學

實體教學,可以解決上述線上課程的缺點,這邊我定義為互動式教學,所以遠端或是面對面的實體教學,都屬於這一類。畢竟程式語言是一門需要手動操作的課程,有老師在旁即時反饋,絕對是最有效的學習方式。

實體課程的好處是,有疑問時可以快速獲取答案。不過當課程是團體形式時,在課程進度需配合多數人的程度而安排,也容易因整體程度差異影響學習成效。所以最佳的方式還是一對一教學,不但可以即時反饋,還能依照學習者的能力去彈性調整課程內容,以獲取最佳的成效。

優點:即時反饋、課程彈性
資源:教育組織、一對一家教

三種學習管道的比較

從上述文章,我們可以整理出下列表格,將這三種學習管道,依照不同面向,分別列出其差異處。提供給學習者,能依照自己的情況,選擇適當的管道,加以學習。

比較面向\學習管道自主學習線上課程實體教學
區分點自己學
單向吸收
別人教
單向吸收
別人教
雙向互動
系統化
時間成本
費用成本
學習資源書籍
網路
免費課程平台
付費課程平台
一對多教學
一對一家教

學習管道比較表

至於「二的九次方」這個網站,是我,「三寶爸工程師」,所建立的教學網站。我個人能提供「一對一家教」的實體教學,歡迎有興趣的家長或同學,透過我的臉書私訊聯繫我。網站的部分則會在接下來的文章中,依照上述不同的管道與類別,列出現有的學習資源,也歡迎有興趣的學習者,填寫下方表單訂閱電子報,才能收到最新文章的通知。

Read more

聽說 AI 都能寫程式了,那我還需要學程式語言嗎?

自從ChatGPT橫空問世,人們在獲取知識的方式,發生很大的改變。很多既有的知識或疑問,可以不用在透過Google等搜尋引擎,搭配正確的關鍵字,從中找到相符的結果。 有了ChatGPT,只要用聊天的方式,用人類自然語言詢問,就能在短時間統整出邏輯清晰且條理分明的結果。不論是知識的學習、文章的統整、甚至程式的撰寫,都能透過AI工具快速產生具有一定水準的成品。 那,既然AI都能幫忙寫程式,而且也寫得不錯,我還需要學習程式語言嗎?答案是「肯定」的。 AI是輔助工具,不是程式設計師 沒錯!AI能寫出不錯的程式碼,但如果你本身不懂程式設計,你如何判斷它寫出的結果,是否符合你所想要的?對懂程式的人來說,他會比較清楚該如何對AI工具「下指令」,程式設計師可以利用AI工具的輔助,節省掉實際開發與除錯的時間。 再者,要寫出一個可以應用的程式,並非如此簡單。從一開始的需求分析,到架構設計、模組化元件、單元測試等等,絕對不是透過跟AI工具講三兩句話就能產出的。 AI是透過背後龐大資料與分析模型取產生我們想要的結果,意即,它做不到「無中生有」。相較於AI,人類的優勢在於「創造」。AI工具的出現與

By 三寶爸工程師

[程式教育] 該學哪一種程式語言才好?你必須先了解程式語言的7個應用領域

之前一再強調,學習程式語言不完全是為了將來當工程師而學的。但對初學者來說,在這麼多種程式語言中,究竟要選哪一種程式語言做學習呢? 在這之前,我們要先了解,程式語言的應用,大概有哪些領域。先看看自己對哪一個領域有興趣,不妨從該領域下手,學習一種該領域會用到的程式語言,並透過學習去完成一個小作品。 以下是依照應用領域的分類,列出該領域的幾個主要採用的程式語言。 一、網頁開發 (Web Development) 網頁(網站)開發是最普遍的一種應用,幾乎每個人每天會接觸到的,都脫離不了網頁開發的相關產品。在這裡我要特別說明,「開發」網站跟「架設」網站是兩回事,如果只是要「架設」網站,那是可以不需要學會寫程式就能做到的,因為有太多現成工具就可以達到「架設」網站這件事。關於「架設」網站的工具,我們有機會再另外寫一篇文章說明。但不論如何,網頁(網站)的基本運作原理還是要懂的。 網頁開發的部分,一般來說還區分「前端」和「後端」的開發與維護。

By 三寶爸工程師

[程式教育] 我未來不想當程式設計師,那還需要學程式語言嗎?

這個問題,最中肯又八股的答案當然是「不一定,但有學比較好」。如果問我,我肯定是建議你「最好要學」。 我換個問題,我未來不想當英文老師,那我需要學英文嗎?答案應該很清楚了! 你可能會說「不一樣啊!」請你仔細想想,學習「語言」跟「程式語言」的目的,我在 [程式教育] 學習程式語言的Why and How 這篇文章內有提到,兩者的目的一樣都在「溝通」,只是對象不同。 以目前AI發展的速度,也許不久的將來,「語言」也不需要學習了也說不定。屆時,「程式語言」的角色可能反而更吃重。並不是說你要學會用程式語言來開發軟體,而是透過學習程式語言吸取基本知識和延伸的能力。以下我列出五點,學習程式語言所能帶來的價值。 一、提升問題解決能力與創造力 學習程式設計可以培養邏輯思維和系統化解決問題的能力。這些技能在各種職業中都是非常寶貴的,無論是管理、行銷、工程還是醫療領域,遇到複雜問題時,能夠分解問題並系統地找到解決方案是非常重要的。 程式設計是一種創造性的活動,讓你能夠實現自己的想法和項目。

By 三寶爸工程師