MIT人工智慧橘子蘋果

從Coder到Maker (林信良)

2017-04-11

瀏覽次數:4766

Coder 和 Maker 的差別是什麼?Coder 擅長從無到有打造軟體;Maker 則是將這個能力延伸到實體世界——用 Arduino、感測器、機械結構,把想法變成看得見、摸得到的東西。有程式能力的 Coder,距離成為 Maker 只差一個低門檻的硬體入口,而最有價值的學習,往往發生在「不斷修正」的那個過程裡。

本文轉錄自 IThome,作者為林信良,因在網路上經營「良葛格學習筆記」(openhome.cc)而聞名,曾任昇陽教育訓練中心技術顧問、甲骨文教育訓練中心授權講師,目前為自由工作者,專長為技術寫作、翻譯與教育訓練。喜好研究程式語言、框架、社群,從中學習設計、典範及文化。技術文件涵蓋 C/C++、Java、Ruby/Rails、Python、JavaScript、Haskell 等多個領域。

過去,從無到有動手做出東西的人,就可以是個 Maker,隨著數位設備普及、開源硬體(Open source hardware)的興起,Maker 有了新的意義,代表著一群能運用數位科技軟硬體,將自己的想法實現、分享,進而影響身邊世界的一群人。

對於已經有程式設計能力,並有著「自己的軟體自己寫」精神的 Coder 來說,要成為新時代 Maker 相對容易,面對的挑戰也更為巨大且有趣!

從軟體到軟硬體整合

基本上,只要願意親手打造東西、解決身邊問題的人,都可以說是 Maker,跟單純的 DIY 不同的是,Maker 往往包含了創造的成分,只是照著說明書完成一樣東西就只是單純的 DIY,從無到有發想、設計、實作、修正……,最後打造出成品的人,才稱得上是個 Maker。

Maker 不分領域,從無到有打造家具的木工,可以是個 Maker;用廢五金打造出變形金剛的人,可以是個 Maker;依想法設計出海水魚缸的人,可以是個 Maker;甚至,自己用回收物設計玩具的孩子,也是一名 Maker。

因此,Maker 這個名詞,可用來代表著一群具有熱情、創意,並願意實現想法的業餘發明家。

具有軟體設計能力的 Coder,本身實際上已經具有 Maker 的基礎,也就是從無到有打造軟體的能力,不少 Coder 平時就常撰寫程式來解決自己身邊的問題,即使創造的成品依舊是個軟體,這個過程,本質上也是在從事 Maker 的行為,隨著一些數位設備的簡易化與普及化,讓 Coder 的 Maker 行為,得以從軟體延伸到軟硬體整合,能解決的問題,從虛擬世界進一步擴及至實體世界,或者是讓實體與虛擬兩個世界密不可分地相互支援。

以 Arduino 為例,單就電子電機領域來看這塊板子,不過就只是塊單晶片微電腦的控制板,專攻於電子電機領域的專家們,平時研究製造的電子電路都遠比它複雜許多,然而,就不懂電子電路的 Coder 來說,卻是能降低他銜接開關、馬達、超音波、紅外線、溫濕度感應器、Wi-Fi、藍牙等各種電子裝置,並透過軟體予以控制的一項利器,這就等同為 Coder 開啟了一條實現想法的新道路。

在 Coder 實作某樣東西時,察覺需要將光敏電阻、蜂鳴器、電晶體等兜在一起時,他就只要這麼做,然後,試著使用程式去控制這些裝置的行為就可以了,而不用先去瞭解光敏電阻、蜂鳴器、電晶體的物理特性與運作原理,這些一開始足以嚇退 Coder 的玩意兒。

Coder 甚至可以在不接觸電子電路的情況下,達到軟硬體整合之目的,透過已設計好的 LED 顯示、馬達等擴充模組,簡單銜接幾條電線就能串聯出想要的東西,甚至有些擴充模組能夠像組裝積木般堆疊,連電線、麵包板都不必使用,活像是在玩弄樂高積木機器人一樣。

