「
簡單低階」的微軟技術與研究生的貶值
金旭亮我們學校計算機技術學院給研究生們開設了一門課——《物件導向方法與技術》,這學期由我來講授。於是我就在部落格上發了乙個貼子「《物件導向方法與技術》課歡迎業界朋友參與交流
》」(詳見:
),介紹了課程的三個組成部分:oop
(以.net 3.5
為例進行剖析)-->uml 2.0-->
ooad。
原貼中有乙個名為river80
的網友發言:
這些東西講給研究生聽,看來研究生真的貶值了.
我估計river80
發這個貼子可能包含以下的意思: (1
)這些內容太簡單了,有必要給研究生講嗎?開設這種「小兒科」的課程:現有的中國高校研究生教育——完了! (2
)研究生居然學這種簡單的東西,其水平可想而知。總之:現有研究生的水平是「可疑」的,不貶值才怪! (3
)這種水平的課,又是由曾被微軟牛人狠批過的有著「誤人子弟」頭銜的金旭亮來講,能好到**去? (4
)……。
也許還有其他意思,畢竟我不是對方肚子裡的蛔蟲,不可能知道得一清二楚,以上僅是猜測。其實,我估計river80
網友只是看了我的貼子,一時有感而「灌水」,並未經過仔細地思索。但其中其實涉及到一些很有趣的論題,不妨說說。再次宣告:以下論點並非針對river80
本人,只是我有感而發。
軟體業在中國還很年輕,因此,這個行業中有很多年輕的朋友在其中努力工作,奉獻著自己的聰明才智。但年輕容易氣盛(特別是本身也比較能幹的),很容易出現這樣的現象:
在沒有比較充分的調查與研究的基礎上,輕易地給某個事物「貼標籤」;在給某事物下結論作總結時,要麼陽光明媚,要麼一片漆黑。
具體到本門「研究生選修課」,如果我告訴你,這門課是「計算機學院」所開,但全校各專業研究生都可以「選」的,你還會說——研究生貶值嗎?你不知道這個實際情況吧?
的確,擴招所帶來的弊端非常明顯,尤其是教育部今年為了應付大學生就業壓力,要求擴大研究生招生規模,甚至放寬一些特定專業(比如mba
)研究生的入學要求,遭到了社會各屆的強烈質疑,作為一名大學基層教師,我也是對此持不贊成的意見。有關擴招所帶來的教學質量下滑,無需多說。但事情絕不是只有一面的。
我在高校呆了10
年了,還是較有把握地說,哪怕本科生研究生再擴招,由於學生基數大,其中優秀的學生並不比擴招前少,甚至更多。而且由於擴招,相對降低了對分數的要求,也使一部分不太善於考試的人才得以有機會深造。另外,讓學生在大學裡學習幾年,相比將他們全部推入社會去「自生自滅」,去「自學成材」,還是有助於提公升國民總體素質的。
教育部那批被人痛罵的「官僚」,其實都是聰明人,制訂出這項政策,肯定是各方利益和各種現實因素進行博弈的結果,當然,其屁股未必都坐在百姓一邊。
另外,有些學生本身就是非常優秀,把他放到哪,他都能靠自身的努力而「自學成材」,這些自身素質較高的學生(尤其是年歲較長的研究生),是不太容易受到外界環境的影響的。
現在回到具體的技術領域。
我本人愚笨,學計算機學了十多年,弄.net
也有6年了,還是「水平****」的。然而,我的確發現,許多說微軟技術「簡單」、「低階」,對此不屑一顧的人,其實對微軟技術都是淺嘗輒止。
微軟技術的特點是:起始門檻低,但易學難精。我們學校微軟俱樂部的學生曾打出乙個橫幅——十天成為.net
程式設計師,給我嚴肅地批評過。「十天成為.net
程式設計師」,那業界那麼多在微軟平台一開發就是幾年十幾年的工程師們,是不是都該去跳樓了?!他們太笨了嘛!
就拿好象很簡單的物件導向程式設計最基礎概念:比如類的「靜態方法」與「例項方法」,類的「例項字段」和「靜態字段」,用起來「好簡單啊!」。那我問幾個問題:.net
程式執行的物件模型是怎樣的,它怎樣裝載程式集,物件又是如何建立的?clr
是如何管理物件的「例項字段」和「靜態字段」的?類的「靜態方法」與「例項方法」都是「方法」,那麼,他們編譯後在記憶體中是放在一起嗎?clr
又是通過什麼機制來區分它們的?應用程式的多型特性——同一句**在不同的上下文中會有不同的執行結果,.net
是怎麼做到的?是在執行時實現的還是在編譯時實現的?.net怎麼處理混合語言呼叫問題,你怎麼能讓語法完全不同的c++去繼承乙個vb編寫的類?……
再拿廣泛應用的asp.net
技術來說,以下幾個問題好多人都回答不出:
管線是如何處理http
請求的?httpmodule
和httphandler
在此管線中是什麼角色?微軟為什麼在設計asp.net
框架時要做這麼複雜的設計,是不是「吃多了」?asp.net
架構設計師的目的是什麼?
還有.net 3.0、3.5
中引入的多項新技術,以wpf為例
,其中乙個引人注目的特性是依賴屬性與路由事件。用一用,好神奇啊,以前困擾程式設計師多時的「圖形重繪」和「動畫緩衝」問題好象不存在了耶!比如你給window
的background
賦乙個畫筆,窗體怎麼就會自動應用新的畫筆重繪自己,它怎麼知道該繪製哪塊螢幕區域,為何重繪過程沒有閃爍?為何有些依賴屬性可以被子元素自動地繼承,而另外有些依賴屬性一但改變所有的相關元素都會得到通知?為何乙個在底層控制項上觸發的事件可以在高層被處理?……。如果僅僅在wpf
中只會用xaml
設計介面,啊,好簡單啊!但一切真的是那麼簡單嗎?!
還有更多的例子,我就不舉了。
微軟技術好簡單啊!那如此簡單的東西,為何你會為除錯乙個程式而加班到深夜最後才發現原來是自己並未真正理解了某個技術點?為何你會為乙個bug搞不掂而火冒三丈?是應該怪「微軟封裝得太多了」,還是應該怪自己太「淺嘗輒止」了呢?
有些事情看別人做起來好象很簡單,還會「奇怪」他為何不做得更好些。自己去做一做就會明白了,事情沒那麼簡單的,有許多因素,不實地去做一下,你是無法想象的。相反,坐而論道,淺嘗輒止是最容易的。
到此,這篇短文似乎可以結尾了,又似乎不能結尾,也很難結尾。我再狗尾續貂幾句吧:
微軟技術是不是「簡單低階」,要看你鑽研與應用到哪個層次,而「研究生是否貶值」,其實與個人無關。問題的關鍵是:自己貶值了嗎?別因偷懶而被時代所淘汰喲!
金旭亮(2009.3.8於北理工)
「簡單低階」的微軟技術與研究生的貶值
簡單低階 的微軟技術與研究生的貶值 金旭亮 我們學校計算機技術學院給研究生們開設了一門課 物件導向方法與技術 這學期由我來講授。於是我就在部落格上發了乙個貼子 物件導向方法與技術 課歡迎業界朋友參與交流 詳見 介紹了課程的三個組成部分 oop 以 net 3.5 為例進行剖析 uml 2.0 ooa...
「簡單低階」的微軟技術與研究生的貶值
簡單低階 的微軟技術與研究生的貶值 金旭亮我們學校計算機技術學院給研究生們開設了一門課 物件導向方法與技術 這學期由我來講授。於是我就在部落格上發了乙個貼子 物件導向方法與技術 課歡迎業界朋友參與交流 詳見 介紹了課程的三個組成部分 oop 以.net 3.5 為例進行剖析 uml 2.0 ooad...
研究生的苦逼與安逸
明天打算回家,在回家之前對我已經過去的生活做個總結。12年考入本985高校的時候,是高調的,自豪的,對這即將的三年學習時間充滿了憧憬和嚮往,qq空間裡面轉的全是怎樣有效地度過研究生,如何寫高質量 之類的文章,每天的說說動態也是矯情造作的,想引人注目的,自以為很有個性的。第一學期屬於適應期,經歷9個月...