[轉載] [強烈推薦]大牛對計算機讀研的看法

 

前言:這是一篇師兄分享的文章,一篇真正的好文章,寫得很實在也很精闢,與我昨天對於畢業設計的想法不謀而合,以至於我還沒看完就有衝動發到這裏來,希望這篇文章能哪怕被多一個人看到,同時非常感謝我的師兄,分享了這麼一篇好文章!

 

 

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


      就我自己的理解,談談我對讀研和軟件學院的看法,不妥之
處一笑了之即可。
      如果你有實際開發工作經驗,感覺自己的水平和實力進
入了一個高原期,迫切需要從理論上提高,那麼計算機學院是唯
一選擇。因爲計算機學院才能讓你在理論上更上一層樓。軟件學
院從教學計劃上就沒有把你往這方面帶。當然能不能更上一層樓
最終還是完全取決於你自己。需要特別說明的是,工作經驗並不
一定等於開發經驗,我見過很多工作2-3 年的人,但是沒有一點
開發經驗。
      你說:“他們都有很強的開發能力,只是不太喜歡讀書,也只
是希望混個學歷對今後在崗位上晉升有好處”,我可以向你保證,
你所說的人絕對不是開發能力很強的人。因爲,1)高手不可能不
喜歡讀書;2)高手不可能想去混一個學歷;3)高手不可能認爲
晉升是因爲學歷的原因。
      還需要說明的是,考計算機的人未必個個都是高手,嚴
格來說,大部分都不會編程序。也就是說,庸庸碌碌之輩仍然佔
絕大多數。研究生畢業的師兄只拿2500 元左右的比比皆是,所以
不要寄希望於拿一張研究生文憑出去賺高薪。但是,對於有實際
開發工作經驗的人,要想自己在3 年之中有一個真正的提高的話,
計算機學院提供了廣闊的平臺。就我所知,每一個月拿2 萬以上
的也有(上海育碧,圖形特效算法設計)。所以,同爲研究生畢
業,能力的差距是極大的。所以,不要去問“研究生畢業能拿多
少?”,要問“像我這種水平的人,研究生畢業能拿多少錢?”
這樣人家才能夠準確地回答你。
        所謂“有實際開發工作經驗”是指你目前已經具備下列能力:
1)你已經認爲C++和彙編語言都是很簡單的語言,並能夠自如地
運用;2)你能夠在30 分鐘之內想到正確的五子棋AI 算法設計思
路和方向;3)你完全理解STL 爲什麼這麼重要;4)你能夠獨立
地解決所有的編譯與鏈接問題,哪怕你從來沒有遇到的問題,你
也不需要詢問任何人;5)英文網站是你的首要信息來源;6)能
夠讀懂英語寫成的國際標準,比如NTFS 磁盤格式標準。7)你經
常站在集合論的角度思考算法問題;8)能夠理解一個簡單的驅動
程序,能夠理解一個簡單3D 交互程序;9)你能夠認識到線性代
數和概率論在實際編程工作中的極端重要性;10)你完全理解COM
的設計思想,尤其能夠理解COM 爲什麼要設計成這樣;11)當我
說到虛函數的重要作用時,你不會急着去找書來翻;12)你能夠
說出C++爲什麼比其他語言優秀的理由,記住這種理由應該來自
於你的開發體會,而不是因爲其他人都這麼說。此外還有很多判
斷標準,但如果你同時具備5 條以上,可以認爲你已經具備相應
的開發經驗了。
在這種狀態下讀研,你將取得讀研效益的最大值。
讀研最重要的是要明白你自己要幹什麼,不能等導師來
告訴你你應該幹什麼。研究生的優勢在於理論功底深厚,思維具
有穿透力,當然編程能力首先要過關,不要讀完研究生還不知道
MFC 程序的WinMain 函數在哪裏。所以,研究生期間,你一定要
做有理論深度的算法設計,比如大規模數據的搜索算法,性能是
首要考慮因素,不要奢望SQL 函數能夠幫你解決問題,所有的問
題你都必須自己解決,你必須解決內外存交換的性能瓶頸。再比
如極品飛車的3D 場景生成,圖形變換,碰撞檢測,物性模擬,紋
理映射,燈光模型等等,這些都是可以保證你能拿到2 萬以上月
薪的技術。如果你認爲這些東西太難,不可能做得出來的話,那
麼你就不適合讀研。真的,要是你認爲讀研之後還是要去搞一般
的程序設計,如信息管理系統之類的軟件,那麼你讀研的價值就
完全不會得到體現,因爲這些工作根本就不需要讀研。

      軟件學院宣稱培養軟件開發人才,恕我直言,我從來沒
