關於習而學的軟體工程教育

來源:互聯網
上載者:User

鄒欣老師的部落格在此:http://www.cnblogs.com/xinz/archive/2012/01/08/2316717.html

我不是很同意鄒欣老師的觀點。對於一個大學生,思想遠比實踐經驗要重要。子曾經曰過,世界上最簡單的事情就是學習,因為學習是機械的:我不停的碼代碼,打字一定會快,對文法一定會更加熟悉;我不停的看技術方面的資料,我一定會對技術更加瞭解;等等。同時,世界上最難的事情便是思想境界,這不是機械性的練習就可以練成的。

在我的一篇部落格(http://www.wanganran.com/blog/2012/04/%E7%89%87%E8%AF%AD.html )裡有這樣一則故事,其實是我從另外一篇cnblogs裡面的文章裡看到的:

很多年前,我還年少的時候,喜歡下象棋,在學校裡基本上我能下贏的,我總能下贏,我下不贏的,總也下不贏。不得其解,也慢慢懶得操練了。

後來有次學校搞業餘活動,有個老師是省象棋協會的,組織了一節棋課。我去晚了,只聽了半節。大致意思是講,下棋要講全域觀,要有戰略,例如中局五種策略,中局成殺、不成殺則優、不佔優佔先、不佔先則多子、不多子則求和。還有什麼炮破士、馬破相、殘局炮歸家等等。卻沒有講如何下棋,課堂上也沒有擺個象棋,或是什麼棋譜。

我並沒有把這些當回事兒,之後也很少下棋。

又過多年,畢業後同學聚一起,閑來無事,與一個同學下了兩盤。剛開始,他問我這兩年有沒有下棋,我說沒有。他調侃我,“那你以前下不贏我,今天你也難贏了”。我也笑著認同,反正只是玩玩,何必認真。

可是一開局,他就傻眼了,一直處在下風,且每局必輸。他很吃驚,我也很吃驚。之後我認真思考了這件事,覺得是那節棋課影響了我,人的思考能力、計算能力都差不多,而思維方式不同,結果也會有很大不同。他看到的是“棋”,我看到的是“局”。決定勝敗的不是棋藝。

又過了幾年,我已經不再年少,但還算年輕吧。有一次找一個朋友玩,正好他的一個朋友也在,吃完飯沒事兒做,恰巧有副象棋,就與他的朋友下了幾局。他們都比我年齡大,已經三十多歲了。不過我也沒有放在眼裡,自以為水平相當可以,三局我兩勝,頗為自得。

等他走後,我朋友問我:“他水平怎麼樣呀?”我帶著些“謙虛”,洋洋自得:“他水平挺可以的,我差點就輸了,還好我三局兩勝,略勝那麼一點點。”

我朋友聽完哈哈大笑:“你知道他是幹嗎的嗎?他是賣保險的。賣保險的嗎,任何人都可能是他的潛在客戶,他自然不會去贏你,不光讓你贏,還要讓你贏得有面子,這才是高手。他原來是在象棋協會的,論象棋,那叫牛×死了。”

我聽完之後,慚愧至極。我關注的是“棋局”,人家所關注的,則超脫棋局之外。眼界不一樣,看到的也不一樣,操控點也不一樣,輸贏已經不重要,重要的是輸與贏,哪個更有利於自己,然後才是“如何去輸”與“如何去贏”。棋局只是一個棋子。決定成敗的不是棋藝。

雖然是一則和軟體工程不太相關的故事,但是也能很清楚的反映一點:決定一個人的,不只是他的天賦、努力、運氣,更是他的思維方式,他的思想層次。

在電腦方面也是一樣。我算是一個草根程式員:從初中開始就開始從vb、c#語言開始自學編程,到高一的時候已經可以編寫一些小程式了,當時覺得自己很了不起。這算是“習而學”中的先練習。

但是,只有當我通過高中的資訊學奧賽系統的學習了關於電腦啟動並執行一些基本原理,我才發現我之前那些所謂練習,使用了幾乎完全違背與電腦啟動並執行方法。雖然介面比較美觀,啟動並執行也還算順利,但是效率、代碼風格都差的不行。

如果在大學階段進行“習而學”的方法,那麼大學就失去了它的作用——傳遞思想。如C++、組合語言、Web前端、移動開發等課程,完全是可以機械性的學習並且對其他科目沒有影響的,不應該安排在大學。相反,關於計算本質的課程需要加上。MIT曾經將Scheme作為電腦系學生的第一門電腦語言,將《電腦程式的構造和解釋》作為教科書,現在好像與時俱進變成Python了,我認為值得借鑒。於此同時,電腦系同軟體工程專業還不同。軟體工程就是專門為工業界而準備的,但是電腦科學與技術還有科學在裡面。所以,數學分析、機率論之類的課程還是有必要必修的,在科研領域它們還是十分重要的。

當然,現如今中國的大學課程亟需改善,尤其是北航。有很多的機械性的課程,也有很多與專業無關、可能一輩子都不會被用到的必修課。在大一大二兩年之中,在這樣花樣年華裡,我們卻要寫物理實驗報告,要背語文課文,要背航空航天概論,這無疑是一種浪費時間(也許它們有用,但是它們不應該在大學的必修課裡)。在大一的時候,我們有上過電腦概論課,這門課講得非常好,我認為是十分有必要的,而且關鍵是這門課不用考試,只用交一篇文章就可以。

這就牽扯到另外一個問題了,那就是大學的績點政策。為什麼我們覺得初中、高中是那樣的美好?雖然大學讓我們更自由,但是又有一股強烈的力量在牽扯著我們,那就是績點。如果初中、高中是所謂的應試教育,大學就更加是應試教育——只有拼績點,才能有未來。這也就告訴我們,只有死讀書、背書,才能有未來。雖然有大作業等開放性的考試,但是這畢竟是少數。這也就讓“習而學”的方式更加行不通——怎樣考核?根據代碼量?根據使用者數量?不靠譜吧,到時候還是得通過考試,於是還是得“學而習”。

總而言之,首先,我認為大學應該起到它應有的作用,而不只是一個技術學校而已;其次,大學也不應該是又一個高中或者更甚於高中的應試教育家的天堂,而應該是一片自由的、開放的孕育思想的搖籃。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.