[程式教育] 為什麼要學習程式語言?

Photo by Scott Graham on Unsplash

程式教育的重要性

自從108課綱將資訊科技納入必修課程之後,程式語言相關的教育組織或團體也開始如雨後春筍的發展。在部分歐美國家,程式語言屬於國民教育的一部分,早已行之有年。但在台灣的教育體系及環境下,要讓「程式語言」這門知識,達到所謂的普及通識,還是有一大段進步的空間。

學習程式語言,不是為了將來成為程式設計師(軟體工程師)。就如同,學習作文的目的,不是為了將來成為作家。在身邊事物都充斥著資訊科技的現在,舉凡看到的、聽到的、用到的,幾乎都是透過程式指令所產生的應用。

學習程式語言,至少可以培養以下三種能力。這篇文章我們分別就這三個能力來加以說明,程式語言教育的重要性。

能力一、邏輯思考力

程式,是透過一連串的指令,讓電腦產生相對應的動作,以達成某種特定的功能。為了讓電腦能順利的運作,這一串所謂的指令,就是由程式語言所撰寫而成的。在學習的過程中,學習者必須有系統性地思考,針對需解決的各種不同情境,而培養出邏輯性的思維。

能力二、創造發想力

程式設計,雖然是屬於電腦科學的一環,但也有人說,程式設計是一門藝術。要讓電腦透過指令去執行特定的功能,在設計上部會只有一種方法可行。簡單來個比喻,透過導航到某一個目的地,途經的路線不會只有一條可以到達,可以依照路徑、時間等不同影響因子,而產生多種組合的可選擇路線。不像是非題、選擇題有唯一正確解,程式設計就如同問答題、申論題,沒有標準答案,因此可以培養學習者的創造力。

能力三、問題解決力

有一句話這麼說,「科技始終來自於人性」。科技的發展,旨在解決現實生活中不方便的地方,透過技術節省人力與時間。程式語言主要用來開發應用程式,也就是為了解決用戶的某一個痛點。從發現問題開始,搭配上述的兩種能力,尋找出解決方案,再經由程式語言將其加以實現。

108課綱所強調的「素養」教育

這三種能力,都是所謂的「軟能力」(Soft Skill)。學習程式語言,表面上是為了獲得一種技能 —「撰寫程式」的技能,這是一種硬能力(Hard Skill)。硬能力可以透過大量練習來精進,換個角度來看,可取代性也比較高。

而軟實力,就如同108課綱所強調的「素養」教育,是透過學習某一科目,將其與生活結合並加以應用,其學習到的不只是科目專業能力,而是背後所培養的「多元」能力,方能適應未來多變且難以預測的工作型態。

學習的目的重在「過程」

回到開頭問句:「為什麼要學習程式語言?」。試問:「為何要學英文?英文有什麼重要性?」是單純為了「考試」而學?還是為了「溝通」而學?目的不同,動機不同,學習的心態與效果自然也不盡相同。

如果學習只是為了「考高分」,那只是在訓練考試機器而已。如何「學以致用」?學習可以為自己帶來什麼樣的幫助?這些是學習前可以好好思考的問題。

學習「程式語言」,能培養的多元能力,絕對是足以應付各種不同領域的共通能力。從這一篇文章中,相信你已經可以理解「為什麼」(Why?)要學習程式語言,下一篇文章,我們將說明「什麼」(What?)是程式語言。

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 三寶爸工程師