學(xué)會(huì)思考,而不只是編程
中國(guó)人常說(shuō)“授之以魚(yú)不如授之以漁”。如果說(shuō)教授編程是授之以魚(yú),那么教授計(jì)算機(jī)科學(xué)就是授之以漁。為什么說(shuō)學(xué)習(xí)計(jì)算機(jī)科學(xué)比學(xué)會(huì)編程要重要得多?來(lái)聽(tīng)聽(tīng) Yevgeniy Brikman 的解釋。下面是學(xué)習(xí)啦的小編為你們整理的文章,希望你們能夠喜歡
現(xiàn)如今,似乎每個(gè)人都在學(xué)習(xí)編程:Bill Gates、Mark Zuckerberg 和 Chris Bosh 這些名人在 Code.org 網(wǎng)站上告訴人們每個(gè)人都擁有編程的能力;CoderDojo 項(xiàng)目在世界各地大張旗鼓;英國(guó)已經(jīng)把編程作為小學(xué)官方課程。
不過(guò),我認(rèn)為這樣有點(diǎn)誤入歧途了。但請(qǐng)不要誤會(huì)——我也確實(shí)認(rèn)為代碼能夠讓世界變得更美好——但編程本身并不是我們的目的。計(jì)算機(jī)和程序只是工具,它們是我們通向終點(diǎn)的橋梁。
我們真正的目標(biāo)應(yīng)該是教會(huì)人們?nèi)绾嗡伎?。換句話說(shuō),我們應(yīng)該教人們計(jì)算機(jī)科學(xué),而不只是編程。在這篇文章里,我將會(huì)解釋這兩者之間的區(qū)別,以及為什么在這兩者當(dāng)中選擇正確的一方對(duì)于邁向成功來(lái)說(shuō)如此重要。
我們不妨先問(wèn)自己一個(gè)問(wèn)題:為什么我們要關(guān)心編程或計(jì)算機(jī)科學(xué)?
歡迎來(lái)到真實(shí)的世界
或許你正在使用 Chrome 或 Firefox 閱讀這篇文章,這些瀏覽器可能運(yùn)行在 Windows 或 macOS 上,而你可能正在使用筆記本或臺(tái)式機(jī)。你今天可能花了一些時(shí)間閱讀電子郵件、查看朋友圈的狀態(tài),或者在視頻網(wǎng)站上看了一些視頻。我們的生活在很大程度上依賴了計(jì)算機(jī):我們的醫(yī)療記錄保存在數(shù)據(jù)庫(kù)里;我們的簡(jiǎn)歷可能放在了 LinkedIn 上;我們使用 Google 或 Facebook 為產(chǎn)品做宣傳;我們?cè)?Amazon 上購(gòu)買這些產(chǎn)品;我們直接在網(wǎng)絡(luò)上進(jìn)行報(bào)稅;我們使用網(wǎng)上電子銀行;我們甚至開(kāi)始涉足電子貨幣。
現(xiàn)在將你的視線從電腦上移開(kāi):在你的口袋里或者桌角的某個(gè)地方可能放著你的手機(jī),它裝有 GPS、攝像頭、觸摸屏和大量的應(yīng)用程序。在你的客廳,可能有 LCD 電視機(jī)、DVR、DVD 播放機(jī)、Apple TV、Xbox 或 PlayStation。這些設(shè)備上的視頻、音樂(lè)和游戲都是由計(jì)算機(jī)圖形和數(shù)字音頻組成的。
當(dāng)你經(jīng)過(guò)你的汽車時(shí),你是否想過(guò),現(xiàn)代汽車是使用軟件設(shè)計(jì)并在滿布機(jī)器人和計(jì)算機(jī)的工廠里生產(chǎn)出來(lái)的?你開(kāi)著車,使用 Google 地圖導(dǎo)航,在 Yelp 上查找吃飯的地方或在 TripAdvisor 上查找休息的地方。在你的頭頂上方有自動(dòng)駕駛的飛機(jī)飛過(guò),飛機(jī)里有 Wifi 和娛樂(lè)系統(tǒng),可以與其他飛機(jī)、交通指揮中心和飛機(jī)廠商聯(lián)系。再往上,衛(wèi)星和太空站正圍繞著地球繞圈,它們拍照、預(yù)報(bào)天氣、轉(zhuǎn)發(fā)電話信號(hào)。
軟件正在吞噬著這個(gè)世界,但這只不過(guò)是個(gè)開(kāi)始。在你意識(shí)到這一點(diǎn)之前,你可能已經(jīng)穿上了智能可穿戴設(shè)備、使用電腦來(lái)鎖門、使用機(jī)器人來(lái)送貨或清理房間、開(kāi)發(fā)自己的電子設(shè)備、有自己的制造車間、生活在虛擬現(xiàn)實(shí)里、乘坐自動(dòng)駕駛的汽車,甚至飛向太空。
矩陣無(wú)處不在
上述的這些科技都是由軟件驅(qū)動(dòng)的,我們的生活被代碼所包圍,而代碼的數(shù)量在未來(lái)只會(huì)不斷增加。
不過(guò),雖說(shuō)科技無(wú)處不在,但這并不意味著你在學(xué)校里就一定要學(xué)習(xí)這些技術(shù)。比方說(shuō),我們都需要乘坐飛機(jī),但即使是 K12 也并沒(méi)有把獲得飛行員駕照當(dāng)作課程的一部分。
相反,學(xué)會(huì)使用那些能夠幫助你理解飛行原理的工具卻是課程的一部分:
● 通過(guò)學(xué)習(xí)物理和數(shù)學(xué),你了解了重力、作用力、壓力、速度、摩擦力和浮力。
● 通過(guò)學(xué)習(xí)生物,你明白了人體在缺氧和寒冷的高空中會(huì)發(fā)生什么。
● 通過(guò)學(xué)習(xí)歷史,你知道了飛機(jī)是怎樣被發(fā)明和制造出來(lái)的,以及飛機(jī)在旅行、商務(wù)和戰(zhàn)爭(zhēng)中所扮演的角色。
中學(xué)畢業(yè)之后,你就知道飛機(jī)是什么東西,知道飛機(jī)是如何飛行的,以及如何安全地搭乘飛機(jī)。一般性的課程,如物理、數(shù)學(xué)、生物和歷史,它們教會(huì)你如何思考各個(gè)領(lǐng)域的問(wèn)題,包括飛機(jī)在內(nèi)。相反,有些課程只是教會(huì)你如何使用一種工具,比如如何駕駛某種型號(hào)的飛機(jī)。
類似的,我們應(yīng)該專注于教授計(jì)算機(jī)科學(xué),而不僅僅是編程:前者能夠教會(huì)我們一般性的思考方式,而后者只是一種特定的工具。
什么是計(jì)算機(jī)科學(xué)?
計(jì)算機(jī)科學(xué)就是研究計(jì)算:如何表示和處理信息。
● 解決問(wèn)題:你將學(xué)會(huì)各種算法策略,比如分而治之法、遞歸、探索法、貪婪搜索和隨機(jī)算法,它們可以幫你分解和解決任何一種問(wèn)題。
● 邏輯:你開(kāi)始使用更準(zhǔn)確和正式的方式進(jìn)行思考,比如抽象、布爾邏輯、數(shù)字理論和集合理論,你因此能夠以一種嚴(yán)謹(jǐn)?shù)姆绞絹?lái)解決問(wèn)題。
● 數(shù)據(jù):你接觸到信息理論,想要了解信息是什么東西,你該如何表示它們,以及如何對(duì)這個(gè)真實(shí)的世界進(jìn)行建模。
● 系統(tǒng):你該如何設(shè)計(jì)和實(shí)現(xiàn)復(fù)雜的系統(tǒng)來(lái)滿足一系列的需求?系統(tǒng)工程幾乎已經(jīng)成為各個(gè)業(yè)務(wù)領(lǐng)域的核心議題。
● 思考:了解人類思維的最好途徑就是嘗試復(fù)制它。人工智能、機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理不僅僅是計(jì)算機(jī)科學(xué)的前沿技術(shù),它們也涉及到了生物學(xué)、物理學(xué)、心理學(xué)和數(shù)學(xué)。
上述的清單并沒(méi)有提及編程或者程序,因?yàn)樗鼈冎皇怯?jì)算工具:它們都不是計(jì)算機(jī)科學(xué)。
在計(jì)算方面,我們更多地依賴另一個(gè)工具:我們的大腦!計(jì)算機(jī)科學(xué)的目的是教會(huì)我們的大腦進(jìn)行創(chuàng)新性、一般性和廣泛性的思考。隨著科技的日益滲透,新的思考方式變得和物理、數(shù)學(xué)、生物和歷史一樣重要。
也就是說(shuō),只進(jìn)行單獨(dú)的思考是不夠的:我們需要知道如何應(yīng)用我們的思考。在物理學(xué)里,我們使用天平、棱鏡和磁鐵做實(shí)驗(yàn);在生物學(xué)里,我們使用試管、植物和有蓋培養(yǎng)皿;在計(jì)算機(jī)科學(xué)里,我們學(xué)習(xí)編程。
什么是編程?
編程,或者說(shuō)寫代碼,是指你發(fā)出指令讓計(jì)算機(jī)執(zhí)行一些操作。如果你之前從來(lái)沒(méi)有寫過(guò)代碼,那么你可能習(xí)慣了使用已有的應(yīng)用程序來(lái)與計(jì)算機(jī)發(fā)生交互。實(shí)際上,這些應(yīng)用程序是由代碼組成的,這些代碼告訴計(jì)算機(jī)如何顯示應(yīng)用、在哪里存儲(chǔ)數(shù)據(jù)、從哪里獲取數(shù)據(jù),以及如何對(duì)用戶的鼠標(biāo)點(diǎn)擊做出響應(yīng)。
編程是基于上述的計(jì)算機(jī)科學(xué)原則進(jìn)行的。計(jì)算機(jī)科學(xué)的概念——邏輯、算法、數(shù)據(jù)和系統(tǒng)工程——可以用于構(gòu)建所有的事物,從 Web 瀏覽器到飛機(jī)的自動(dòng)駕駛軟件。編程涉及到數(shù)學(xué)和數(shù)據(jù)結(jié)構(gòu),同時(shí)也是一項(xiàng)具有創(chuàng)造性的活動(dòng):每敲出一行代碼,你的想法就又向現(xiàn)實(shí)邁近了一步。
將編程作為計(jì)算機(jī)科學(xué)的一部分帶來(lái)了很多好處。
● DIY:如果你會(huì)編程,你就可以自己開(kāi)發(fā)軟件。你可以從簡(jiǎn)單的開(kāi)始:寫一個(gè)腳本來(lái)重命名照片或?qū)懸粋€(gè) Excel 公式來(lái)計(jì)算稅金。然后更進(jìn)一步:搭建一個(gè)網(wǎng)站;為你的公司開(kāi)發(fā)一個(gè)移動(dòng)應(yīng)用;開(kāi)發(fā)一款可以與你的朋友們一起玩的游戲。
● 問(wèn)題診斷:在開(kāi)發(fā)了幾款應(yīng)用之后,就可以輕松地理解其他的應(yīng)用。在戰(zhàn)勝了對(duì)計(jì)算機(jī)的恐懼之后,你將成為技術(shù)大神。技術(shù)遍布我們的生活,知道如何操縱它們變得與知道如何使用它們一樣重要。
● 職業(yè)生涯:學(xué)習(xí)計(jì)算機(jī)科學(xué)的目的并不是為了成為專業(yè)的程序員。我們每個(gè)人在學(xué)校里都學(xué)習(xí)數(shù)學(xué)、物理和化學(xué),但并不是每個(gè)人都成為專業(yè)的數(shù)學(xué)家、物理學(xué)家或化學(xué)家。不過(guò),如果你有這方面的熱情,你會(huì)發(fā)現(xiàn)軟件工程是一份高評(píng)價(jià)、高收入、增長(zhǎng)快速的工作。
總結(jié)
讓我們回顧一下:
● 計(jì)算機(jī)科學(xué)代表了一種新的思考方式。在一個(gè)被技術(shù)滲透的世界里,計(jì)算機(jī)科學(xué)的概念對(duì)于每一個(gè)人來(lái)說(shuō)都是非常有用的。
● 編程是學(xué)習(xí)計(jì)算機(jī)科學(xué)的一種途徑,但它本身并不具備一般性目的。
混淆了這兩者就會(huì)讓學(xué)習(xí)編程偏離正確的方向。Slate 寫過(guò)“或許不是每個(gè)人都要學(xué)習(xí)編程”的文章,Atlantic 也寫過(guò)“新聞學(xué)院沒(méi)必要要求學(xué)生記者學(xué)會(huì)編程”的文章,而 Jeff Atwood 在他的文章“請(qǐng)不要學(xué)習(xí)編程”中問(wèn)了一個(gè)問(wèn)題,這個(gè)問(wèn)題就是混淆概念的例子:
如果有一天,Michael Bloomberg 在早上醒來(lái)時(shí)發(fā)現(xiàn)自己變成了一個(gè) Java 編程高手,對(duì)于這個(gè)領(lǐng)導(dǎo)著美國(guó)最大城市的大人物來(lái)說(shuō),他的日常工作是否會(huì)如虎添翼?
當(dāng)然,這個(gè)問(wèn)題本身就是有問(wèn)題的。這要?dú)w因于人們將學(xué)習(xí)編程作為終極目標(biāo),而不是學(xué)習(xí)如何思考。即使是 Jeff Atwood 這位經(jīng)驗(yàn)豐富且倍受尊敬的程序員尚且分不清楚其中的區(qū)別,就別指望一般人能夠搞清楚問(wèn)題的實(shí)質(zhì)了。我們應(yīng)該這么問(wèn):
如果 Bloomberg 通過(guò)學(xué)習(xí)新的解決問(wèn)題策略和掌握更好的邏輯領(lǐng)悟技能來(lái)改進(jìn)他的思考方式,那么他在日常工作中是否會(huì)變得更好?
我想答案是顯而易見(jiàn)的。隨著技術(shù)越來(lái)越廣泛地滲透到我們生活的各個(gè)方面,答案會(huì)越來(lái)越明顯。這就是為什么我們要專注于教授計(jì)算機(jī)科學(xué)而不只是教授如何編程的原因。
學(xué)會(huì)思考相關(guān)文章:
5.關(guān)于學(xué)習(xí)與思考作文700字