有看見那個高手是培訓成功的。成爲軟件開發高手的路只有一條:
自學!軟件開發中需要大量的編程實踐和獨立思考,只有在此過
程中,你才能夠逐步成長起來。
軟件學院宣稱培養軟件項目經理,
這更是搞笑,在某種意義上這是欺騙行爲。學院裏面能夠培養出
軟件開發經理更是十足的謊言,軟件項目經理必須,或者說更強
調從戰爭中學會戰爭。沒有實踐經驗的項目經理就是繡花枕頭一
個。
       實話實說,軟件學院就是一個蒙錢的機構,公關工作做
得很好,善於打廣告,而且都是打着高薪的幌子,就如同外面的
什麼北大青鳥培訓班一樣。兩個字:蒙錢!四個字:還是蒙錢!
總之一句話,如果你只想成爲軟件開發高手(比如認爲
會編驅動程序或殺毒軟件就是高手的那種),建議工作,不要考
研;完全沒有工作經驗的,也不建議考研,你進來了只有瞎混一
通。如果你有上述工作經驗且想成爲高級軟件工程師(能夠獨立
理解並設計出快速傅立葉變換算法的那種軟件工程師)的話,那
麼強烈建議考研。考研讓你有3 年放鬆思考的機會,也有3 年讓
你思想和技術積累沉澱的機會。非常難得的機會。不考研的話,
這種機會就是一種奢侈,可望而不可及的那麼一種奢侈。
所以,不管你是哪一種情況,都不建議考軟件學院。除
非你是女生,把能夠成爲一個研究生當着一生最大滿足的那種女
生。
     1)關於讀書的機會成本問題。讀研的機會成本的確是很
高。任何人都可以簡單地計算出來。所以,我也不贊成所有的人
都去讀研。讀研只適合那些痛感數學在編程中的極端重要性的人。
如果對理論工具和理論思維的極端重要性沒有切膚的認識,那麼
讀研的價值幾乎爲0;讀研的好處在於:A,把你自己放在一個學
術和工程的交叉點上;B,讓你具備了進入微軟等世界頂級軟件研
發機構的可能性;記住只是可能性。但是不讀研這種可能性爲0;
C,如前所述,如果沒有讀研的機會,你也就沒有靜下心來好好鑽
研幾年理論的機會;一邊工作拿高薪,一邊深入地學習各種理論,
諸位認爲這可能嗎?我反正認爲不可能,我覺得學習鑽研理論最
需要的就是一個長期安靜獨處的環境,一邊工作一邊讀書是不可
能有這樣的環境的,你會覺得每天都在疲於奔命。而讀研正好可
以提供這樣一個環境。我同時還反對整天跟着導師的屁股後面跑,
這樣會浪費很多時間。讀計算機的研究生,主要依靠自己去查閱
最新文獻,自己去研讀文獻,和導師的口頭交流一個月一次就足
夠了,前提還需要導師的水平足夠牛。如果導師的水平不牛,這
也沒關係,不理他就是了,自己做好自己的事情即可。
      2)關於研究生教學質量問題。坦白地說,全國都是“洪桐
縣中無好人”,尤其在計算科學領域,大牛極少。那爲什麼還要去
讀研?大問哉!把讀研的收穫寄託在名校或名師的名氣上,我認
爲是註定要失敗的。讀研全靠自學,研究生之間的差距全部體現
在自學能力上面。
又有人問,既然是自學,爲什麼非要讀研?回
答是:因爲讀研就是爲你買一份保險,就是買一份你自學三年之
後不會失業的保險。這份保險主要是一種心理上的後盾,讓你在
自學過程中經得起誘惑,能夠從容鎮定地去追尋計算機理論發展
的堅實足跡,從歐拉,費馬,高斯,康託,圖靈等巨匠那裏尋找
方法論的珠寶。倘若沒有這份保證,你在家裏面自學3 個月,保
證你會被失業的壓力壓得喘不過氣來,何談安心學習?
      3)關於實戰經驗與理論學習的優劣問題。這沒有定論,
