人人都要學程式設計?程式設計到底有沒有前途?

介面發表於2015-04-10

這個問題第一次被提出來,是在20世紀80年代,那時,個人電腦方興未艾。後來,軟體產業的發展似乎已經給出了明確而否定的答案。然而現如今,它帶著猛烈的勢頭再一次出現在人們面前。這一次,我們必須認真來對待它。

人人都要學程式設計?程式設計到底有沒有前途?

採訪物件:Serge Abiteboul (資訊管理學者)

巴黎高科評論:計算機素養在今天越來越重要。對學生和社會而言,其中的利害關係如何?

Serge Abiteboul:很簡單,資訊科技是今天這個數字世界的核心。要理解這個世界,瞭解它的基本構造並參與其中,計算機技能至關重要。而且從經濟競爭力角度來看,我們確實需要掌握計算機技術和科學,這就如同在19、20世紀掌握數學和物理學一樣重要。

美國總統奧巴馬親自呼籲美國年輕人學習程式設計,包括幾乎所有日常應用和機器程式。親自編寫程式和請別人替我們寫這兩條道路之間,從巨集觀角度來看,後者不是不可以,但意味著喪失了主動權,意味著在創新競賽中棄權,因為創新和編寫程式碼這兩件事已日益變得密不可分。

從個人角度,不會寫程式也會令你在程式面前非常被動,除了依據使用手冊按部就班,毫無自主權可言。作為網站站長,如果有些功能不盡人意,除非你能搞明白實現這些功能那10行程式碼,並能寫出兩行程式碼來改變它們,否則,你就永遠是一個技術的奴隸。

一個人想掌控技術,隨心所欲,就必須瞭解諸如雲和電子投票之類的知識,必須能獨立編寫小的手機app或網站程式碼。這與你從事什麼職業毫無關係,而且任何人都可以掌握。計算機技能並不比寫英文報告或設計物流系統更難。關鍵是真正參與到其中,扯下其神祕面紗。這是我們大家的挑戰,而不是企業IT部門的專利。

人們總是把計算與數字化混淆,它們的區別和相互關係究竟是什麼?

這是一個數字化的世界,在這個世界裡,有電腦科學。人們閱讀電子書而不是紙質書籍;課堂上使用的是數字螢幕而不是粉筆與黑板;人們的相機和汽車都已經數字化;孩子們剛學打字就知道如何使用拼寫檢查,剛學算術就可以使用Excel,這些都是數字化工具,但我們仍要學習有關書寫和計數的知識。人們能夠熟練使用谷歌或Facebook,但不知道谷歌搜尋背後複雜的演算法和Fackbook是如何保護隱私的。

計算機和程式設計是數字世界的核心。資訊科學開發出軟體來讓整個世界數字化成為可能。它是一種教育、一門科學和一門藝術——而不僅僅是賦予人們以工具和操作。人們一次又一次地將使用數字工具和程式設計相混淆,其實兩者毫無關係。

所以,資訊科學絕對有必要進入課堂,與物理、化學和數學平起平坐。但它又有很強的技術屬性,你必須學會自己程式設計、使用計算機來解決問題。這是電腦科學必不可缺的一個方面。

我們應該設立一門獨立的IT課,還是根據它跨學科的特點,將其結合在其他學科的學習當中?

注意不要造成混淆。學習數字化工具意味著不同的課程(建築設計工具、資料庫和搜尋工具、科學計算工具等)。但電腦科學本身是一個獨立領域。只有一種演算法思維。不管是你編寫程式來計算莎士比亞或普魯斯特作品中某些詞出現的頻率,還是用來計算矩陣乘法,基本流程都是一樣的(排序操作、測試、迴圈等)。只有通過這種科學的訓練,人們才能根據不同領域和情況來選擇不同的程式設計專案。

那麼,教授內容都包括哪些呢?

電腦科學提供了一種全新的思維方式:演算法思維,即如何用程式來解決問題。演算法思維的概念已經存在了很長時間。當你進行加法、乘法或除法等計算,你就是在學習演算法。但是對智慧工具和應用的程式設計要複雜得多。你必須掌握更抽象的概念如loop——允許特定任務的迭代。

然而,IT確實很實用。這門科學的美妙之處在於,你可以付諸實踐,你剛剛學到的東西馬上就可以用來編寫小而簡單的程式。即使在小學裡,孩子們利用Scratch這樣的程式語言就可以從小熟悉程式設計。問題的關鍵是瞭解計算思維這種幫助我們理解周邊世界的基礎性思維,並通過編寫小的程式來不斷髮展它。

因此,人們可以在很小的時候就開始學習?

每個人都應該從小開始,因為兒童最容易接受新的想法。在“知某數,識某文”之外,我們還應該加上“寫程式碼”。它必將進入到國家基礎教育的核心層面。顯然,IT不僅是程式設計,就像數學不僅僅是代數,文學不僅僅是寫作。但程式設計仍然是電腦科學的基礎,需要讓人們從小學習。

學校是這種教育的最佳途徑嗎? 或者它需要通過社會來完成?

很多學校都開始教孩子們程式設計,學校外也有許多小組、俱樂部、協會等,組織很多又酷又好玩兒的活動。然而,即使這些校外活動很有用,我們必須認識到,要讓所有兒童得到公平受教育的機會,還是需要儘快將這些課程整合進常規的學校教育。

那些已經離開學校但沒有受過任何計算機教育的人呢?

他們可以在職學習相關知識技能,通過各種協會、線上培訓,甚至用遊戲來學習程式設計。工程人士必須現在就開始學習。此外,還必須對其他科目的老師進行培訓。

通常情況下,我們可以設想三個重要的校內學習時段。首先要在小學階段熟悉主要概念,學習演算法和計算思維的基礎知識,並通過遊戲和Scratch這類程式語言,讓人們動手體驗;中學應真正成為每個公民學習計算機技術基礎知識的地方,包括實際的演算法程式設計、資訊架構、硬體等。這不是完全式教育,但至少要將其提升到與中學物理、生物相同的地位。為學生以後的專業學習和接受更高階知識打好基礎。

到了大學,我們可以為學生量身定做計算機課程。選擇理工科的學生可能會對計算的數學應用更感興趣,而走上人文道路的學生可將更多精力放在文字索引、語言學等方面。今天職業學校裡的年輕人已經開始將更多的時間分配在學習計算機上。事實上正是在這些學校,你會意識到學習計算機的重要性和必要性。

具體來說,低度開發國家能夠從全球的計算機文化蓬勃發展中得到什麼啟示?

一些國家已經解決了迎面而來的挑戰。總體而言,已開發國家在這方面非常先進。英國已決定將計算機考試加入高中畢業考試來推廣計算機教育。在德國,地方政府掌握著這方面的權力和責任,巴伐利亞州就很積極,並因此受益,它們甚至在將電腦科學納入課程體系之前,就開始大規模聘用擁有IT技能的教師。一些新興國家如以色列和韓國已在這方面展開競賽。今天,計算機課程正在全球遍地開花,而且受教育者年齡也越來越小。

相關文章