現代軟體工程 習而學的軟體工程教育
很認真的讀了鄒老師的這篇文章和茅先生的部落格
首先,我要說,我是很支援“習而學”的
實踐是檢驗真理的唯一標準
在與前大班的同學的聊天中,對比兩種軟體工程課
我們很容易得到了這樣的比較結果:我們現在的軟體工程課更有意義
我們的軟體工程課是沒有考試的,而前大班的是要考試的
以上學期的物件導向建模課為例,分數分為平時與考試兩部分,各佔50%,其中平時包括幾次小作業與一次大作業
小作業與大作業即是分別完成一個“小程式”與“小工程”,可以歸為實踐
考試則是考概念,UML,等等等等
如果要我來評價,大作業對我更有意義
我是在OO的大作業中學會Java的,這樣又引申到了“很有名”的Java課
全年級200多人,在Java課上學會Java的,我想不超過10個吧,每年每屆學生都是如此
老師在講台上空談概念,沒有課後練習,沒有實際例子,考試考什麼是介面,try...catch有什麼用
由於是開卷考試,我們都“答出”了“標準答案”,但誰也沒學會
與之對應的,7班的一些同學可能聽過劉禹老師的C++課
劉禹老師的C++是這樣講的:
沒有PPT,開啟電腦,開啟投影,開啟VC6.0,大家一起跟著做
輸入一段代碼,問大家覺得會出什麼樣的結果
按照我們的學習經驗,這代碼肯定是有問題的,比如編譯錯、結果錯、各種錯,然後再講解
這樣下來,每個同學對這個“知識點”的印象都非常深刻
但是
方法上面說到的只是實踐對學習是很有必要的
也就是說,習而學是很好的學習方法
這不必意味著學而習就不是好的學習方法
現在有著這樣一種說法:說大學學數學,研究生再學專業
也就是說,我們是以理論為基礎,然後再加以實踐,最後在實踐的過程中迴歸理論
這與先實踐,在實踐中感受理論是有區別的
軟體工程的工作職位中,有需求分析師、有架構師、有PM、有Dev
很顯然,Dev是供大於求的,而需求分析師是最難的
茅先生的話有些道理,但我想對每一點都挑點刺
不一定非得到四年級(五年級)才算大學畢業,而是任何一個年級都可以畢業就業。
對於社會來說,可能我需要的Dev就是比架構師多,就像工頭只有一個,但工人有很多
這樣的大學模式可能符合社會規律,但對個體本身而言,如果你只是當一個技師,而且只學過怎麼當技師,那他永遠就只能當技師
任何一個年級都可以招收新生。
我可以不上一年級就上二年級嗎?如何考量是否有上二年級的水平呢?
學習不僅僅是知識的簡單積累,而是一個系統的過程化行為,連續上一、二年級,與上一年級、上二年級肯定是有區別的
新體制下,大的工廠、施工現場都可以開辦正式大學。
理論很美好,現實很殘酷。如果他們開辦的不是“大學”,而是“培訓班”,我想可能更準確一些吧
現在還有種說法,說公司願意找一個學其它專業,比如自動化、電子的,而不願意找學電腦的編程
他們認為編程這個隨便學學大家都能編,但其它專業的人有一些電腦專業不可能有的才能
那麼,對於電腦專業的學生來說,重要的就是be professional
如果以實踐為基礎來學習,但我們與其它專業對著本書自學C語言的有什麼區別呢?
我們正因為是從理論出發的,瞭解的不僅僅是表層的知識,還瞭解底層的的知識,才能說明我們是專業的
綜上,理論是基礎,我認為只有在理論上才能加以實踐
特別是在大學這個學習的時期
還是應該打好基礎,從理論出發,再輔以實踐
學習學習,學在前,習在後
先學,再習,有新的收穫,再學,再習
才能獲得最好的學習成果