本篇內容在與非學堂公眾號2020年12月28日首發。全文為翻譯稿,文中觀點均為原作者所有。原作者對「編程」的理解與國人不同,具有更廣泛的涵義,時隔12年,仍有借鑑意義。
原文連結:Programming Is the New Literacy
原文作者:Marc Prensky
發布日期:2008年1月13日
翻譯日期:2020年12月27日
掌握了提升表現力的人機互動手段,你將獲得強大的力量。
已經有很多著眼未來的研究人員就「二十一世紀的基本素養」(twenty-first-century literacy)這一概念提出了自己的看法。具備哪些關鍵的技能才能算作文化人呢?一些作家認為受過教育,具備讀寫能力(literacy)的定義還是跟以往一樣,就是「能夠用一種當下大家都在用的語言,進行細緻閱讀和寫作的能力。」另一些人則表示,具備讀寫能力必須要求能夠流利使用用戶量最大的一種或多種語言,這些語言將要在本世紀未來九十年裡變得舉足輕重,如西班牙語、英語或漢語普通話等。 還有一些觀點將「二十一世紀的基本素養」這一概念擴展到口語和書面語言之外,涵蓋了通常被歸為「多媒體」一類的技能,即能夠理解和創建信息、通訊和作品,這些信息、通訊和作品裡包含或由物理上視覺的、聽覺的和觸覺的元素以及文字構成。有研究者繼續從互動和遊戲中發現重要的新的「素養」。也有人認為,「二十一世紀的基本素養」包括了以上所有內容,並且可能還包括其他一些因素。 我就屬於最後這種人,因為我認為流利使用多種語言仍然會非常重要,與此同時,多媒體、交互性和其他遊戲衍生設備,也將成為二十一世紀裡越來越重要的思想交流工具。儘管如此,我卻堅信,新世紀真正關鍵的素養,並不在剛才所說的這些領域範圍之內。 我認為,編程素養才是唯一一項能夠區分一個人是否有文化的技能,即一種能夠在可能的範圍內,利用數位技術完成任何任務的能力,能夠像現在我們使用文字和圖像一樣,使用數位技術來滿足個人的需要,達成個人的目標,實現個人的意願。有人稱這種技能為人機互動,也有人稱其為程序式素養(procedural literacy),其他人則稱之為編程。 這個觀點看起來很奇怪吧?我敢肯定你會這樣覺得。因為今天,在編程這方面具有高超技能的人們,被我們認為是nerd(原意為「書呆子」、「怪人」)。但是請考慮一下,隨著機器成為我們通訊、工作、教育、旅行、居家和休閒中越來越重要的組成部分,利用它們實現預想功能的能力將變得越來越有價值。(譯者註:從這個意義上來說,由於人的需求是變化的、無止境的,編程的工作也是變化的、無止境的。)今天,西雅圖的一位前程式設計師(比爾·蓋茨)已經是世界上最富有的人之一,他是這些nerd中的一員。 因此,從某種意義上講,我們將在二十一世紀的發展中,見證nerd的真正雪恥,不過,這些新的nerd將是我們那些具有編程素養的孩子。隨著編程變得越來越重要,它將離開鮮為人知的幕後,成為較高知識階層和社會階層的關鍵技能和特質,就像過去的讀寫能力一樣。要知道,僅僅在幾個世紀之前,閱讀和寫作還局限於一個小型的專家班,我們稱之為抄寫員。 有人可能會問:「每個受過教育的人都必須學習編程嗎?需要用編程解決問題的人,難道就不能購買這種服務嗎?」這倒不是沒有可能。但如果是這種模式,我們在某種意義上又回到了中世紀或古埃及時代,甚至更早。那時候,如果需要在紙上傳達你的想法,不可能只靠你一個人就能辦到。你必須僱用一個受過良好教育的人,叫做抄寫員,他知道如何記錄你的想法。收到紙條的人,如果沒有受過良好教育,也需要一個人幫忙才能閱讀或解碼紙上的內容。當然,如果你已經學會了閱讀和寫作,成為了有文化的人,那麼就不需要人幫忙了。Electronic Arts這家世界上最大的電子遊戲公司最近發明了一種廣告牌廣告,它是用一種程式語言寫的,你能讀懂嗎?(意思是「正在招聘」Now Hiring) 這裡有一個關鍵問題:在二十一世紀裡,究竟是我們仍將需要單獨的程式設計師這樣的「抄寫員」群體呢,還是接受良好教育者的技能包中將很快包括熟練編程這一項內容呢?我認為隨著以下這些必然的趨勢,即編程會變得越來越容易,做展示的需求相比做解釋的需求會變得越來越重要,同時團隊工作時人們希望能夠將他們的想法和努力的結果即刻結合,可以得出,受過教育的這一概念將包括會編程。想想看,你的手機和汽車已經需要編程了,許多家務和工作也是如此。編程將很快成為我們與所有生活中的物件交互的方式,我相信它也將成為人與人之間相互交互的重要手段。 當然,Luddites(譯者註:勒德分子,指反機械化以及反自動化觀點的人)認為數字機器如果只有一個按鈕才是最優雅的(例如Roomba機器人地板清潔器),人們也一直在尋找只能打電話的手機。(祝您好運!)操作機器做你想做的事情,為它們編寫程序,有著不同的層級,可以是簡單地比如操作一個單選開關,可以是操作管理菜單、選項和做一些自定義,也可以複雜到比如使用高級程式語言(Flash、HTML和腳本)和低級語言(C++、Java)來編碼(越接近人的語言越高級),也可以是使用彙編語言或機器語言編程。 但是,很少有人滿足於第一層級的簡單操作方式,一旦掌握了簡單操作,大多數人便會根據自己的需求和興趣,做一些改進和自定義。(製造Roomba的公司提供了一套套件,可將其零件變為你所需的任何類型的機器人。) 幾乎每個年輕人都會某種程度的編程,用來操控自己的數位技術或設備。許多僅僅被視為任務的動作,像設置通用電視遙控器、下載鈴聲、自定義手機或臺式機,這些都是真正的編程。進行Web搜索也是一種編程,使用點對點技術或社交網絡技術、使用eBay,或在Word、Excel、MySpace或Facebook中創建文檔,或在Second Life中創建虛擬的身份角色,這些也都是在編程。今天的孩子是如此優秀的程式設計師,以至於很多父母在購買了昂貴的高科技產品後,例如可攜式攝像機或家庭影院,往往會將它們交給孩子們來設置(也就是編程)。 今天,大多數這種「編程」都使用我所說的高級程式語言,即由菜單和選項組成的語言,而不是更靈活的計算機代碼。當然,許多人會滿足於這種程度的編程(儘管這種編程很多時候也會讓許多「有文化」的成年人感到困惑)。 但是,當今天的孩子逐漸長大,成為今後受過教育的成年人時,大多數人會走得更遠。許多年輕人從很小的時候就開始學習網頁的HTML語言,他們經常會進一步學習到更為強大的姐妹語言如XML和PHP。也有孩子為了構建遊戲,學習如GameMaker、Flash和Scratch之類的程式語言,以及腳本語言、圖形工具,甚至C++。他們在學校裡時不時學習這些東西,但大部分還是在課餘時間或在專門的夏令營中自己學習。為什麼?因為他們意識到,編程可以使他們有能力用自己這個時代的語言進行自我表達,更重要的是,在學習過程中充滿了樂趣。 假設您需要一個電腦程式。你會說「我?我怎麼會有這樣的需要呢?」但這種假設一點也不牽強。例如,霍華德·迪恩(Howard Dean)幾年前競選美國總統時,他(或他團隊中的某個人)有這樣一個想法:「如果我們能通過網際網路獲得募捐會怎樣呢?」以前沒有人這樣做過,因為這東西不存在——沒有誰寫過這樣的程序。於是他出去找了一個年輕的程式設計師,一個十八歲的男孩,編寫了必要的代碼,這樣在短短幾周之內就完成了大量的募捐。 大多數人都會遇到各種問題,如果我們把它們看作編程問題的話,使用計算機或其他電子設備就能輕易解決。比如說:「在不同天氣或其他條件下,我最好的通勤路線是什麼?」「我在運動(愛好或是工作)方面的統計數據是怎樣的?與他人相比如何?」「我的XXX(譯者註:XXX可以指電腦、手機、汽車、家庭理財等不同內容)最佳配置是什麼?」「我離退休還有多久,到時候會有足夠的錢嗎?」 我們都有適合用編程來作解決方案的想法和需求。我認為,受教育程度、文化程度越高(用二十世紀的老眼光來看),這樣的想法和需求就會越多。然而,我們大多數「數字移民」——那些在長大後才接觸計算機和數位技術的人——甚至從未意識到這一點。我們從來沒有意識到,想在某些時間與特定人群取得聯繫,減輕重複性工作的負擔(例如論文評分工作),或解決某些類型的難題(例如數獨),這些問題其實都是編程問題,而且都是很容易解決的編程問題。 但我們中的一些人確實意識到了這一點,於是我們僱傭年輕人,通常是我們的孩子、學生或僱員,讓他們平等地單純作為一名諮詢師來為我們提供解決方案,為我們編寫必要的程序。一個結果是,我們這些非程式設計師常常被比如金融規劃師敲竹槓(對一些很簡單的東西收費很高),他們提供了看起來很複雜的工具;但是假設只要我們有一丁點兒的「文化素養」,我們不僅可以自己編寫程序,還可以根據自己的需要進行定製。 今後的情形卻並不會繼續這樣。隨著二十一世紀的到來,受過良好教育的人們如果有了可以通過程序來表達的需求和想法,他們也將越來越能認識到這一事實,會把用編程解決問題這件事情掌握在自己手中。 最近,「普通人」使用的程式語言開始出現。其中,尤其是Adobe公司的Flash(一個允許用戶創建基於矢量的動畫的程序)(譯者註:Flash將馬上於2020年12月31日正式停止支持),似乎正在成為事實上的標準。世界上許多小學和初中的孩子都在學習Flash編程,並在學習的過程中不斷提高自己的技能。他們使用這個工具以及其他類似的工具(例如麻省理工學院的Scratch)來交流各種各樣的信息和情感,像故事、邏輯、遊戲、思想、具有說服力的觀點、藝術作品,等等,所有這些都可以通過編程實現。在他們看來,這並不是奇怪,而是非常精巧細緻、先進無比。 當然,這樣做的青少年群體在所能做的事情的複雜程度上,有很大差別。但是,複雜的編程正在變得越來越容易。越來越多的預製的編程對象——即他人完成的代碼,只需要經過簡單拼接就能完成某些任務——在網際網路上可以找到,而且大多是免費的。 這些預製零件的資料庫可以極大提升學生的能力水平,拓展編程和解決問題的能力,縮短完成任務的時間。從某種意義上說,這些預製零件的代碼就像是編程的字母表。(譯者註:巧妙地使用這些預製零件組成自己的程序,就跟將字母組成自己想說的話一樣。)最近,一個朋友要在Flash中編寫一個「幸運大轉盤」的程序。他並沒有花一周的時間從頭開始編程,而是先進行了網絡搜索,找到了一些和他想要的功能類似的免費代碼,並在一個小時內就完成了這個項目。 隨著這些可用的、可找到的代碼片段越來越多,可以用編程進行處理或開展通信的任務也可以無限地擴展。儘管像Flash這樣的簡單程序已經相當成熟了,許多年輕人還是通過遊戲創作、網絡工具創作或其他方式,開始學習更複雜的程式語言,如能夠構建三維世界的、腳本式的,以及完全抽象的邏輯程式語言Java和C++。 於是就出現了新的「抄寫員」程式設計師群體,逐漸成長並最終成為二十一世紀的知識精英。編程已經成為今天的年輕人彼此交流的工具。他們通過實現像machinima(「機器電影」,指的是把電子遊戲裡的簡單工具用到意想不到的地方)、鈴聲、表情符號、搜索、圖片處理和遊戲等進行交流。在交流的時候,一般用電子郵件或即時通訊工具互傳完成的程序,就像我們用Word和Excel附件一樣,他們經常把作品發布在網際網路上,以供所有人查看。我敢說,大多數人最近都收到過帶有URL的電子郵件,這個URL指向了一個有趣的程序、賀卡、YouTube視頻、機械電影或是遊戲。(當然,Word和Excel本身就是程式語言,具有通過宏和腳本內置的極其複雜的編程功能。) 在二十一世紀,我預測那些不編程的人,那些無法將日益複雜的電腦、機器、汽車和房子按自己的意願和需要加以改造的人,將會越來越落後。父母和老師對今天的年輕人不屑一顧,覺得年輕人欠缺那種陳舊的讀寫標準下的素養。但反過來,這些年輕的未來公民,也不尊重那些不會為DVD播放器、手機、電腦或其他類似設備編程的成年人。今天的孩子們已經把他們的父母和老師看作文盲了。難怪一些老師不敢把新技術帶進教室,只怕孩子們會嘲笑他們是文盲。 所以,2008年的高文化水平的人一天的工作,可能從閱讀《紐約時報》開始,並針對某個專欄向編輯發送一封措辭巧妙的信,而2028年的高文化水平的人可能會在一天的開始,以多種方式獲取新聞及相關的故事,新聞故事都通過編程,按他自己偏好的順序、期望的速度進行收取。如果他要表達自己的觀點,只需通過簡單的編程,他就可以決定應該發給世界範圍內的哪些人,並為每個接收都定製不同的內容。他也可以通過編程播放視頻、動畫或仿真影像。 今天高文化水平的成年人可能會給年輕的侄子侄女寫一張詼諧的生日賀卡,而明天高文化水平的成年人可能會給孩子編寫一款遊戲程序。今天的高文化水平的人可能會在飛機上或火車上閱讀一本精巧的小說或非小說類書籍,明天高文化水平的人可能更喜歡用編程改變互動的故事或媒體,以適應個人喜好,再編寫一些程序,將這些變更向世界發布。 當然,所有這些也可以用到實物,比如機器人技術和機器編程。 工具對人類來說一直都很重要。現在,知識工具正變得越來越重要。直至最近,接受教育並成為一個有文化的人,意味著要學習使用每個領域或學科中的必要工具。任何工具都會隨著時間的推移而變化和改進,但它們通常變化速度相當緩慢,而且新工具往往不是由普通人發明的,而是由「天才」發明的。長期以來,接受某個領域的教育意味著要掌握該領域現有的工具。 在本世紀,我認為我們將看到一些完全不同的東西。一般高文化水平的編程人員會利用他們越發高超的編程技能,不斷發明新工具來解決他們遇到的任何問題。事實上,這也將符合人們對有文化的人的期望。在許多圈子裡(包括但不限於科學圈子,大多數仍然是技術的),經常會有人說,「我編寫了一個小程序來解決了這件事。」無論是尋找曼哈頓的地址,還是記錄下一次發工資還有多少秒,一個典型的反應是,「我能做到嗎?」答案就像URL或USB密鑰一樣簡單。 通過編程來創建有用的工具,既不需要你是極客,也不需要大量的人。一位女士最近編寫了一個非常有用的程序來收集和兌換她的超市優惠券。谷歌是由兩位研究生(Sergey Brin和Larry Page)創建的。只有一個人(Pierre Omidyar)為eBay開發了原始程序。通常,大公司和大公司的利潤都來自於這些最初的編程想法。(Brin、Page和Omidyar都是億萬富翁。) 即使有時程序不能產生巨大的利潤,成千上萬的人也在創建和分享可供人免費使用的優秀程序。成功的公司會培訓新的程式設計師,讓他們在公司開發的工具之外,還能產生自己的想法,開發自己的工具。精明的企業已經在尋找能夠創造這些新工具的年輕人,他們是具備二十一世紀基本素養的僱員。 所有這些都使我們想到一個重要的問題:如果編程(控制機器的能力)的確是本世紀的關鍵素養,那麼作為教育家,我們如何讓我們的學生學習編程呢?這是一個特別棘手的問題,因為大多數老師,甚至是我們最好的數學和科學老師,都不具備必要的、基本的技能。大多數工具(甚至編程的概念)都是在這些老師出生或接受教育以後很長一段時間才發展起來的。 我們可以通過把以編程為工作的程式設計師帶到學校,讓學生學習編程嗎?不太可能。大多數優秀的程式設計師忙於編程,沒有意願教孩子們學習編程。 答案尚不清楚,但我們可以設計創造性的解決方案來解決這個真正的問題。或許也可以這樣想,如果沒有這些程式設計師教,孩子們可能會像他們能做到的許多其他事情一樣,能夠想辦法自學。想像一下,這將是一種沒有官方老師的編程學習。 從現在算起,三十年後,預計我們的機器將比今天的機器功能強大十億倍。具備讀寫能力的並不是那些掌握文字,或多媒體操作的人,而是掌握了各種強大的、富有表現力的人機互動的人。如果你是老派的,你可能不喜歡聽這些,但我相信沒有人可以阻止這種趨勢。從現在起的三十年,讓美國的國民具備十年級水平英語讀寫能力,抑或具備擅長製造當下時代能為我所用的複雜機器的能力,哪種選擇會讓美國更具競爭力呢?這兩種選擇可能相互排斥,正確的選擇可能將決定我們的孩子在世界智力層級中的地位。
(註:馬克·普倫斯基(Marc Prensky)是《基於數字遊戲的學習》和《不要打擾我,媽媽,我正在學習》的作者,基於遊戲的學習公司GAMES2TRAIN的創始人兼執行長。
與非學堂(codingclassonline)
一個專注青少年信息技術教育,探討少兒編程的教與學,交流技巧、分享資源的公眾號。
---
【課件分享】
【超詳細Scratch教學課件分享】簡單倒計時
【超詳細Scratch教學課件分享】可暫停倒計時
【超詳細Scratch教學課件分享】兩位數可暫停倒計時
【超詳細Python教學課件分享】尋寶探路
【超詳細Python教學課件分享】遞歸傳話
藍橋杯青少組選拔賽STEMA考試樣題及解析(科技素養及邏輯思維)
【Scratch競賽每日一題】旋轉問題
【Scratch競賽每日一題】雷電猴與寶箱
【Scratch競賽每日一題】海狸的語言
【Scratch競賽每日一題】加減大師
【Scratch競賽每日一題】限時猜數字
【Scratch競賽每日一題】蹦床遊戲
【Scratch競賽每日一題】來回蹓躂的小貓
【Scratch競賽每日一題】小貓回城堡
【Scratch競賽每日一題】薛丁格的貓累了
【Scratch競賽每日一題】小貓狐狸賽跑
【Scratch競賽每日一題】循環變大小
【Scratch競賽每日一題】循環畫畫
【Scratch競賽每日一題】坐標和反彈
【Scratch競賽每日一題】北極熊快長大
【Scratch競賽每日一題】移動與反彈
【Scratch競賽每日一題】巧用圖章
【Scratch競賽每日一題】畫線判斷
【Scratch競賽每日一題】循環變量
【Scratch競賽每日一題】小貓克隆
【Scratch競賽每日一題】小法師的穿牆術
【Scratch競賽每日一題】隨機數
【Scratch競賽每日一題】小貓拿蘋果
【近期考競通知】
第十八屆全國中小學信息技術創新與實踐大賽開始報名
藍橋杯青少組選拔賽 報名開始
8月編程競賽匯總,Python、Scratch都有
2020年第二場NCT全國青少年編程能力等級測試即將啟動
青少年編程能力等級測評(CPA)2020年第二季開始報名
排隊漫談
少兒編程的幾種課程模式
半部論語治天下,一段Scratch懂論語
第一次生而為人
那些語文老師不會多講,數學老師認為你會的關聯詞
好書推薦:《CODE》
編程卻被我媽一直說成玩遊戲,我該咋辦?
【免費快領】Scratch編程秘籍PDF
為什麼精心製作的少兒編程課程觀看的人不多?
零基礎孩子的第一節Scratch課,應該學什麼?
Scratch晉級Python,一路要打通哪些關?
一名合格的程式設計師,如何讓 林有有 = 沒有
這些東西,比光讓孩子學編程重要100倍
這位同學,Scratch代碼裡可不能填這麼大的數字哦!
玩轉Scratch,炮彈擊中目標有多難?
【長文慎入】從計算機世界出發窺探中西文明的差異
就《從計算機世界出發窺探中西文明的差異》的補充