Coding 是否應該成為一門基礎學科?

matrix

當別人問歐巴馬如何看待美國在科技領域有所落後和缺失的情況時,歐巴馬回應道,

「目前的事實是,如果我們不做一些更好的選擇,那麼我們的領先優勢將逐漸縮小。我們需要讓孩子們參與數學和科學,而這不僅僅是一小部分孩子,而應該是所有人。所有人都應更早地學習如何編程。」

這是一個國家領導人站在自己國家戰略的角度上進行的回答。因此如果光從這句話去理解歐巴馬想表達的意思,很可能會引起不必要的誤解。對於站在這樣高度的人所說的每一句話,都必須結合他所處的位置,以及說話的背景進行理解。

  • 歐巴馬關心的僅僅是編程嗎?

2015 年 1 月,歐巴馬發表 第六次國情咨文 ,重點放在未來的經濟政策,關鍵詞是「中產階級」,歐巴馬經濟政策圍繞著提升美國中產階級人群的數量、生活水平而製定。

歐巴馬說,「在美國的歷史上,任何一個經濟變革的時刻,美國都採取了大膽措施以適應新情況,以確保所有人都有公平的機會。」

歐巴馬的經濟政策著眼於三點, 一是減輕中產階級的稅負,二是升級美國人的職業技能,擴大中產階級人群的數量,三是提倡科技創新。

在國情咨文中,他提到,「由於副總統拜登為升級我們培訓系統所作的傑出工作,我們正將社區大學與本地雇主聯繫起來,以訓練從事編程、護理、機器人等高收入職業的人員。」——這是希望美國人能夠掌握更高的職業技能,以得到收入更高的工作,令更多美國人進入中產階級。

他還提到,「在任何地點打造最具競爭能力的經濟,同時公司也想在那些地點建立機構和僱傭員工。……21 世紀的商業將依賴美國科學、技術、研究和發展。」如果說歐巴馬希望通過職業教育令美國人掌握更多專業技能,那麼他也必須創造出足以消化那麼多專業人才的市場,否則就難以形成良性的循環。

2008 年,歐巴馬在美國經濟降到低點,失業率高升的情況下擔任美國總統。所以,他的執政承諾當中,最重要的一個是令美國經濟復甦,以及讓更多人擁有工作崗位。而他作出了一系列決定當中,最重要的一個是號召美國企業回流,增加本國的就業,改善本國的經濟狀況。

2011 年,2 月 17 日的晚宴上,賈伯斯向歐巴馬抱怨美國的工程師太少,說蘋果在中國的一家 70 萬人的工廠裡,需要 3 萬工程師提供支持,而在美國找不到這麼多的工程師,「如果你能培養出這些工程師,我們可以把更多的製造廠搬回來。」

至此,可以從幾個角度來理解歐巴馬關於「編程要成為基礎教育」的觀點:

● 從教育角度來看,歐巴馬希望更多人掌握編程的技能,進而擁有更好的工作,擴大美國中產階級的數量。2014 年 Glassdoor 發布調查報告總結了美國 15 家薪酬最高的公司,其中有 7 家是科技企業;

● 從美國政府角度來看,如果「美國製造業回流」將是未來美國一項基本國策,那麼美國本土就必須提供更多相關的人才,而編程作為一項高精尖行業必備的職業技能,必將得到重視;

● 從行業發展角度來看,未來美國的經濟活力有賴於科學、技術的創新,而這方面的創新,從歷史角度來看,有賴於中小企業的參與和推動。而足夠的人才儲備,將為創新提供充足的動力。

  • 編程是否應當成為基礎教育的一部分?

不管歐巴馬那句話背後的意思如何,對於 IT 技術行業中的一份子,或許會更加關心這個問題:編程是否應當成為基礎教育的一部分?

儘管這個問題還不夠 20 個字,但卻很難回答。它涉及以下幾個問題:

1. 編程適合成為基礎教育科目嗎?若要成為基礎學科,編程教育是希望達到怎樣的目的?
2. 若讓人更早地接受編程教育,那麼編程教育應該是算哪種類型的教育?
3. 在大量計算機學院畢業的大學生,卻往往缺乏相關的職業技能的情況下,中國教育的體制,適合推廣編程嗎?
4. 基礎教育學科設立的背後,需要怎樣的社會環境,才能得以順利推廣?