如前所述,管理信息系統,設備驅動開發,工具軟件開發,軟件
病毒剖析等等這些工作不太需要創造性,需要的是耐心和經驗,
需要的是對既有規範的準確理解,這類開發工作最適合在實戰中
提高,理論學習沒什麼作用。但是在人工智能,模式識別,圖像
壓縮,虛擬現實,巨量數據檢索,自然語言理解,計算機圖形學
等等領域,理論學習就佔據着絕對的統治地位!
這些領域的突破
對人類的生活的影響是極其巨大而深刻的。某些領域處於一個極
其快速發展的態勢之中,比如計算機圖形學,相信諸君能夠從衆
多3D 遊戲的燦爛輝煌中體認到我的這種說法。在這些領域,如果
沒有紮實的理論功底,一切都是那麼遙遠,不管你花了多少時間
在編程上面。+ Y)
      4)關於高級研發人員的知識結構問題。首先聲明,我不
是一個純粹理論激進分子,即認爲除了理論之外,一切都不重要。
我認爲,純熟的編程技能是最基本但也是最必不可少的技能。沒
有這個基礎,一切計算機理論就是空談(研究圖靈可計算性理論
的研究者除外)。有了這個基礎之後,下列理論學習方向必須重
點突破:
      1,科學哲學。這是核心中的核心!可惜國內不開這
門課。不但不開課,而且還作爲批判對象來引用,實在是遺憾至
極!這是一門教你如何“釣魚”的學科,在一切科學研究中居於最
核心的地位。它是古今科研方法和思維方法的集大成者,很難想
象一個成熟的研究者沒有一套自己的方法論體系。科學哲學最需
要的是領會與總結,它的思想與啓示會伴隨我們的一生。
      2,康託集合論,矩陣方法,離散結構,圖論方法,羣論
方法之間的緊密關係。最重要的認識這些理論對實踐的重要啓示
和方法引導。我始終認爲,如果你學了一門理論之後,卻不知道
這門理論有什麼作用,那麼你的理論就白學了,你什麼東西都沒
有撈着。所以,學習任何理論之前,先問自己:它有什麼用?在
哪裏用?如何用?帶着這些問題去學習理論,你纔會真正地學到
東西。用這三個問題去問你的理論課老師,他的回答就是判斷其
實際水平的最佳標準。
       3,思維要有極強的穿透力,學會看透文獻作者沒有寫出
來的動機。絕大部分大師都有隱瞞自己最具有方法論啓示意義的
思考環節的習慣。牛頓和華羅庚先生都有這個壞習慣。這讓大家
認爲他們是天才,因爲很多問題他想到了,我們想不到。但是爲
什麼他們能想到,我們想不到?他們是怎樣想到的?沒有人告訴
我們牛頓發現萬有引力定律時的思考過程,當然,牛頓可以慷慨
地把他的思考結果告訴我們,但是,他那可以點石成金的“金手指”
卻沒有教給我們。我們的任務就是要培養透過文章看穿作者背後
意圖和動機的能力,在這方面,臺灣的侯捷和美國的Donbox 是絕
佳典範。這兩隻老狐狸(呵呵,是愛稱)憑着其獵犬一般的嗅覺,
抽絲剝繭,一個把COM 背後的幕後設計動機揭開並暴露到了光天
化日之下,另一個把MFC 的宏觀架構做了一次完美的外科手術。
其非凡的思維穿透力令人驚歎。$ n2 Z
      4,英語。英語本身不重要,但是用英語寫成的文獻就極
其重要了。所以,專門把英語作爲一個重頭戲列出來。大家不要
相信英語無用論的鬼話。對於搞計算機的而言,英語就是你的母
語!
      5,其它的具體理論還有很多,但是都不如這三個方面重
要,因爲我覺得這三個方面是最具有根本性,全局性的能力培養
環節。需要指出的是,很多高深理論對你的工作是無意義的,當
心時間陷進去。一定要把效率最高的時間段用在最具有決定性意
義的理論學習上。
       5)關於讀研之後的出路是否光明的問題。我們應該承認,
讀研之後,你的工作機會不是變多了,而是變少了。而且越是高
手,他的工作機會和工作範圍就越少。這是因爲,越是搞前沿研
發的公司,其數量越少,在這個圈子的人也就越少。你找工作的
範圍就越小,試問:如果微軟的OS 設計專家出來找工作,能夠讓
他選擇的公司能有幾家?但是,這種公司數量的減少是以工資待
遇的急劇上升爲補償的,同時,你在工作中所受到的充分尊重也
是在一般公司中體會不到的。所以不要擔心學了高科技用不上,
呵呵,你只會越來越感覺自己學的不夠用。相信接到過獵頭公司
電話的人會體會得到。真正的高手從來就不會擔心工作的問題,
也從來不會到人才市場上去找工作。既然選擇了理論深入,那麼
就應該把眼光放得更遠。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章