軟體工程師需要數學的真正理由

2021-08-21 22:43:38 字數 1789 閱讀 1999

軟體工程師需要數學的真正理由

翻譯:g9yuayon

本文譯自 the communication of acm 第44卷,2023年第10期

軟體工程師們常常宣稱他們從來不用在大學裡學到的任何數學知識. 說到這個,他們還會說連大學裡學到的計算機專業知識都用不了多少。我搞了三十年數學,就讓別人來談計算機專業方面的情況,不過就數學的使用情況而言,我不得不坦白承認那些軟體工程師太對了:他們就是用不著大學裡學的數學。

但他們也太錯了。他們每天都運用著大學裡學到的數學。

其實這沒什麼矛盾。關鍵在於「運用」這詞何解。一種理解是軟體工程師們曾在數學課上常碰到的。比如,在高數課上學了分步積分法後,學生們就用該方法解相應的練習題和考試題。這種所謂的「運用」最為常見,而且也是當軟體工程師說他們從不用大學數學時所暗指的。不過,這種理解建立在把人的學習方式看作「填鴨」的觀點上。

根據這種「填鴨」觀,教育主要就是把知識灌到我們頭腦中,而運用我們所學主要就是把灌進去的東西再倒出來。我敢說,這種教育觀高度簡化而且錯了。不過,現行教育制度(我也置身其中)下,人們開課,然後設定三小時反芻般的筆試(譯註:三小時的筆試是北美很多大學期末考試的標準)來檢驗課的效果。正是這種方式,一次又一次滋養了教育是填鴨的觀念。

相比之下,數十年來所有關於大腦工作方式及學習方法的大量研究都表明,掌握知識和像演算法般的系統化做事步驟不過是人們學習過程的表象(我們知道那些是表象,因為我們一般都會在期末考試後飛快地忘記課堂上學到的東西)。教育的真正價值不在於此。我們的大腦或許是世上適應性系統的最佳範例。當我們讓大腦經受長期的教育,大腦就會發生永久性的改變。從身體角度講,大腦中某部分傳導神經纖維鏈進一步生長並得到加強。從功用和經驗的角度講,我們獲取了新的知識和技能。學習過程重複得越多,上述的改變就越強越久。

重複學習在數學裡展現的效果之強烈,其他學科無出其右。形式化數學大概有五千多歲。2023年在漫漫進化史中不過眨眼工夫,而且肯定只夠我們的大腦做出最細微的改變。因此,雖然閃族人在2023年到2023年前提出抽象的數,人類的數學思維當在更久更久前便已發軔。我們在最初的自然選擇中發展了思考大自然和社會的能力,但人腦中應數學思考而生的新改變將綜合我們的能力,使我們不光能思考具象的世界,還能推演我們頭腦所創照的純粹抽象世界。

要人腦處理新層次上的抽象極度困難。這就是為什麼直到18世紀數學家們才能自如地處理零和負數,也是為什麼直到今天許多人都不能接受負一的平房根是真正的數。

但是,軟體工程全跟抽象相關,它的每乙個概念,觀點,以及方法,都是完全抽象的。當然,很多軟體工程師都不這樣覺得,但這正說明了我的觀點。他們從數學課上得到的最大收益便是曾對純粹抽象的物體和結構進行過嚴格推演。而且,數學課是唯一給他們這種體驗的科目。這種體驗不在於那些課堂上教的重要東西,而在於其本身是數學化的。日常生活中,熟悉滋生出輕慢,而在學習如何在高度抽象的領域工作時,熟悉培養出的是種感覺,唔,熟悉的感覺 -- 就是說,曾經讓人感到抽象的東西開始變得具體,因而變得比較容易對付。

儘管學習數學帶給計算機專業人士的回報大過常人,但現今社會裡每個人都能由此受益。例如,美國教育部2023年一項研究(the reilly report)表明,在高中修過嚴格的代數或幾何課的學生在公升學方面表現更加優秀,而且公升學後的表現也更好,不管他們在大學裡學的是什麼。換句話說,看來完成一門嚴格的數學課 -- 學生們甚至不用學得多好 -- 是讓人們提高自己思維能力,變得聰穎的絕佳方法。這種思維能力能讓人們在各方面受益。

如我在這篇短文中所指,學數學對軟體工程師們的這種好處比對其他人大得多。其實,這是基本的先決條件。雖然並沒在工程系學生的必修數學課的要求裡被正式提到,但它的確是數學為什麼有用的真正理由。

keith devlin ([email protected]) 是史丹福大學語言及資訊研究中心的執行主任

軟體工程師招聘需求

我們又很多軟體工程師需求,有意向的和我聯絡 c 高階工程師 任職要求 1.大學本科及以上學歷,計算機相關專業畢業 2.良好的英語閱讀能力 學習能力 溝通能力及團隊協作精神,能夠承受一定工作壓力 3.紮實的 c 程式設計功底,精通 win32 mfc 和多執行緒等技術 4.五年以上 visual c ...

軟體工程師應該寫作

在小學,有一些 數學天才 和 語文天才 你們由於在其他孩子印象中各自的強項而被貼上標籤。我曾是乙個所謂的 數學天才 所以我主修電腦科學並嚮往去做乙個軟體工程師。雖然一直以來 數學天才 或 語文天才 這樣的稱號從來沒有真正的磨去,但只要可以把任何事做強。如今我見過的工程師畏懼寫東西,我見過的作家也同樣...

小白軟體工程師歷程

將自己作為乙個無知的海綿,去吸收更多的知識來充實自我。不知不覺,已經畢業三年,工作三年了。趁著難得空閒時間,對自己的工作好好進行下梳理。大學畢業,進入一家相對規模不錯的公司入職,進入到乙個雲集了各種大神的部門。還記得剛剛到達時候的各種恐慌,因為周圍的同事太強悍,每個人都是那麼的優秀,那麼的獨擋一面。...