關於“學而習”的大討論現代軟體工程 習而學的軟體工程教育

來源:互聯網
上載者:User

      鄒欣老師的Blog在這裡:現代軟體工程 習而學的軟體工程教育

      然後也讀了很多同學的觀點。

      想起來高中時候,老師教我,一個好的議論文,必須在開頭亮出自己的觀點。(好吧那是為了應付高考。我扯遠了] 。不過,我的觀點是,不能完全贊同鄒老師和部分同學的觀點。對於鄒老師過分強調“”的比例,我有不同的看法

 

      鄒老師說的“習而學”對不對?我說對,很好,很必要,特別是對於工程人員來說,必須要“習”才能得到一個真實的能力!那麼我為什麼要駁斥鄒老師的這個觀點。是因為我覺得人世間為什麼這麼多爭論,根本的問題是大家並沒有站在同一個背景上,或者說大家辯論的條件其實是不一樣的。所以才會導致了很多很多爭論。

      一個小例子:

 

      有一段時間,我十分愛玩一個叫“實況足球”的體育類遊戲。在場上控制[範.巴斯滕]風馳電掣十分High,一場個人獨進10+個球。但是一遇到高難度的AI,或者跟同學踢對戰的時候就顯得十分捉急。我就很不服氣啊,然後一直在踢,在苦練,但是一直見不得提高,自己總是用一些最基本的動作和最簡單的戰術,自己使用經典荷蘭隊甚至被中國隊血虐[我不是黑中國啊]。然後同學看不下去了,才說,你應該去看一下教程,去網上找找教學視頻,去找那些打得好的人問一問,果然,不久之後我就有一個質的飛躍。

      你一定以為我寫這個例子是為了說明“”比“”更重要,其實不是。我發現,如果沒有之前我自己瞎踢亂踢的那一段時間,那麼我根本不知道我自己的弱點在哪裡,我跟不知道為什麼這樣的戰術在實際中行不通,我不知道什麼動作是進階動作,我不知道我將要向高手們“”什麼東西?而且,我可以斷定,如果我每天把時間都花在打遊戲上(10小時),一周七天,我五天都在打遊戲,那麼就算我沒有“”,我總也會摸索出一套方法來,只是比較慢而已了。這樣看來,貌似“”才是必須的啊?!別急,我們在看一個例子。

      另一個例子:

      很多人在Blog中都提到了我們大一的時候一門選修課——Java。(實質上應該叫“Java語言程式設計”),但是課上根本沒有,對就是根本沒有教會我們如何使用Java語言解決工程上任何實際的例子。甚至Console 輸出 Hello World!\n 都是自己查的Baidu。然後考核方式是“開卷答題”+“2000行Java大作業”。學了半天什麼什麼曆史,什麼什麼物件導向的啥啥啥,能寫程式嗎?開卷考試抄就行了。大家都是80、90分。大作業怎麼辦?誰都不會寫,寫出來都是面向過程風格的C-style的代碼。能完成一個工程嗎?肯定不能。那怎麼辦?只有拿別人的代碼抄抄改改。[對老師我不評價,學不會是我自己在下面練的太少,老師不布置不講,不等於自己不去學習是吧。不過對於這個老師,當你們在學院裡提到這個人,然後看看學長,輔導員,老師的表情,你就懂了。有人問,為什麼他還能留在這,這種問題誰知道,我不知道。]

      好吧,這個例子,更一步加深了鄒老師的“習而學”的觀點。學習程式語言設計,你不上機,永遠也學不會。這個是毋庸置疑的!“習”的重要是顯而易見的。“學”的死板和低效,每個人也都有深刻的體會。說了這麼半天,我不是搬起石頭砸自己的腳麼,我自己的論點呢?

 

      好了,開始我的觀點了。記得我一開頭說的嗎?爭論的根本的是大家並沒有站在同一個背景上,或者大家爭論的都不是一個東西!

      在建國初期,一直到當代的很長一段時間裡,我國與先進的資本主義國家有著很大的差距,國家建設需要十分多的工程師,所以,包括院校大調整之類的,出現一批又一批工科見長的專業院校。也包括我們北航。這個確實給當時國家輸送了一大批優秀的建設人才。才是,慢慢的,國家有錢了,工程建設都上去了,才發現這個措施的漏洞有多那麼大!!那就是我們的工程實踐確實上去了,但是基礎科研領域十分薄弱。就拿北航來說,最近幾年也提出要建設綜合性大學,增加理科實驗班什麼什麼的。大家都明白,理論能力上不去,那麼實踐中就會遇到瓶頸。

      茅先生的Blog中提到的觀點,鄒欣老師提到的觀點,以及鄒欣老師的本科生課程計劃,無疑是十分好。但是他們都是在工程實踐領域得出的結論。我們每個人都認同,在工程實踐領域,確實需要大量的“習”,而且在“習”中擷取能力,鍛煉能力,比“學”要來的實際,要來的高效,要來的更紮實。但是大家有沒有意識到,鄒老師的Blog中一上來說就自己是工程類學科。是軟體工程!那好,暫時不提那些純理科的科目。就說說我的專業,全名叫——電腦科學與技術,一級學科(學科代碼:0812),我的專業方向是——電腦軟體與理論,二級學科(081202)。那我就問了,是不是,我們大學生來到了大學裡,就一定要去進行工程領域的實踐,是不是去工程領域實踐,就一定要對軟體代碼的編寫十分熟練?我說不是。鄒老師作為企業人士,明白工程上需要什麼樣的人才,針對這樣的人才學校應該怎樣培養,確實不錯。一點都沒錯。大學的很大一部分使命確實為社會輸送合格人才。但是,並不是所有的人都會去做Dev,所以,我覺得鄒老師的計劃,只能適合軟體工程的學生。(以後如果有軟體工程這個一級學科的話)。

      以我自己為例子。我現在跟隨老師,做一個關於社區演化的相關研究。就是通過對現在各種流行的線上網路社區的變化進行分析。這學期,為了做這個的相關研究,我一直在追蹤Stanford、CMU等等幾個牛逼的組的研究,每周給老師講一次PPT,彙報一次論文閱讀的情況,然後也在不停的完善綜述,自己讀的論文應該快有40多篇了吧。我覺得,這就是一直在學,而且,包括在讀論文的同時,我也意識到大一的時候學習的《數學分析》這麼課的重大意義。但是這裡面好像都沒有設計到任何工程上的事情。也證明了之前學習包括《離散數學》圖論,包括網路科學導論之類的課程的重要性。我想,這些東西,每天不停在寫代碼。不停做工程上的實踐,可能會一點協助也沒有。特別是,如果大一大二像鄒老師安排的課程那樣,那麼我可能完全沒有興趣,或者能力,或者時間去完成這樣一個非工程實踐類的理論研究。所以我覺得這種東西為什麼要爭論呢?工程上確實應該這樣做,沒說不對,但不是所有都適用啊。就像一個同學說的,如果我們只需要專業技能,那麼大家都去上技校了,何必辛辛苦苦來上大學。

 

      學的東西或許在短時間內,看不出成效,就像基礎研究領域可能100年都不會有什麼改變世界的突破,但是學的東西,在你心中留下的東西,一定是對你的未來十分必要的。我覺得你“習”的量決定了你當前這個層次的高度和能力,但是你“學”的量決定了你到底能到什麼層次!

      最後,我想說,“學”和“習”其實真的並不矛盾。特別是那我第一個小例子為例,只有大量的“習”,才明白學的意義和方向。但是只有“學”才能讓你的習有一個大突破。到達一個新的層次。所以,在本科生教學中,特別是那種,既不是“軟體工程”也不是“理論物理”這種課程上,學和習都不能偏頗。在具體教學中,老師可以通過習告訴大家為什麼要學,然後通過學,來讓大家明白習得邏輯和本質。知其然,知其所以然。學習結合,才能真正學好——電腦科學和理論。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.