我採訪了 20 位以上不同背景的人,詢問他們贊同或反對歐巴馬的觀點,以及贊同與反對背後的理由。這些人當中,有的是開發者,有的是開發者當中重視技術教育的,有的是非開發者但注重運用技術工具的,也有的是非開發者而且也對科技興趣了解不深的人,也有的是非開發者初為人父人母的……我試圖站在更多立場來看待「編程是否應當成為基礎教育」的問題。

  • 以職業技能的觀點來看,編程並不適合作為基礎學科

我在總結採訪對像對該問題的態度時,發現不少人試圖先定義「編程」作為一種教育,應當實現怎樣的目的,而後再談及編程是否應當成為一種基礎教育。有趣的是,不管是支持或反對,他們並不不認為如果把「編程」作為一種職業技能來培訓會產生很大的價值。

曾在《愛範兒》開闢「斷章」專欄,現在擔任一家公司 CTO 的陶醉,反對編程應當作為基礎教育的一部分。他認為,「從培養基礎學習能力來說,編程是應用技術,遠不如數學、文學、外語、自然對任意國家的孩子來得重要。從培養技術工作能力來說,第一,如果他不從試這行業沒有必要,如果他從事這個行業的話,更新換代又太快,掌握皮毛浪費學習時間和精力。」

哈佛尼曼學者、專欄作家安替也表達了同樣的憂慮,「最大的問題是,如果推廣的程序語言過時了怎麼辦?C 語言當年多少文科生在學啊,現在有什麼用?行政推廣一個本由競爭出來的語言肯定有問題。」

前 DoNews CTO、盛大創新院高級研究員,現移居加拿大的霍炬,同樣不支持編程應當成為基礎教育。「編程本身並不是一門學科,而是很多學科和對其他領域知識的組合。所以,單單學會一種計算機語言表達,對於解決實際問題幫助不大。」

「它和數學物理不同,那些是科學的一部分。即任何時候對於一個沒有數學概念的人,學習數學都要從最基礎的部分開始,編程則不然,整個系統環境和方法是快速變化的。基礎教育欠缺靈活性,學會的技能很快會過時。」

移動 QQ 的產品經理唐敬藝認為,沒有必要過早展開編程教育,「大家天賦不同,何必強逼。需要用編程帶來的服務,不代表需要學。就如需要吃飯,不必人學做飯。讓有興趣和天賦的人學習就好。基礎學科,人文、歷史、自然、科學語言即可。編程是專業能力,大學裡讓一部分人跟進就好。」

另外,在我的朋友圈當中,這個問題引發了一長串討論。總體圍繞在「編程變成基礎學科之後,就一定能夠激發人的創造性嗎?」的問題上。一朋友認為,編程是一門工程性學科,偏重在前人制定的規則不斷世界上,是試圖排除不確定性的過程​​,跟基礎類學科有很大的差別。而另一朋友則認為,編程作為一種工具,實際可以激發孩子的動手能力,讓他們去創造自己喜歡的東西。

  • 如果編程作為一門基礎學科,可能幫助學生提高邏輯思考和獨立解決問題的能力

然而,如果編程不是作為一種職業技能來培訓,而作為一種啟蒙學科呢?幾乎所有人都支持。

代碼託管社區 GitCafe 創始人姚欣宇認為編程可以勝任基礎教育科目。在他的觀念裡,基礎教育的作用在於「教會一個人基本生活常識及各領域基礎技能、解決問題能力和思維方式,以及面對失敗的方法及如何通過這樣的過程獲得自信。」

「編程這件事情本身就是解決問題的代名詞,如何系統化、邏輯地解決問題通過編程及其基礎數學理論可以最好地教給受教育者。在學習編程的這個過程中,對於未知領域信息的搜索、獲取及分析的情況會反復發生,​​這是在我們傳統基礎教育學科中極少遇到的情況,但是卻是非常重要的一項基礎能力,編程會無形之中不斷強化一個人依靠自己的想法和力量找到解決方案的能力。

