孩子應該學習程式設計嗎?

不一定!

劉佳男

加入我們的科學愛好者社群!

政府在推動這件事。在2016年的國情諮文演講中,貝拉克·奧巴馬總統說,美國應該為“每個學生提供讓他們在第一天就能勝任工作的實踐計算機科學和數學課程。” 不久之後,他啟動了一項40億美元的“全民計算機科學”倡議。

科技公司對此充滿熱情。亞馬遜希望透過其“亞馬遜未來工程師”計劃,每年向1000萬兒童教授程式設計。 Facebook、微軟、谷歌和其他公司也有類似的專案,規模和範圍各不相同。許多家長也很熱衷。根據旨在增加計算機科學教育的非營利組織Code.org的資料,90%的家長希望他們的孩子在學校學習計算機科學。 這解釋了許多面向兒童的教程和計算機程式語言(如Scratch和Hour of Code)的受歡迎程度。

那麼,您應該為您的孩子報名參加程式設計營嗎?堅持讓他們上計算機科學課嗎?也許是,也許不是。我小時候學過程式設計,這對我很有幫助。我用打包裝食品賺的錢買了一臺家用電腦,並學習了Basic程式語言以及一些機器語言。這很有趣,就像解謎一樣——我在大學一年級就找到了我的第一份軟體開發人員工作。情況並沒有太大變化:軟體開發人員仍然收入可觀,而且需求量很大。那麼“也許不是”是什麼意思呢?


關於支援科學新聞報道

如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道: 訂閱。透過購買訂閱,您正在幫助確保關於塑造我們今天世界的發現和想法的有影響力的故事的未來。


程式設計對我來說很有趣。但是對於那些不太熱衷的孩子呢?應該因為程式設計將來可能找到工作而強迫他們學習程式設計嗎?我會暫緩:在未來的幾十年裡,我們不太可能以現在的方式編寫計算機程式。例如,機器學習(當我們談論人工智慧時,我們主要指的是它)與向計算機提供詳細的、逐步的指令非常不同。相反,我們向機器學習演算法輸入大量資料,程式本身構建模型來完成工作。

舉一個引人注目的例子,谷歌翻譯過去需要50萬行程式碼。現在,在一種機器學習語言中,它只需要大約500行程式碼。關鍵的挑戰不是掌握一種程式語言:而是擁有足夠的資料,並理解計算機構建的模型在數學上是如何工作的,以便我們可以對其進行微調和測試。

那麼,對於這種計算機工作的未來,什麼才是重要的呢?技術方面主要是數學:統計學、線性代數、機率論、微積分。數學仍然是一項重要的技能,並且對程式設計以外的許多職業都很有用。它對日常生活也很重要。演算法思維不一定來自計算機程式設計。一些數學和適當的學習經驗,例如烹飪、縫紉、編織——所有這些都涉及某種演算法——都可能很有價值。

然而,對於未來更重要的是,計算機程式設計本身會鼓勵封閉世界的構建。這在一定程度上使它對我來說如此有趣:一步一步地(乏味地)組裝一些東西,然後在自己構建的世界中玩耍,這很神奇。不幸的是,這與當今科技行業的做法相去甚遠。程式設計師現在正在建立與複雜、具有挑戰性的現實生活互動的工具。如果說有什麼的話,他們對構建封閉世界的偏好可能阻礙了他們理解這些工具實際上將如何運作。我們現在需要的是那些瞭解歷史、社會學、心理學、數學和計算機,並且能夠自如地分析複雜、開放和混亂系統的人。

那麼,您應該讓感興趣的孩子報名參加程式設計營嗎?當然應該。應該讓孩子們玩玩Scratch或做一個Hour of Code教程,看看這是否能引起他們的興趣嗎?絕對應該。但是,如果他們反而想學習如何製作紙杯蛋糕、縫製枕頭或睡衣,或者爬樹,也不必擔心。

我們需要確保年輕人不要認為世界迫使他們在數學和科學與社會科學和人文科學之間做出選擇。我們面臨的最有趣,也許也是最具挑戰性的問題將恰恰出現在那個交叉點——而不是在我們喜歡為了好玩而構建的微小、封閉的世界中。

Zeynep Tufekci is an associate professor at the University of North Carolina, whose research revolves around how technology, science and society interact.

More by Zeynep Tufekci
大眾科學 Magazine Vol 321 Issue 2This article was originally published with the title “Should Kids Learn to Code?” in 大眾科學 Magazine Vol. 321 No. 2 (), p. 77
doi:10.1038/scientificamerican0819-77
© .