實際上,玩弄樂高這類的積木機器人,也可以是 Maker 的行為,只要願意,也能設計出實際可用的六軸機械手臂、極座標繪圖機、盲人點字印刷機、3D 印表機等。

軟硬體界線後的挑戰

任何降低門檻的工具,基本上都在倡導著一個「從做中學」的觀念,入門者在很快地掌握低門檻的工具之後,接下來就是直接嘗試實現想法,從中明白哪些地方需要修正、哪些功能不會做而需要進一步的知識,還有哪些功能做不出來,而需要調整方向。

這有別於過去的傳統教育方式,以我自己身為電子電機領域逃兵的經驗來說,儘管學校的相關實驗課程中,只用得上部分知識,我還是得學習各種電子電路、二極體、電晶體的材質與物理性、工程數學、通訊原理等全套理論,不可否認地,這些理論確實都有其應用場合,然而就當時的我來說,卻因此迷失在一堆複雜的理論之中,最後選擇離開了電子電機領域。

萬萬沒想到的是,十幾年之後因為接觸 Arduino,由於在把玩時有了既定的目標,面對那些過去令我恐懼的麵包板、電阻、二極體等,卻開始覺得有趣而想要重新接觸。

我不禁思考著,同樣的這些東西,令我從恐懼到覺得有趣的理由是什麼?因為有個既定的目標!為了完成這個目標,發覺自身有許多需要補足的能力,而這些能力一旦補足,就能馬上加以應用。像是最近想要使用積木機器人,實現類似 PlotClock 的繪圖機,為了讓馬達能準確控制機械手臂頂端的座標,於是,我在一張紙上,寫滿了如何將座標回推至馬達角度的數學推導過程,因而重拾那些許久未用的三角函式,這時想到的,不是過去沒學好三角函式,而是當初準備聯考的那個年代,根本不知道三角函式實際上會有這類運用。

這其實也說明了,既有的程式設計能力,結合低門檻數位設備,雖可令 Coder 要成為現今的 Maker 時,能馬上跨前一大步,然而,在軟硬體界線之後的挑戰卻是更多元。例如,使用 Arduino 這類板子,你有可能找不到適用的擴充模組,而必須親自學習相關的電子電路知識,以便實現想要的功能,在實作機器人相關的動作功能時,等待你的就會是機械原理,而你的程式碼中,就會有著許多的數學運算實現。

修正、修正、再修正

與程式設計有點不同的是,在從事 Maker 行為時,並沒有什麼標準作法,當有了想做的東西時,就是在過程中不斷修正、修正、再修正,而這個過程,往往才是 Maker 行為執行過程中,最有價值的部份。

就拿看似簡單的積木機器人來說,按照積木組裝圖拼裝出一隻機器人,並按照手冊寫好程式,這個過程充其量就只是機械性的模仿,並不會知道各積木間要如此銜接之目的是什麼。

類似地,按照書籍接好電路並下載程式,最多就像是在 DIY,而不會是 Maker,在拿著成品略為把玩之後,收穫也只會是輕鬆又廉價的虛榮感。在真正捨棄手冊、開始實際從事自行創作之前,並不會歷經不斷修正的這個過程。

以使用積木機器人實現繪圖機的過程來說,實際上,我想了好幾種將座標回推至馬達角度的數學推導方式,因為一開始想的推導太複雜,因而設下的目標是能採用更簡單的數學,在數天的修正,並達成階段目標之後,又面臨了可繪製面積的問題,為了解決這個問題又思索了數日,後來想到的新修正方式就是,將機器人的兩隻手臂改為一隻手臂,以得到更大與較好計算的可繪製面積。

之所以會修正、修正、再修正,代表著不斷地遇到新的問題,解決問題的過程中,有時甚至不見得完全知道自己在做什麼,而這個過程,就是不斷挑戰著自己「一定做得到」的決心,每個修正的達成都是種自我 Maker 能力的肯定,儘管離最後目標尚有很長一段距離,然而,得到的卻是紮紮實實的成就感,與滿滿的樂趣。

