1. 程式人生 > >談談對攻讀計算機研究生的看法之二

談談對攻讀計算機研究生的看法之二

1)關於讀書的機會成本問題。讀研的機會成本的確是很高。任何人都可以簡單地計算出來。所以,我也不贊成所有的人都去讀研。讀研只適合那些痛感數學在程式設計中的極端重要性的人。如果對理論工具和理論思維的極端重要性沒有切膚的認識,那麼讀研的價值幾乎為0;讀研的好處在於:A,把你自己放在一個學術和工程的交叉點上;B,讓你具備了進入微軟等世界頂級軟體研發機構的可能性;記住只是可能性。但是不讀研這種可能性為0;C,如前所述,如果沒有讀研的機會,你也就沒有靜下心來好好鑽研幾年理論的機會;一邊工作拿高薪,一邊深入地學習各種理論,諸位認為這可能嗎?我反正認為不可能,我覺得學習鑽研理論最需要的就是一個長期安靜獨處的環境,一邊工作一邊讀書是不可能有這樣的環境的,你會覺得每天都在疲於奔命。而讀研正好可以提供這樣一個環境。我同時還反對整天跟著導師的屁股後面跑,這樣會浪費很多時間。讀計算機
研究生,主要依靠自己去查閱最新文獻,自己去研讀文獻,和導師的口頭交流一個月一次就足夠了,前提還需要導師的水平足夠牛。如果導師的水平不牛,這也沒關係,不理他就是了,自己做好自己的事情即可。

2)關於研究生教學質量問題。坦白地說,全國都是“洪桐縣中無好人”,尤其在計算科學領域,大牛極少。那為什麼還要去讀研?大哉問!把讀研的收穫寄託在名校或名師的名我認為氣上,是註定要失敗的。讀研全靠自學,研究生之間的差距全部體現在自學能力上面。又有人問,既然是自學,為什麼非要讀研?回答是:因為讀研就是為你買一份保險,就是買一份你自學三年之後不會失業的保險。這份保險主要是一種心理上的後盾,讓你在自學過程中經得起誘惑,能夠從容鎮定地去追尋計算機理論發展的堅實足跡,從尤拉,費馬,高斯,康託,圖靈等巨匠那裡尋找方法論的珠寶。倘若沒有這份保證,你在家裡面自學3個月,保證你會被失業的壓力壓得喘不過氣來,何談安心學習?

3)關於實戰經驗
與理論學習的優劣問題。這沒有定論,如前所述,管理資訊系統,裝置驅動開發,工具軟體開發,軟體病毒剖析等等這些工作不太需要創造性,需要的是耐心和經驗,需要的是對既有規範的準確理解,這類開發工作最適合在實戰中提高,理論學習沒什麼作用。但是在人工智慧,模式識別,影象壓縮,虛擬現實,巨量資料檢索,自然語言理解,計算機圖形學等等領域,理論學習就佔據著絕對的統治地位!這些領域的突破對人類的生活的影響是極其巨大而深刻的。某些領域處於一個極其快速發展的態勢之中,比如計算機圖形學,相信諸君能夠從眾多3D遊戲的燦爛輝煌中體認到我的這種說法。在這些領域,如果沒有紮實的理論功底,一切都是那麼遙遠,不管你花了多少時間在程式設計上面。

4)關於高階研發人員的知識結構問題。首先宣告,我不是一個純粹理論激進分子,即認為除了理論之外,一切都不重要。我認為,純熟的程式設計技能是最基本但也是最必不可少的技能。沒有這個基礎
,一切計算機理論就是空談(研究圖靈可計算性理論的研究者除外)。有了這個基礎之後,下列理論學習方向必須重點突破:

1,科學哲學。這是核心中的核心!可惜國內不開這門課。不但不開課,而且還作為批判物件來引用,實在是遺憾至極!這是一門教你如何“釣魚”的學科,在一切科學研究中居於最核心的地位。它是古今科研方法和思維方法的集大成者,很難想象一個成熟的研究者沒有一套自己的方法論體系。科學哲學最需要的是領會與總結,它的思想與啟示會伴隨我們的一生。

2,康託集合論,矩陣方法,離散結構,圖論方法,群論方法之間的緊密關係。最重要的認識這些理論對實踐的重要啟示和方法引導。我始終認為,如果你學了一門理論之後,卻不知道這門理論有什麼作用,那麼你的理論就白學了,你什麼東西都沒有撈著。所以,學習任何理論之前,先問自己:它有什麼用?在哪裡用?如何用?帶著這些問題去學習理論,你才會真正地學到東西。用這三個問題去問你的理論課老師,他的回答就是判斷其實際水平的最佳標準。

3,思維要有極強的穿透力,學會看透文獻作者沒有寫出來的動機。絕大部分大師都有隱瞞自己最具有方法論啟示意義的思考環節的習慣。牛頓和華羅庚先生都有這個壞習慣。

這讓大家認為他們是天才,因為很多問題他想到了,我們想不到。但是為什麼他們能想到,我們想不到?他們是怎樣想到的?沒有人告訴我們牛頓發現萬有引力定律時的思考過程,當然,牛頓可以慷慨地把他的思考結果告訴我們,但是,他那可以點石成金的“金手指”卻沒有教給我們。我們的任務就是要培養透過文章看穿作者背後意圖和動機的能力,在這方面,臺灣的侯捷和美國的Donbox是絕佳典範。這兩隻老狐狸(呵呵,是愛稱)憑著其獵犬一般的嗅覺,抽絲剝繭,一個把COM背後的幕後設計動機揭開並暴露到了光天化日之下,另一個把MFC的巨集觀架構做了一次完美的外科手術。其非凡的思維穿透力令人驚歎。

4,英語。英語本身不重要,但是用英語寫成的文獻就極其重要了。所以,專門把英語作為一個重頭戲列出來。大家不要相信英語無用論的鬼話。對於搞計算機的而言,英語就是你的母語!

5,其它的具體理論還有很多,但是都不如這三個方面重要,因為我覺得這三個方面是最具有根本性,全域性性的能力培養環節。需要指出的是,很多高深理論對你的工作是無意義的,當心時間陷進去。一定要把效率最高的時間段用在最具有決定性意義的理論學習上。

5)關於讀研之後的出路是否光明的問題。我們應該承認,讀研之後,你的工作機會不是變多了,而是變少了。而且越是高手,他的工作機會和工作範圍就越少。這是因為,越是搞前沿研發的公司,其數量越少,在這個圈子的人也就越少。你找工作的範圍就越小,試問:如果微軟的OS設計專家出來找工作,能夠讓他選擇的公司能有幾家?但是,這種公司數量的減少是以工資待遇的急劇上升為補償的,同時,你在工作中所受到的充分尊重也是在一般公司中體會不到的。所以不要擔心學了高科技用不上,呵呵,你只會越來越感覺自己學的不夠用。相信接到過獵頭公司電話的人會體會得到。真正的高手從來就不會擔心工作的問題,也從來不會到人才市場上去找工作。既然選擇了理論深入,那麼就應該把眼光放得更遠。