編程不總會一帆風順,我們所寫的代碼會經常出現 bug,出現運行失敗,或是未達到預期,在不斷經歷小挫折、debug 成功的路線循環中,一個人能夠很好的培養起自己的自信,對未知的問題不再恐慌是非常重要的基礎。」

理財應用 DailyCost 的開發者梁國鵬也認為編程應當作為一門基礎學科對待,但他覺得編程應該是讓人對計算機產生​​興趣的敲門磚,這一點與姚欣宇的觀點不一樣:

「在當今計算機極大普及的背景下,一個國家的科技水平很大程度是由計算機水平決定的,這個水平不是使用計算機的水平,而是利用計算機、網絡等手段解決更複雜問題的能力水平。而學習編程只是一個入門應該儘早的普及,引起孩子們的興趣,帶他們入門。」

我的身邊一位初為人母的朋友和 KnewOne 的 CTO 李路、還有《愛範兒》產品總監李本卿,認為編程訓練有助於學生邏輯思維的培養。李路說,「軟件是人類能製造出的最複雜的事物(可高達 9 個以上抽象層次),編程基於邏輯,訓練這方面的思維特別有效。」他還認為「編程入門並不需要很多前置課程,但精通並不容易,這是基礎教育的重要特徵。」

  • 編程成為基礎教育的另一理由,技術已經滲透生活當中

正點鬧鐘 CEO 王穎奇認為,「整個世界已經由軟件驅動,學習編程有助於理解這個世界的運行邏輯,不會再出現高鐵站上有人指著自動售票機罵娘的情況。」

《愛範兒》黃姓編輯認為,「App、移動互聯網已經成為生活不可或缺的一部分,就像過去建房子、修電燈、烹飪一樣,學習編程也是應對生活、改變生活的基本技能。」

而「教育大發現社區」聯合發起者、北京師範大學教師莊秀麗也抱有同樣的看法。「我對歐巴馬的觀點表示認同,因為歐巴馬在表達要學習編程的時候,並沒把否認或降低其他一些基本素養培育的重要。」

「未來的世界,是數位化的世界,人類各種信息的開發和存儲,都在藉著數字化的編程方式,表達、傳播、加工。從這個角度來說,孩子從一出生,他所接觸到的世界,就是被數字化符號編織和連接的物理世界。因此,當孩子有機會接觸學習編程素養,會更好地幫助孩子理解和認識這個被數字符號連接的世界。」

  • 從社會的角度看,若把編程轉為基礎學科,其後果可能是正面的

《愛範兒》的 CTO 張滌凡支持編程成為基礎學科,「歐巴馬總統提出將編程能力作為基礎教育的一部分將是另一次對美國歷史產生重大影響的決策。克林頓提出的國家資訊基礎建設計劃促使了美國最近二十年在信息技術方面領先全球的結果,而培訓出擁有編程能力的一代人,對計算機行業的發展會提供更多人才儲備。這可以通過二十世紀末二十一世紀初,互聯網泡沫時期,因泡沫刺激學習 CS(美國人習慣將計算機專業縮寫為 CS)的人才在次貸危機過後為充滿活力的互聯網創業公司提供了大量的人才儲備,促進了舊金山灣區新一次的創業高潮的事實而得到證實。而且,這也將減少美國對於外籍高科技勞工的需求。」

姚欣宇認為,「基礎教育中真正開始注重基礎能力的培養,是拉開國家和國家巨大差距的因素。編程只是個最好用的工具和方式,而美國率先意識到了這一點,無論是處於政治作秀原因還是真的理解,這都會帶來非常正面的效果。」

現在深圳被視為中國的「矽谷」,很大程度上要感謝 2006 那一年迎來了「山寨」狂潮——應對快速變化的市場環境,訓練了大量技術過硬的工程師,形成靈活而高效的供應鏈分配。

更重要的是,因為「山寨」,深圳可能聚集著世界上數量最多的硬件工程師,這是中國深圳可與矽谷比較的優勢。

  • 在中國應試教育的環境下,編程不適合作為基礎教育學科

