原作者:Linda Liukas
內容來源:
http://www.ted.com/talks/linda_liukas_a_delightful_way_to_teach_kids_about_computers?language=en
翻譯:Godsdog
譯文僅供個人學習,不用于任何形式商業目的,轉載請注明原作者、內容來源、翻譯作者及簡書鏈接,版權歸原文作者所有。
代碼將是下一代世界通用語言。在70年代,朋克引領了整整一代人;80年代,大概是錢引領了一切。但是對我這一代的人而言,軟件是我們的想象力、我們整個世界的接口。這也就意味著我們需要一些列足夠多樣化的人來創造這些產品,這些人不應該將計算機當做機械的、孤單的、無聊的或是像變戲法似的東西,而是可以讓他們來好好搗鼓,好好鉆研的玩意兒。
我自己是在14歲的年紀就接觸到了編程技術的世界。我在青春期一直瘋狂的迷戀一位長者,而這位長者恰巧在后來成為了美國副總統,也就是 Al Gore 先生。然后我做了任何一個青春期女孩都會做的事情,我希望將對他的愛慕之情表達出來,于是我為他創建了一個網站,在這兒。在2001年,沒有 Tumblr,沒有 Facebook,也沒有 Pinterest,所以為了表示所有的敬仰和愛慕之情,我必須學著寫代碼。
這就是我如何開始編程的,作為一種自我表達的方式而開始。正如我很小的時候,會使用蠟筆和樂高來表達;當我年齡大一些了,我就學習吉他和表演戲劇來表達。緊接著,就出現了其他讓我感興趣的事情,比如詩歌,比如織襪子,比如列舉法語里的不規則動詞,比如想象各種虛幻的世界,比如 Bertrand Russell 和他的哲學。然后我就開始成為了那種認為計算機無聊、機械化而且孤獨的人。
然而在我今天看來,小姑娘們不知道她們被認為不應該喜歡計算機,小姑娘們很神奇,她們非常非常擅長于集中注意力在某些事情上,而且會各種提問,問“這是什么?”“為什么?”“怎么才能?”“如果?”這樣的問題。她們不知道她們被認為不應該喜歡計算機!是她們的父母這樣認為的!是像我們這樣的父母認為計算機科學是苦澀難懂的,是只屬于神秘制造者的詭異的科學定律,就像現在核物理那樣從我們日常生活中被移除掉了。
有一部分他們是對的,編程中確實存在很多計算機語法、控制邏輯、數據結構、算法,還有各種協議和范例等等。然后我們作為一個社會性群體,我們讓計算機變得越來越小,越來越簡單。我們抽象出人與機器之間一層又一層的概念和方法,以便于讓我們不需要理解計算機的工作原理甚至不需要跟計算機交流。與此同時,我們教導我們的孩子人類的身體是如何工作的,我們教導他們發動機是如何工作的,我們還告訴他們如果你想成為一名宇航員你就一定能行的。但是突然孩子問我們,“那么,什么是冒泡排序算法啊?”或者,“計算機是怎么知道將要發生的事情的?比如當我按下‘播放’按鈕的時候,它怎么知道應該哪一個視頻呢?”再或者,“Linda,互聯網是一個地方的名字嗎?”接著,我們大人就會尷尬的靜下來。“這是魔法”,我們之中有些人會這么回答。另一部分會說,“很難跟你解釋,這太復雜了。”
然而,不是這樣的,計算機既不是魔法也不復雜,只是它運轉的非常非常快而已。計算機科學家們建造了這些令人驚奇的、漂亮的機器,但我們感到很陌生,同樣的,我們對與計算機交流的語言也感到陌生,所以沒有那些優質的交互界面,我們便不知如何與計算機交流。
這也是為什么沒有人意識到當我在列舉法語里面的不規則動詞時,實際上我在鍛煉我的模式識別技能;而當我對編織感興趣時,我實際上在遵循一系列象征性的指令,包括循環這樣的結構;Bertrand Russell 畢生追求找到一種連接英語和數學的語言,結果發現它的根源就是來自計算機。我曾經是一名程序員,但沒有人知道。
如今的孩子們,他們通過輕敲、滑動、點擊的方式來認知這個世界。但除非我們給他們用計算機來創建工具,否則我們只是在培養消費者而不是創造者。
我所追尋的一切帶領著我找到這個小女孩,她的名字叫 Ruby,今年6歲了。她完全無所畏懼,充滿想象力甚至有那么一點愛發號施令。每當我自學編程遇到問題時,比如,“什么是面向對象的設計?什么是垃圾回收機制?”我都會努力想象著要是一個只有6歲的小女孩,她會怎么解釋這些問題。
我寫了一本關于她的書,并且給她添加附圖,Ruby 教會了我很多東西。她教會我不應該害怕自己床底下的蟲子;她教會我即使是最大最困難的問題也只是一系列小的簡單的問題組成而已;Ruby 還把我介紹給了她的朋友們,網絡文化多姿多彩的一面。她有很多朋友,像 Snow Leopard,一個很漂亮但是不太愿意跟其他小伙伴一起玩耍的孩子。還有 Green Robots,他們非常友好,也經常亂糟糟的。還有名字叫 Linux 的企鵝,它工作的效率極其高,就是有點難懂。還有空想主義的狐貍們等等。
在 Ruby 的世界里,你一邊玩就能一邊學習技術。舉個例子,計算機很擅于重復事物,所以 Ruby 會這么來教循環結構。這是 Ruby 最喜歡的舞步,“拍,拍,踩,踩,拍,拍,跳!”,然后你通過計數器了解到這個循環重復了4次;當我一條腿站著重復著上面的序列時,你意識到這是一個循環;你意識到這個循環序列的動作將會一直重復直到你媽媽快被逼瘋了。于是我們意識到永遠沒有現成的答案。
當我為 Ruby 的世界準備課程時,我需要真正的詢問孩子們他們如何理解這個世界,他們有什么問題,然后我會舉辦一些測試會議。我會給孩子們展示這四張圖片,一張汽車的圖片,一張視頻雜貨店,一只狗和一間廁所。然后我會問到:“你認為這里面哪一個是一個計算機?”,孩子通常會比較保守的說“這里面沒有一個是計算機,我知道計算機是什么樣子的:它是一個會發光的箱子,爸爸媽媽整天會花大量的時間在它前面”。但我們會發現,實際上一輛汽車是一臺計算機,它有導航系統在里面;一只狗,可能它不能算是一臺計算機,但它的項圈里面可能會有一個計算機在里面;而雜貨店,它里面有很多不同類型的計算機,像收銀系統和防盜警報。孩子們,你們知道嗎?在日本,廁所也是計算機,還曾經有黑客入侵過這些廁所。
然后我把這些印有開關按鈕的小貼紙給孩子們,并告訴他們,“今天你們都擁有了把這間房子里的東西變成計算機的神奇能力”。再一次,孩子們問道“聽起來很難啊,我不知道怎么回答。”我會告訴他們,“不用擔心,你們的父母也不知道正確答案,他們也才剛聽說互聯網這個東西。但你們,你們將要生活的世界是一個到處都是計算機的世界。”
接著,一個小姑娘拿著一個自行車的車燈跑過來說,“這個自行車的車燈,如果是一個計算機,就能夠變顏色。”我說,“這個想法太棒了,它還能干什么呢?”她想了想,接著說,“如果這個自行車燈是一個計算機,我們可以和我爸爸一起來一趟騎車旅行,我們睡在帳篷里,然后這個車燈就能放映電影!”這正是我在尋找的時刻,一個讓孩子們能意識到這個世界還是不完善的時刻,為了讓它變得更完美,我們需要建設技術,而我們中的每一個人都可以為之貢獻一份力量。
故事的最后,我們真實地組裝了一臺計算機。而且我們知道了愛發號施令的 CPU 和幫助它記東西的 RAM 和 ROM。在我們組裝好計算機后,還未它設計了一款應用。我最喜歡的故事是這個小男孩,他只有6歲而他最喜愛的事情是成為一名宇航員。這個男孩帶著巨大的耳麥,他完全沉浸在他的紙質計算機中,他為自己設計了一個星級導航系統。而他的父親,一個停留在火星軌道上的孤單的宇航員,此時正在房間的另一頭,男孩的核心任務就是將他的父親安全的帶回到地球上面。所以這些孩子將會對世界有了完全不同的視野。
最終,我們用科學技術創造的世界越是和藹可親、包容的、多元化的,整個世界越會看起來多姿多彩。所以,跟著我一起想象一下那樣的一個時刻,我們前面所講述的世界并不只是包括20多歲的硅谷男生,還包括肯尼亞的女學生,還有挪威的圖書管理員。想象一下明天的 Ada Lovelaces,永遠生活在一個真實的0和1的世界,他們樂觀的成長,他們對科技無所畏懼。他們追求力量,把握機遇,挑戰世界的極限,這是一個美好的有那么一點怪異的科技世界。
當我還是一個女孩,我想成為一個講故事的人。我喜歡童話世界,我喜歡在 Moominvalley 的清晨醒來,下午在 Tatooines 漫步,而晚上在 Narnia 睡去。結果編程變成了對我而言完美的職業,我依然在創造著世界,不過不是用故事,而是靠寫代碼。
編程賦予我創造屬于自己的小宇宙的神奇力量,遵循它的規則,使用它的范例,并加以練習。使用純粹的邏輯的力量創造無中生有的事物!