我所期待的程式教育

zonble
zonble
Sep 8 · 4 min read

聽說今年開始國中高中課程要納入程式設計。自己是靠寫程式吃了十多年的飯,我是贊成學程式這種事情是可以早點開始。

話說,我還不知道現在的孩子們是在上些怎樣的程式課程,不過,好像什麼東西進入台灣的正規教育,都似乎會讓人有點擔心就是了。

對我來說,如果要找一個字來說明程式的價值,那就是自動化。程式就是一種介於人機之間,人類看得懂,而且可以轉換成機器也看得懂的指令,讓機器可以重複執行人類所指派的工作,機器雖然愚笨,但是忠實而且不會疲憊,人類的生產力因此得到解放。程式的價值,就是讓機器來為人類偷懶。

寫程式就像學騎腳踏車一樣。當你跨上了腳踏車而且不再摔倒之後,你就會發現你可以用比較輕鬆的力氣,到達你想要的地方,你會了一點程式之後,你就可以用比較輕鬆的力氣,完成重複的資料處理。

這個說法其實是賈伯斯說的,他說,在動物界中,最有效率的是禿鷹,只要一點點的力氣,禿鷹就可以飛好幾英哩,但是人類只要踏上腳踏車,效率就是禿鷹的好幾倍,而計算機是思想的腳踏車。

小的時候就開始學程式,也就該跟小的時候就學腳踏車一樣,愈小接觸,愈不會一開始就產生排斥,也不會有害怕摔倒的恐懼。

那麼,假如用職業教育的角度來看程式教育,用業界到底需要多少軟體工程師,App Store 或 Google Play 上其實有多少 App 根本就沒有人在使用,每一年有多少技術死亡,來看應不應該教程式,我就覺得很奇怪。

你是因為想要成為環法賽車手,想要變成下一個彼得薩根,還是想要參加下坡賽還是競輪,才開始騎腳踏車的嗎?還是說,即使你不把這項技能變成職業,你也可以在生活中享受其便利,以及許多跟功利無關的樂趣?可以讓你假日去河濱腳踏車道散散心,動一動讓身體也比較好?

我所期待的程式教育可能是要養成某種性格,這種性格叫做不耐煩。你要具備察覺到生活中有大量事物是重複的,這些重複的事物佔用了你的時間,而所謂時間,就是人類對於死亡不斷逼近的感受,你不想要在死亡之前都被這些重複的事物消耗殆盡,所以你不滿,你打算開始動手反抗生活。

你還不需要知道機器底層是怎麼運作,你不需要知道什麼是暫存器、什麼是指令集,還有前人累積了哪些有效率的演算法,你就可以學會從多個不同網站定時抓取資料,然後合成你想要的報表,你也可以一次完成上百張圖片或影片的轉檔。然後你就有時間可以做其他事情,像是,嗯,騎腳踏車。

而你要在做這些事情之前,第一個能力就是發現有哪些事情還是完全手工,還沒有機器的介入,還有,認同不耐煩其實是一種優點,不耐煩才是讓人類進步的動力。了解底層運作,還有各種寫程式的典範,都可以讓你後來可以寫出更好的程式,但那是你真的決定要踏上職業之路才需要知道的事情,而把程式當成專業之後,對於「耐心」又要有兩種極端的見解:你對軟體品質、不斷的學習、以及怎樣避免自己的大意粗心,要保持高度的耐心,但是對於沒有自動化的事物得要高度的不耐煩。

如果程式不是你的職業,你只需要知道什麼地方應該要有程式的幫助,然後讓更專業的人接手,很多時候你不需要精通某個工具,但至少要知道工具的存在。然後,偶而,有些程式你也可以自己來,而不會在這個到處都是科技的二十一世紀這麼無助。

程式就是種帶有那麼點叛逆精神,又可以在不傷害別人的前提下,讓自己過得更好的玩意,甚至,是某種「我們一定有更輕鬆的方法」的信仰。

我所期待的程式教育是一套價值:效率是來自於善用工具而不是壓榨他人,產能是來自善用工具而不是加班,讓自己幸福不需要犧牲他人,要成全他人也不需要損害自己,就算你不能創造多偉大的工具,一點點的小工具,都可以讓你把自己照顧好。而不滿是好事,就是因為不滿,所以才可以創造更大的幸福,我們應該學會對已經存在的工具保持感激,但我們同時也相信會有更方便的工具。

只是我還真不知道怎樣在學校教這樣的東西。

我所期待的程式教育,不是一種系統化知識,不是升學科目,而是種感受,包括事物沒有自動化之前的痛苦,以及用了工具解決問題的幸福,我們沒有辦法對感受打成績。

我所期待的程式教育。不只是在教導技能,不是讓學生在多少的時間裡頭裡頭寫完幾道程式題目,或是怎樣做出一套系統出來,而是在教導學生在該不滿的時候就該不滿,教導學生懂得叛逆,而且有「自己動手」這條途徑。

    zonble

    Written by

    zonble

    XDDDD - eXtreme Due Date Driven Development