軟件工程師們常常宣稱他們從來不用在大學里學到的任何數學知識。 說到這個,他們還會說連大學里學到的計算機專業知識都用不了多少。我搞了三十年數學,就讓別人來談計算機專業方面的情況,不過就數學的使用情況而言,我不得不坦白承認那些軟件工程師太對了:他們就是用不著大學里學的數學。
但他們也太錯了。他們每天都運用著大學里學到的數學。
其實這沒什么矛盾。關鍵在于“運用”這詞何解。一種理解是軟件工程師們曾在數學課上常碰到的。比如,在高數課上學了分步積分法后,學生們就用該方法解相應的練習題和考試題。這種所謂的“運用”最為常見,而且也是當軟件工程師說他們從不用大學數學時所暗指的。不過,這種理解建立在把人的學習方式看作“填鴨”的觀點上。
根據這種“填鴨”觀,教育主要就是把知識灌到我們頭腦中,而運用我們所學主要就是把灌進去的東西再倒出來。我敢說,這種教育觀高度簡化而且錯了。不過,現行教育制度(我也置身其中)下,人們開課,然后設置三小時反芻般的筆試(譯注:三小時的筆試是北美很多大學期末考試的標準)來檢驗課的效果。正是這種方式,一次又一次滋養了教育是填鴨的觀念。
相比之下,數十年來所有關于大腦工作方式及學習方法的大量研究都表明,掌握知識和像算法般的系統化做事步驟不過是人們學習過程的表象(我們知道那些是表象,因為我們一般都會在期末考試后飛快地忘記課堂上學到的東西)。教育的真正價值不在于此。我們的大腦或許是世上適應性系統的最佳范例。當我們讓大腦經受長期的教育,大腦就會發生永久性的改變。從身體角度講,大腦中某部分傳導神經纖維鏈進一步生長并得到加強。從功用和經驗的角度講,我們獲取了新的知識和技能。學習過程重復得越多,上述的改變就越強越久。
重復學習在數學里展現的效果之強烈,其他學科無出其右。形式化數學大概有五千多歲。5000年在漫漫進化史中不過眨眼工夫,而且肯定只夠我們的大腦做出最細微的改變。因此,雖然閃族人在5000年到8000年前提出抽象的數,人類的數學思維當在更久更久前便已發軔。我們在最初的自然選擇中發展了思考大自然和社會的能力,但人腦中應數學思考而生的新改變將綜合我們的能力,使我們不光能思考具象的世界,還能推演我們頭腦所創照的純粹抽象世界。
要人腦處理新層次上的抽象極度困難。這就是為什么直到18世紀數學家們才能自如地處理零和負數,也是為什么直到今天許多人都不能接受負一的平房根是真正的數。
但是,軟件工程全跟抽象相關,它的每一個概念,觀點,以及方法,都是完全抽象的。當然,很多軟件工程師都不這樣覺得,但這正說明了我的觀點。他們從數學課上得到的最大收益便是曾對純粹抽象的物體和結構進行過嚴格推演。而且,數學課是唯一給他們這種體驗的科目。這種體驗不在于那些課堂上教的重要東西,而在于其本身是數學化的。日常生活中,熟悉滋生出輕慢,而在學習如何在高度抽象的領域工作時,熟悉培養出的是種感覺,唔,熟悉的感覺 -- 就是說,曾經讓人感到抽象的東西開始變得具體,因而變得比較容易對付。
盡管學習數學帶給計算機專業人士的回報大過常人,但現今社會里每個人都能由此受益。例如,美國教育部1997年一項研究(The Reilly Report)表明,在高中修過嚴格的代數或幾何課的學生在升學方面表現更加優秀,而且升學后的表現也更好,不管他們在大學里學的是什么。換句話說,看來完成一門嚴格的數學課 -- 學生們甚至不用學得多好 -- 是讓人們提高自己思維能力,變得聰穎的絕佳方法。這種思維能力能讓人們在各方面受益。
(我在自己的書,《數學基因:數學思考如何演進及數為什么像閑言碎語》(Basic Books, 2000)中,我更加仔細地分析了本文的觀點,并確定了哪些生存優勢致使人類有能力進行數學思考。)
如我在這篇短文中所指,學數學對軟件工程師們的這種好處比對其他人大得多。其實,這是基本的先決條件。雖然并沒在工程系學生的必修數學課的要求里被正式提到,但它的確是數學為什么有用的真正理由。
Keith Devlin ([email protected]) 是斯坦福大學語言及信息研究中心的執行主任
====
總結一下:
軟件工程師不需要的是:死板的大學數學課中的內容,比如積分。這是“填鴨”。
軟甲工程師需要的是:從數學課中重復學習而得到的抽象能力,比如對純粹抽象的物體和結構進行嚴格推演,使得對于抽象的東西開始感到具體而容易對付。
這樣說來,SICP一書真的是值得好好讀一讀的。
-
軟件工程師
+關注
關注
8文章
243瀏覽量
21334
發布評論請先 登錄


如何成為一名嵌入式軟件工程師?



嵌入式軟件工程師就業好不好?
如何成為嵌入式開發工程師?

特斯拉招募軟件工程師強化無人駕駛與機器人遠程操作

FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區別?

評論