無懼來自各領域的未知挑戰

視想實現的東西而定,遇到的挑戰可能是未知的、來自各個領域,可能是電子電路,可能是數學、物理、水利、機械動力,甚至可能是音樂、美感、造型的問題,每個挑戰都可能是開啟新領域的一扇門,而樂趣就在於,能接觸各領域的知識,從中發現新的應用方式!

正因從 Coder 到 Maker 的過程中,挑戰可能是來自於各個領域,不會有任何一個領域的知識預設應該知道或精通的,所需要的就是從做中學,不用先想著自己電路基礎薄弱,不用設限自己數學基礎不好,需要什麼就去瞭解什麼,然後就能進一步發現到,自己確實能夠做到些什麼!

Maker 教育與兒童程式學習常見問題

孩子學程式,和 Maker 創客教育有什麼關係?

本文的核心論點說得很清楚:Coder 的能力是 Maker 的基礎。孩子學程式,不只是在學「寫程式」,而是在建立「從無到有打造東西」的能力與思維。有了程式基礎,面對 Arduino、Micro:bit、機器人等硬體,才能真正從「照著手冊做」進入「自己發想設計」的 Maker 境界。這也是橘子蘋果課程設計的底層邏輯——程式是工具,創作才是目的。

孩子幾歲開始適合接觸 Maker 課程?

有一定的程式基礎之後就可以開始。以橘子蘋果的路線來說,通常建議孩子先完成 Scratch 階段(理解基本程式邏輯),再進入需要更複雜設計思維的 Maker 活動。大約國小中高年級(約 9–12 歲)是很好的起步時機——孩子已有足夠的抽象思維,加上對「做出真實作品」充滿動力。

「從做中學」和傳統的題目練習,哪個更有效?

本文作者林信良用自身經驗給出了答案:面對同樣令他恐懼的電路與電阻,有了「做繪圖機」這個具體目標之後,他才能真正投入學習。對孩子來說也是一樣——「為了做出這個遊戲,我需要學會變數」,比「今天學變數,做練習題 20 題」更能建立持久的學習動力。橘子蘋果的課程設計,就是每個階段都以「完成一個真實可用的作品」作為驗收標準。

孩子不懂數學和電路,能玩 Arduino/Maker 嗎?

可以,而且這正是本文的重點。Arduino 等開源硬體的出現,就是為了讓不具備電子電路背景的人也能動手做東西。需要什麼知識,在做的過程中自然會遇到、自然想學——這種「需要才學,學了馬上用」的方式,比提前把所有理論塞給孩子更有效率。孩子不需要先學完數學再玩 Maker;而是在玩 Maker 的過程中,他會需要、因此愛上數學。

AI 時代,Maker 精神還重要嗎?

比以前更重要。AI 工具讓「生成程式碼」變容易了,但「想清楚要做什麼、設計解決方案、整合軟硬體、測試修正」——這些 Maker 的核心能力,AI 無法替代。未來的競爭力不在於「會用 AI」,而在於「能用 AI 做出別人做不出來的東西」。從小培養 Maker 思維,正是在為這個未來做準備。

學程式和學 Scratch,哪個是更好的 Maker 入門?

對孩子來說,Scratch 是更好的起點。Scratch 的視覺化積木讓孩子能在沒有語法負擔的情況下,專注在「設計邏輯」本身——這正是 Maker 思維的核心。等孩子在 Scratch 裡做過幾個完整的遊戲或動畫作品,再進入 Python 學文字語法、甚至接觸硬體,整個學習路徑會順暢很多。本文作者正是因為有了程式設計的底子,才能在接觸 Arduino 時馬上進入狀況。

讓孩子成為能把想法變成現實的人

  • 橘子蘋果從 Scratch 開始,培養孩子「從無到有打造作品」的 Maker 思維
  • 每個階段都有完整作品驗收,不只學語法,更學解決問題的能力
  • 免費試聽一堂,讓孩子感受「自己做出來了!」的成就感