我見過很多數(shù)學系的學生,認為自己編程能力不行,說自己不是編程的那塊料,每每遇到需要編程的任務,心里就犯難。即使那些稍微有點勇氣的學生,下定決心硬著頭皮上,也往往收效甚微,成長緩慢。
這不是一個正常的現(xiàn)象。因為數(shù)學系的學生,在經過了幾年的學習和訓練后,是應該具備相當程度的結構化、定量化的抽象邏輯思維能力,并且能夠借助數(shù)學的思想和方法,熟練使用數(shù)學語言來刻畫問題、構造解決方案。對于受過良好訓練的數(shù)學系學生來說,所謂編程,本質上就是把用數(shù)學語言描述的解決方案“翻譯”為程序代碼而已。數(shù)學和計算機編程本來就是天作之合,有數(shù)學背景的學生應該具備很大的優(yōu)勢和潛力來學好編程。
我一直認為,能同時掌握數(shù)學語言和計算機編程語言的人,到高校一定是科研能手,到公司一定是業(yè)務骨干。但現(xiàn)實卻是,很多大學的數(shù)學院系,仍在不斷培養(yǎng)大量害怕編程的學生。如果去問數(shù)學系的學生將來要找什么工作,很多人的第一個想法就是當一名老師。如果問關于數(shù)學研究的事情,他們非常自然地認為證明分析就是數(shù)學研究的全部內容。
數(shù)學系的畢業(yè)生有很多去了學校,或者金融、互聯(lián)網這些來錢快的行業(yè)。而在中國需要數(shù)學重點支撐的科學計算與工業(yè)軟件領域,我們會發(fā)現(xiàn)數(shù)學背景出身的人寥寥無幾。學生不愿去的直接原因,一方面是對自己編程能力和學習潛力沒有信心;另一方面對數(shù)學如何應用到科學計算和工業(yè)軟件領域也沒有什么概念,對于實際工業(yè)應用背景更是知之甚少,缺乏將數(shù)學語言自如轉換為應用領域語言的能力。
當前國產科學計算和工業(yè)軟件遠遠落后于西方發(fā)達國家,在總體上存在基礎薄弱、創(chuàng)新不足、人才短缺和應用困難等問題,被結結實實地“卡”著脖子。而要解決這一嚴峻的問題,培養(yǎng)大量既懂應用數(shù)學 、又懂計算機編程和應用物理的綜合型人才,并引導他們進入科學計算和工業(yè)軟件領域,是當下亟需做的事情。(鄂維南院士在《人工智能時代交叉科學的人才培養(yǎng)》一文中對算法時代如何培養(yǎng)人才有更深入細致的闡述)
那么,我們當前的數(shù)學教育已經做好培養(yǎng)這些綜合性人才的準備了嗎?依目前的情況來看,顯然沒有。數(shù)學系的學生,在數(shù)學、編程和數(shù)學應用之間的自我懷疑、彷徨、痛苦和掙扎,并不是一種偶然現(xiàn)象,而大學數(shù)學科研和人才培養(yǎng)體制機制的僵化就是造成這種現(xiàn)象的一個外部客觀原因。
時至今日,在很多大學的數(shù)學系中,計算機編程教學依然是以教授語法知識為主,對數(shù)學核心課程的支撐也僅僅停留在商業(yè)軟件的使用上,幾乎沒有關于編程原則、方法、技能和生產力工具的教學內容。
為什么只是教教編程語法?因為承擔編程教學的師資,大部分還是數(shù)學系出身,基本沒有受過正規(guī)的計算機編程訓練。而且目前高校的這種以“數(shù)數(shù)”為主的評價機制,讓承擔編程教學的老師即使有心,也不太可能把大量時間花在學習提高自己編程能力、搞好編程教學的事情上。在師資的引進和培養(yǎng)上,大多學校還是以“戴帽子”的人為主,至于實際需要什么樣的師資來為國家、社會培養(yǎng)更有用的人才,往往考慮的不夠深入全面。所以,從我上大學到現(xiàn)在,整整 20 年了,大部分數(shù)學系的計算機編程教育,依然沒有什么變化,而且預計在將來可見的很長一段時間內,整體上也不會有什么實質性的變化。
(原文鏈接:https://mp.weixin.qq.com/s/vB0qAz2e1QmNMKnBGitEYw)