「AI 都全自動寫程式了,人類還自學啥?」呃~還沒 100%「自動駕駛」啦!但 AI 讓自學從「手排」進步到「自排」,省掉 程式自學 大量讀書、練習、刷題…,只需「掃描學習+專案實作」,輕鬆愉快像開自排車!其實不只程式,自學什麼都可以,自學的黃金時代到了!
本文目錄
有了 AI 何需 程式自學 ?沒騙你還真的要
ChatGPT 產出程式碼的速度讓人嚇壞了,但執行時卻錯誤百出!因為它無法執行只是從網上「抄書」貼給你,卻看不到你的電腦,要它除錯,卡關一整天也不稀奇。
所以爲什麼你該學點程式呢?
理由一、你學會了再教 AI
最近,Cline 和 Cursor 這樣的「AI Agent」出現,讓 AI 長出手和眼,可以執行程式碼、看到錯誤訊息,但… 還是會卡關,甚至掉進「Debug 地獄循環」,就是出錯還一直用同樣方法除錯,當然又跳出同樣錯誤訊息… 但它不懂要改,錯誤一次又一次直到你受不了關掉。
與 AI 重度協作幾個月寫複雜程式,我發現要讓 AI 跳出 Debug 地獄循環,最好的方法是—「我學了教它」。
AI 很博學,會用我難以想像的手法寫程式,如果又是複雜的專案,常常會看不懂,看不懂就躺平吧!我就想「你寫吧!能 run 就好!」,但通常會卡關,連博學的 AI 都卡關,誰來解決?沒辦法,只有我,出去散散步,休息一下,再讀文件、搜別人的解答,通常我點醒它,就順利出關了。
雖然它比人類博學,但卡關時要你要能「看懂」AI 在什麼,但不需要會寫。沒錯,從前「光說不練」被笑「一支嘴糊瘰瘰」,現在 AI 比你會「練」,麻煩你只留一支嘴就好了!
每次我插手寫,就覺得拖慢「團隊」的瓶頸就是我,AI 只是忍住沒說:「拜託人類不要來亂,讓專業的來」!
理由二、程式是好素養
「很快自動駕駛就成熟了啦!幹嘛學程式?」有人會這麼說。是的!我感同身受且充滿期待,但這不影響你該具有程式素養。
學程式是好事,文科生的我覺得幫助多過綜合維他命,建議每個人都學一點,特別是學生,因為它真是好素養。
在教、學,和觀察小孩時,我發現多數人的學習是無意識的!這是什麼意思?很多人的學習效率很低,一件事摸半天學不會,磨久了終於學會,但也說不出為什麼會了,就是這種「小和尚唸經」狀態,老師講了他就照抄、點頭、把課本讀了再讀,實際上不知自己在讀啥。
小時候學素描水彩是把眼睛訓練成掃描機,手訓練成打印機,就是把景物「複製 & 貼上」到紙上。同學比誰的掃描、打印解析度更高,所以設備狀況好 90 分,狀況差 50 分。但班上有位同學,每次最少達到 70 分水準,狀況好 90 分,老師讚揚他說:「周同學很穩定」。後來我知道了,專業的人做那些你以為靠「靈感」、「手感」的工作,其實是靠理性分析。
例一:美術狀元如何畫畫
如果你學過美術,我遇過的老師示範時都不說話,要你自己觀察,有一次,師大美術系狀元的老師難得一邊示範一邊講學(對學生的觀察力失望?),他說畫圖是在畫「光線」和「色彩」,你心裡有光線、色彩原理,不看景物,也能畫出來,因為他把光線和色彩「程式化」,一眼就把景物儲存在心裡,他把繪畫變「方法論」。
例二:大廚如何思考烹飪
看烹飪節目,低手教學說「加少許糖、炒一炒」,做菜久了就能把順序背下來,他只是把他背下來的演給我看。但看高手做菜則是享受,大廚會說:「加糖在油裡炒成焦糖色,因為油水接觸會爆炸,下肉前要關火,焦糖色裹住鮮味又讓色澤好看」,他不背順序,理性分析後知道每個手法的用途,所以他能理智地「程式化」地設計流程,他把烹飪變成「方法論」。
例三:職業網球選手為什麼少失誤
在 Malcom Gladwell 的 《Tipping Point》書中說到,當職業網球選手要「雙發失誤」時,教練總會在他揮拍還沒擊球前就知道了,因為職業選手很少發生雙發失誤。能從業餘打到職業的必是高手,為什麼業餘選手會發生的失誤在職業選手卻很少發生?如同前面所說,他是高手,已經理性分析運動,把什麼策略、打法會產生什麼效果「程式化」了,他把運動變成「方法論」。
繪畫、烹飪、運動、寫作… 這些剛開始靠靈感、苦練的行業,能從業餘轉為職業好手,一定經過理智地把任務「程式化」的過程,就是有一套「方法論」,古話說「知其然,更知其所以然」。你看村上春樹為了寫長篇小說,每天要長跑培養耐力,每天規定產出 N 個字,等靈感?什麼工作可以依賴靈感?如果靈感不來就不領錢了?他比我們上班還穩定!
這種分析出一套流程必能達成的「方法論」,對電腦來說就是「演算法」,人類從凌亂的事件找出模式,想出必能達成結果的步驟,再用電腦語言告訴它怎麼做,這就是寫程式。
例如用小車走迷宮,它怎麼知道要左轉還右轉?它不用看到,只要知道「前進到撞牆就右轉,又撞牆表示右邊沒路,就左轉 2 次變左轉」。這簡單步驟讓小車可以慢慢試錯直到走出迷宮。其實你家的掃地機器人也用類似(但更聰明的)演算法。
女兒小時候玩 Scratch 時我測試過,畫一個方形畫布當房間,裡面有幾道牆和門當障礙,再畫個圓圈當掃地機器人,設定如下:1)如果沒撞牆就直走,在走過的路塗上顏色(表示掃過了);2)撞牆時後退一格再右轉 3 度。結果這麼簡單的程式就可以慢慢的把整個房子每一寸都塗上顏色(掃完),但很多路徑會重複走,速度慢。
我學藝術又學文科,沒經歷過邏輯訓練,學程式後覺得世界開了一個新的大門,對思考影響很大。
就是說 18 歲以前,人類特有的負責掌管邏輯思維的前額葉和大腦皮質,我用得很少,根本是被荷爾蒙驅動的動物,世界對我全不可控。
進入社會科學領域,受科學方法訓練後,又學程式,大量邏輯訓練讓我發現,雖然人不可控制命運,但控制小範圍世界可行。且因寫程式是要把萬物「建模」,這個習慣養成後,學習就會掌握特徵,而不是試圖拍照一樣把全部記下來,所以記性也變好了。
不只讀書,包括學太極推手、公司提企劃,這種找到特徵建立模型的方式都會讓學習效果變好,因為第一時間把資訊轉成大腦適合的格式。
圍棋高手看一眼殘局就可以記住並重現,因為他看到的棋局不是散落的黑白子而是特徵,他用模型理解棋局。小吃店老闆從不寫單,但不但不會送錯,吃完付帳他還很清楚每桌內容。他們不是記憶力大師,是把事物建模找特徵,模型規範大部分資訊,只要記憶少許差異。
學程式的好處,其一是邏輯訓練提升學習效率,另外,如果你孩子學會「演算法思維」,遇到挫折會想「阻礙是什麼?」、「如何克服?」、「有演算法嗎?」,就不是只是挫折了。我很希望我的孩子遇到困難時,就算沒有我,她懂得把困難拆開解決,不被挫折擊敗。
從前學程式真的很難,但在 AI 幫助下,我們只需學到「看得懂」、「演算法思維」就好,就像電子計算機讓我們只要想出得到答案的流程,至於四則運算或心算這種「技術」,知道就好,不用熟練!
掃讀: 程式自學 新方式
跟 AI 長期重度協作後發現,通常它出錯不是它不懂,而是我們說不清楚,問題在我們。
人類語言很含糊,好處是你可以創作雙關語和諧音梗,壞處是會為了理解和說法不同而吵架。
AI 理解人類語言能力比大部分人類好,但還是會有歧義,如果只是做小事,就修改即可,但開發複雜軟體時,小錯常會隱藏造成更大的錯誤。
身為企劃人員,為了無歧義地對 AI 表達需求,我想到的點子是開發一個「FusionFlow VS Code 插件」,用無歧義的方式「寫」企劃,就不會錯了。
VS Code 是微軟開發的程式開發環境(IDE),可以安裝插件把功能整在裡面用,類似 Chrome 插件可以在 Google Docs 裡增加功能。
不過 VS Code 不吃我熟悉的 Python,只吃「TypeScript」語言,沒辦法就叫 AI 寫。
花一天用 Cline 半自動把程式寫好,但還是遇到「Debug 地獄迴圈」,卡住了。
名稱 | 使用方式 | 特點 |
---|---|---|
Cursor | 改微軟 VScode 為 Cursor 編輯器,使用跟用 VScode 一模一樣 | 自動編輯、自動寫程式,較多問答及手工操作 |
Cline (原 Claude Dev) | 微軟 VScode 插件,搜尋點擊就裝好了 | 自動寫程式,提出需求後按同意就自動運行 |
OpenHands | 用 Docker 安裝後開一個本地網頁界面使用 | 自動寫程式,提出需求後按同意就自動運行 |
AI 碰到它的極限,就算叫它自己解也沒用,此時最好的方法是開始學 TypeScript,對文科生來說,從零學新程式語言談何容易?
不學也不行,於是週末下午,在 YouTube 上找了個長達 30 課的 TypeScript 教程,準備花一週學習。
看第一支影片時想,我已經觀摩 AI 用 TypeScript 寫出一套軟體的完整程式碼,基礎小白的示範可以跳過了,就調到 150% 速度,加上左右鍵快速跳過、跳過、跳過…
結果是,不到 1 小時上了 10 課,似乎不用再學下去了?
於是我回去看 AI 寫的程式碼,居然看懂了,很快找到錯,AI 快速修復,完成!
回想從前上線上課,我會看完,這 30 課少說得花一週,為什麼這次改為掃讀?因為 TypeScript 不是我的主力語言,我沒打算學到熟悉,只要解這一題,所以懂觀念就好;而且已經做了一次,基本教程都直接跳過就行,好吧!這是誤打誤撞發現的學習法。
你怎麼知道學好了沒?就像很多人用 2 倍速看韓劇,如果出現一個人物居然不認得,一定是前面快轉錯過他的出場細節,那就倒回去補課啊!
配合 AI 掃讀也是這樣,「劇情」接不上再倒回去看就好,千萬不要花一週,一個字一個字包括笑話都看完啊!
從前看《駭客任務》時,有一幕是 Neo 和 Trinity 逃到屋頂坐上直升機,Neo 問:「妳學過開直升機嗎?」,Trinity 回答:「現在學」,就下載立刻把直升機開走,那時我很羨慕,學習速度幾乎是即時!現在,AI 時代到了,這種 程式自學 成真,要用就快速學,不需要先學好一堆備在那裡,你不用也忘了。
快速掃描 x 反覆實作 = 良好吸收
我猜你會說「我以前就可以這樣看了,這樣學記不住啦!」
沒錯,這樣記不住,但為什麼要記住?
程式是 AI 寫,我不用記住所有語法,只要聽懂觀念,語法看來面熟即可,下面是我一小時從學的程式碼中萃取的觀念(看不懂沒關係),一小時居然能學這麼多,分享給你:
- TypeScript(TS)是網頁常用的 JavaScript(JS)的延伸運用;
- 瀏覽器不認識 TS,所以要轉換成同名 JS 才能在瀏覽器運行;
- JS 鬆散,很多別的語言會報錯的程式碼,JS 都還跑得好好的,因為它原是處理網頁上簡單工作的語言,不用這麼嚴謹;
- 現在網頁的複雜度不輸桌面軟體,解決複雜問題,TS 出現了,它嚴謹規範 JS 讓它變成靠譜的語言。
- TS 的核心是解決 JS 最混亂的「動態類型」問題。
快速掃讀再配合 AI 快速實作,多做幾次就會篩選出常用需要熟悉的知識,因為常用用,不用背,而且只需要記重點。
前半段學習,後半段練習,AI 下,學習階段不用急着把知識塞進長期記憶,只要後面跟著重複應用,就能鞏固知識,請確保有這個階段。
學英文也是,先累積 2000 個字彙就開始大量聽說讀寫,以後遇到不認識的字就查、第二次、第三次,能見三次的一定是常用字,已經面熟,再查幾次就能應用了。至於只查一次的單字呢?這麼多聽說讀寫只見一次,就是罕用字,以後不太會困擾你,碰到再查就好了。
傳統 程式自學 法
前 AI 時代,學程式通常先上幾週課,做老師的小作業,到期末要做專案驗收,才發現作業、測驗做了這麼多,期末作業居然寫不出來!
因為老師的作業和試題都是簡化的,他想着你還沒學完,怕傷害你的玻璃心!用心良苦。
業界不只寫程式,還要熟悉「框架」、「程式庫」及寫作風格,如果學過到了公司要重學,那我上課只學了個身體健康嗎?
跟考完駕照不敢上路一樣,你想「我應該不是這塊料」就放棄了,寫程式應該是最多人放棄過的學科吧!
AI 完全真實的實作練習
跟 AI 協作,一開始就用業界寫法,有框架、程式庫,很多課堂上沒看過的,反正不用我寫,但它寫的過程我一直在學習。
最快速學習是出錯時。為了除錯,要從出錯位置一路往回找問題,再叫 AI 解釋給你聽,就把運作邏輯搞清楚了。
這種模擬真實的專案輕鬆快速,做兩三次,該記住的就記住了,如果記不住一定是實戰中用不到的功能,那,有用到再學。
我覺得傳統學習像臺灣考駕照,教練場開一個月不敢上路;而 AI 輔助學習像美國考駕照,在普通馬路練習,沒有「路邊停車、倒車入庫、S 型前進後退、上坡起步」… 這種荒謬科目,考駕照不就是證明你有能力在路上安全開車,而不是證明你會耍特技啊!
岔題:北京唸書時買了《薄冰英文法》,鉅細靡遺,連只有英國某小鎮用的文法都收錄,我無法吸收很挫折。後來找到美國教移民(ESL, English as a Second Language)的文法書,3 巨冊,是《薄冰英文法》的 2 倍重,但只收錄美國人常用文法,每課課文 2 頁,配上 20 頁各種練習題,3 冊讀完就能「上路」,就像 AI 輔助學習一樣實用!
AI 輔助學習不只 程式自學 學什麼都行
自學的過程,可以歸結出有效的學習流程:
掌握這個流程,不光是寫程式,所有自學都能這麼做,你要做的就是找一個有興趣的事情,試試看!
問題是,你的興趣是什麼?
雖然看來比從前的自學輕鬆,但從:1)自己去找 AI 示範、2)自己找適合素材掃讀學習、3)自己從錯誤中練習修正,這套做法還是很辛苦,誰願意這麼辛苦,而不是去玩呢?坐在教室聽老師填鴨的被動學習其實更輕鬆。
大人通常清楚學習與成就的關係,工作升官、彌補遺憾、股市投資,交女友傳宗接代(可以嗎?)。但對孩子很困難。
既然沒有動機就不會美好的自發學習,找到動機應該是學校和家長最重視且攜手合作的事吧?
很怪的並不是,如同經濟學建立在假設人類是「理性人」的錯誤基礎上1,我國教育界似乎假設學生都是「理性學生」。
- 身為理性學生,他自發對知識好奇,他知道讀書與前途掛鉤,他從小力爭上游。
- 偶爾有幾個不能適應的孩子,那是少數異常,交給特教處理就好!
這假設從頭就錯了。
你一輩子遇到過幾個同學從小以讀哈佛為目標的「理性學生」?他才是要交給特教處理的例外啊!我誠實說,從小學讀到碩士,20 年受教育時間中:
- 遇到能點亮(enlight)我的老師一手能數得完;
- 學校從來沒有制度化觀察我的興趣專長,協助我培養動機。
當然義務教育下,去上學是法律規定的,但談內在動機,多數人去學校是為了「交朋友」,聽課的動機是「我不知道」。
如果你的學校制度性地觀察、在乎你的興趣專長,協助你培養成為你努力學習的動機,請分享給我!
教育部版的自主學習
女兒在公立學校 8 年 5 位導師,遇到過「一位」好老師,是教師甄選第二名的優秀老師,校外教學會設計學習內容而不是填學習單交差。還設計了有趣活動輔助學習,例如做果凍學「比例」,唱歌教臺語。當時我以為這樣的 PBL (Project/ Problem Based Learning) 就是 108 課綱的最佳境界了。
不是的,就算做果凍也有幾個孩子不感興趣吧?公立學校這種封閉式的 PBL 還是希望孩子學習到「課綱想要你學的東西」,是改良的「工業生產畢業生」概念,跟幾十年前國立編譯館時期的填鴨式教育異曲同工。
但,設計 PBL 已經是有心的導師能做的極致了,她一個人不可能做到個性化。
做他想做的事
我孩子上幼兒園時,朋友說他家孩子上森林小學,一學期學費幾十萬,只要有 3 個學生想學某個事物,就算學打電動,學校都找老師開課!
8 年讓我理解森林小學是對的,這就是 108 課綱的夢想。別管孩子會學到什麼,他發現及保護了孩子的動機,沒把這火滅了。孩子學感興趣的事,藉由強烈動機學到其他知識,很多人為了打遊戲學了日文,也有玩蓋鐵路遊戲學會了企管。
對,培養興趣的方法就是要有很多老師分頭關注每個孩子,公立學校做不到,但「自主學習」最重要的是「自主」,不能選想學的事物,怎麼有動機呢!
自己找答案 別等教育制度
一年只有十幾萬名孩子出生,應該被當寶(他們是未來國家的稅基啊),從教育主管機關所做的跟所說不符,可以看出我們的孩子對他們來說並不是寶。
- 你希望孩子學會品味生活,那營養午餐預算就不能只有 30 元,這樣只勉強「不餓」,摧毀孩子對美食的興趣(還好臺灣人在吃上被這樣摧殘,仍然很有美食創意)。
- 你希望每個人依照興趣有不同的發展,未來能攜手合作,就要讓每個孩子各自發展興趣為起點,學到世界互動的方式,教育部能廢除「我想教你什麼」(課綱),注重「你想學什麼」(自主)嗎?如果想從「工業化學校」轉為「人性化」,只有一位老師如何個別指導?就是預算分配問題。
你要讓孩子覺得學習有意思,除了用本文的 AI 輔助學習減輕負擔外,考慮把學校要求的事情反過來做,或許就是找到動機的答案。
附註
- 近年來諾貝爾獎得主多半是行為經濟學家,是心理學和經濟學的混血,他們想要知道人類行為不理性的原因,彌補經濟學模型失準的問題。 ↩︎