以前寫過一篇這樣的文章,結論是,不建議讓小孩太早接觸。
不過,現在是 2023 年的二月,ChatGPT 的出現,讓我重新省視了一遍這個觀念。
剛好今天政治魂完全消失,就來亂聊一下這個話題。
ChapGPT 帶來的影響,現在已經如火如荼的開展。從各種領域的應用,幫忙寫程式,寫資料庫 SQL,寫文章,只有想不到,沒有做不到。
在這樣的風潮之下,有一派說法是說,這樣小孩子不用再提早學程式設計,因為,以後 AI 就會寫程式,幹嘛花大錢送去學。
這個觀念,我覺得對一半。
AI 會幫忙寫程式這是對的,但是,AI 怎麼知道你要寫甚麼程式? 是要用 Python 串接 Flask or Django 弄一個 API 服務出來,還是要用 C# 搞一個股市技術指標的實作產品,跑在 Linux 上? 抑或是用 ReactJS 搞一個 Single Page App 做番茄鐘搭配時間規劃?
也就是說,你可以請 AI 幫忙你寫,首先你就必須要知道,你想要寫甚麼,用甚麼技術,可以達到甚麼目標。
如果從頭到尾不知道系統怎麼被建構起來,那你叫 AI 給你一個指引,他也只會給出一般性的架構指引,不會針對你的問題進行最佳化。
回到該不該送小孩去學程式設計這件事,我覺得,與其談論小孩學程式,倒不如專注在另外一件事情,培養小孩子的系統邏輯觀念。
大凡資訊科技的東西,一定會有一個系統觀。這個系統怎麼被組成,每個元件扮演甚麼功用,彼此之間的資料流訊息流怎麼串接起來,都是影響這個系統好壞的關鍵因素。
真正小孩子需要學會的,就是這些邏輯與系統觀念,從最簡單的真值表開始,培養若 P 則 Q,若非 P 則非 Q 這種邏輯基礎。然後搭配正規的程式語言,用程式語言所賦予的機制,去真正學習怎麼把邏輯串接起來,變成真正可以運作的資訊流,這種能力才是真正要從小孩子階段開始培養。
現在很多為了引起學習動機,都是採用 Block Based 的語言,當然,就學習過程來說,或許會比較愉悅。不過我向來主張,要教,就要教真傳。既然要讓小孩子學,當然就是從正規的程式語言開始。
真實世界的程式設計,沒有看到有在用 Block Based 設計,一些自動化的工具,為了方便非資訊背景的人員操作與使用,會用 Block 的概念下去串流程。但真正運作在各大 Server 與微小元件裡面的程式碼,很少見到用方塊堆疊起來的。
學會了串接邏輯與程式語言的基本概念,再進一步培養小孩子的系統觀念。
這時候,就可以開始區分小孩子是否真的有興趣。如果沒興趣,這個階段大概就打不過去,也沒關係,只要邏輯夠好,至少以後找對象與工作上比別人傑出的機會就高一些。這個社會多的是邏輯不通的人,例如那些要落選人兌現政見的,就是典型族群。
系統觀念如果有順利培養起來,那之後就可以進入與 AI 共舞的階段。
可以開始透過觀念的組合,把一些較為低階的部分,以 AI 能夠理解的方式,請他幫忙完成。
這樣的工作,經過我實測的結果,效果非常顯著。往往我自己要寫半天的程式碼,現在只要餵進對的敘述,給定相對應的資料,就可以產生我想要的結果,直接放進大架構裡面使用。這對生產力的提升,是非常大的一步。
所以,小孩子該不該學程式設計? 以前我會說不用,現在的我會說,該,而且要著重在學習邏輯與系統觀念,並且要用正規的程式語言下去學習,這樣才有辦法在 AI 輔助的時代進一步取得更多的資源,拉開與其他人生產力的差距。
當然,同步把英文學好這件事,一樣重要。
至於為什麼,那就看哪一天我又進入政治佛系狀態,再來好好聊聊。
2023 年,ChatGPT 值得大家關注。