秒視 CEO 周凱雯說,「國內高中數學課程就有 Basic 編程的內容,主要是針對語法做了些講解,高考這部分內容大概佔 6 分,我們所示基礎教育加入了編程,但是很明顯沒有多少人對這種流於表面不結合實際的編程教育有所受益。再好的東西用這種形式向學生傳播,恐怕沒有什麼用。如果編程要推廣成基礎教育,還要看考試考不考,佔多少分。」

  • 如果編程成為基礎學科,最大的挑戰來自師資力量的不足

莊秀麗以教師的角度出發,解釋技術教育推廣會遇到的問題:推廣編程教育,實際上包含兩部分的內容:一是思維方式上的,一是操作技術層面的。

技術層面的內容,是具體的,是變化的,就像程序語言發展一樣,是不端更替變化的。操作技術部分的內容,就像現在一些中小學中,孩子們會用 Scratch 這款軟件編程一樣。然而,不容易推廣的,是體現現在操作背後思維方式這個層面的內容。當然,如果有足夠優秀的師資(能更勝任引導孩子進行編程的優秀老師),推廣也就不會是很難的問題了。

「優秀師資的培育,也不是段時間就能夠發展出來,師資能夠發展也需要有相應的土壤。如何克服推中存在的這一難題,打破傳統學校機制的壁壘,無論是通過哪種方式,讓孩子們有機會跟各類科技創新企業或相關民間教育組織進行連接,有機會體驗到由那些企業組織提供的各種教育服務。」

Python 中文社區創始人周琦認為,推廣編程教育「唯一的困難是當前社會的整體對知識、信息、數據的態度是什麼。如果普遍認為知識無用,數據不值錢,信息必須受到嚴格過濾,那麼無論進行怎樣的教育體制內編程教育引進,都無法引發出合理的當代信息素養。」

另外,姚欣宇提到,社會對編程認知的偏差,也是推廣編程教育的障礙:「普通老百姓對編程這件事情的認知分為三種:1. 這東西是聰明人玩的東西;2. 我用不到編程這個技術,不需要學;3. 會編程的人修電腦應該很厲害。」

另外,他還注意到,編程技術的選擇多樣性,也構成對編程教育的阻礙,「在技術圈中,我們都會講 PHP 是最好的語言這個笑話,幾乎所有技術從業者都知道這是諷刺 PHP 語言各類設計問題的行業笑話。但是現實中,PHP 雖然在一些設計上落後甚至有缺陷,但這樣的技術應用廣泛,學了對找工作有好處,所以從教育體系的角度來說,這個時候就會遇到問題,到底是教社會上用的多的,還是注重基本功先教核心基礎。技術領域的多樣性導致編程其實是一個非常龐大的話題和體系。」

他認為,「可以組織一些面向社會層面的活動,讓大眾了解到編程是什麼以及不是什麼,還有它能夠帶來什麼,關於編程技術體系龐大的問題,可以先制定標準的選修內容,然後根據興趣和方向進行不同技術路線的選修。」

  • 總結

關於編程是什麼,不是什麼,或許是另外一個非常值得討論的話題。然而,從採訪的結果來看,可以看到應對高度信息化的社會,有的人認為掌握編程思維、技能,可以幫助孩子更早的適應社會、適應世界。

然而,若從教育的基礎學科來看,編程作為一種工程性很強的、與多種學科掛鉤的學科,作為職業技能進入基礎教育未必適合——工程技術飛速往前發展,知識結構常常需要迭代更新,僅僅 3、5 年就煥然一新。而幾乎沒有人認為,中國的應試教育體制,能夠很好地推廣編程教育。

總之,丁香園 CTO 馮大輝的觀點會更加中立,「我不覺得編程應該是基礎教育的一部分。倒是覺得,IT 技術的基本使用技能應該是基礎教育的一部分。編程只是 IT 技術的一部分而已。」

確實,在一個連搜索都還搞不懂怎麼樣的國家裡,提倡編程變成基礎教育學科或許還是太早了。

PS:感謝所有接受我採訪,並給出回复的人,由於篇幅的關係,相近的觀點沒有列出,再次感謝。

(本文轉載自合作夥伴《ifanr》;未經授權,不得轉載)

點關鍵字看更多相關文章: