電子科技大學BBS,轉帖:
作者:eqingsheng 送出日期:2004-12-19 17:11:00
回複CSDN和KAOYAN諸位網友的幾點看法,(為避免吵架,鄭重聲明,本人不是高手,
隻是有感而發的一點個人陋見,歡迎指正,事先感謝):
就我自己的了解,談談我對讀研和軟體學院的看法,不妥之處一笑了之即可。
如果你有實際開發工作經驗,感覺自己的水準和實力進入了一個高原期,迫切需要從理論上提高,那麼計算機學院是唯一選擇。因為計算機學院才能讓你在理論上更上一層樓。軟體學院從教學計劃上就沒有把你往這方面帶。當然能不能更上一層樓最終還是完全取決于你自己。需要特别說明的是,工作經驗并不一定等于開發經驗,我見過很多工作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遊戲的燦爛輝煌中體認到我的這種說法。在這些領域,如果沒有紮實的理論功底,一切都是那麼遙遠,不管你花了多少時間在程式設計上面。
4)關于進階研發人員的知識結構問題。首先聲明,我不是一個純粹理論激進分子,即認為除了理論之外,一切都不重要。我認為,純熟的程式設計技能是最基本但也是最必不可少的技能。沒有這個基礎,一切計算機理論就是空談(研究圖靈可計算性理論的研究者除外)。有了這個基礎之後,下列理論學習方向必須重點突破:
1,科學哲學。這是核心中的核心!可惜國内不開這門課。不但不開課,而且還作為批判對象來引用,實在是遺憾至極!這是一門教你如何“釣魚”的學科,在一切科學研究中居于最核心的地位。它是古今科研方法和思維方法的集大成者,很難想象一個成熟的研究者沒有一套自己的方法論體系。科學哲學最需要的是領會與總結,它的思想與啟示會伴随我們的一生。
2,康托集合論,矩陣方法,離散結構,圖論方法,群論方法之間的緊密關系。最重要的認識這些理論對實踐的重要啟示和方法引導。我始終認為,如果你學了一門理論之後,卻不知道這門理論有什麼作用,那麼你的理論就白學了,你什麼東西都沒有撈着。是以,學習任何理論之前,先問自己:它有什麼用?在哪裡用?如何用?帶着這些問題去學習理論,你才會真正地學到東西。用這三個問題去問你的理論課老師,他的回答就是判斷其實際水準的最佳标準。
3,思維要有極強的穿透力,學會看透文獻作者沒有寫出來的動機。絕大部分大師都有隐瞞自己最具有方法論啟示意義的思考環節的習慣。牛頓和華羅庚先生都有這個壞習慣。這讓大家認為他們是天才,因為很多問題他想到了,我們想不到。但是為什麼他們能想到,我們想不到?他們是怎樣想到的?沒有人告訴我們牛頓發現萬有引力定律時的思考過程,當然,牛頓可以慷慨地把他的思考結果告訴我們,但是,他那可以點石成金的“金手指”卻沒有教給我們。我們的任務就是要培養透過文章看穿作者背後意圖和動機的能力,在這方面,台灣的侯捷和美國的Donbox是絕佳典範。這兩隻老狐狸(呵呵,是愛稱)憑着其獵犬一般的嗅覺,抽絲剝繭,一個把COM背後的幕後設計動機揭開并暴露到了光天化日之下
,另一個把MFC的宏觀架構做了一次完美的外科手術。其非凡的思維穿透力令人驚歎。
4,英語。英語本身不重要,但是用英語寫成的文獻就極其重要了。是以,專門把英語作為一個重頭戲列出來。大家不要相信英語無用論的鬼話。對于搞計算機的而言,英語就是你的母語!
5,其它的具體理論還有很多,但是都不如這三個方面重要,因為我覺得這三個方面是最具有根本性,全局性的能力培養環節。需要指出的是,很多高深理論對你的工作是無意義的,當心時間陷進去。一定要把效率最高的時間段用在最具有決定性意義的理論學習上。
5)關于讀研之後的出路是否光明的問題。我們應該承認,讀研之後,你的工作機會不是變多了,而是變少了。而且越是高手,他的工作機會和工作範圍就越少。這是因為,越是搞前沿研發的公司,其數量越少,在這個圈子的人也就越少。你找工作的範圍就越小,試問:如果微軟的OS設計專家出來找工作,能夠讓他選擇的公司能有幾家?但是,這種公司數量的減少是以工資待遇的急劇上升為補償的,同時,你在工作中所受到的充分尊重也是在一般公司中體會不到的。是以不要擔心學了高科技用不上,呵呵,你隻會越來越感覺自己學的不夠用。相信接到過獵頭公司電話的人會體會得到。真正的高手從來就不會擔心工作的問題,也從來不會到人才市場上去找工作。既然選擇了理論深入,那麼就應該把眼光放得更遠。
--
※ 來源:·一網深情 bbs.uestc.edu.cn·[FROM: 218.194.50.137]
發信人: london (london), 信區: CCSE
标 題: 有真問題才有真研究
發信站: 一網深情 (Sat Jan 8 17:32:41 2005) , 站内信件
有真問題才有真研究。
一晃, 我在國外待了快四年了, PHD總算要結束了。
在成電讀研已經是十年前的事了, 不知道學校變成什麼樣了。人“老”了, 就愛想家, 是以時不時來網上看看。讀了大家關于研究所學生的讨論,很激動,感覺成電學子的上進和激情一點沒變, 和我等當年一模一樣,難道這就是傳說中的傳統。
但是大家對技術的一些看法, 我極大地不同意。大言不讒地講出來, 希望對學弟們有所幫助。
1。讀研究所學生為何可貴
讀研和大學不同:第一在于可以和導師建立“親密關系”;第二, 可以知道什麼是問題。有些話導師是隻和自己的學生講的。一句話, 就能指導學生的一生。 十年前, 周明天老師對我等說了一些沒有定論的東西, 當時我隻記得一個: TCP的效率很低, 隻有應得的千分之一。這個題目就是我現在的PHD論文。 TCP效率, 是目前網絡最HOT的, 隻要做的出來, 沒有賣不出價的。讀研的第二的好處就是, 研課中有問題, 而大學的課程中隻講有答案的。 在國外, 研究所學生課講的好多是老闆自己正在幹的。研究所學生課也就是領你入門。 讀研究所學生, 如果不能獨立思考, 找不到一個真的問題來研究, 那隻能是大學多兩年。
2。什麼是好東西。
國内讀研最差的是兩點: 沒有圖書館, 沒有好導師。 象周老師這樣說的出真東西的掌握不了話語權,結果就是國内對技術發展方向完全看反。比如, IPV6。 IPV6沒有前途的。 同學們列出來的“高手”LIST, 我覺得很誤導。軟體的核心是算法。 如果對一個問題的分析到了算法的層次, 就是大高手了。一個程式裡有了算法, 就是KILLER。算法很簡單, 就那麼幾個。 關鍵是和應用結合。GOOGLE就是一個LINK RANKING算法,看别人做的多大。 隻要有真問題, 又有自己的算法(不怕簡單), 發财是一定的。至于C++, 能用就好,用多少算多少。 GOOGLE當初想把IDEA幾萬塊賣給YAHOO,YAHOO不要,說你們自己做出來看看。 等做錯出來的, GOOGLE也發了。 光有好IDEA不行,這個世界沒有伯樂的,還要自己做出來。 是以, 程式設計很重要,JAVA一定要精, 其它的邊學邊用就好。計算機有兩條路,性能和應用。 搞性能,穩但久,找工作容易。 搞應用, 才真能發财。 中國一遍空白,搞什麼都有前途。 比如小百貨的進銷存。現在的網絡商業也是。 大家用GOOGLE差中文的QUICKBOOKS, 有家叫速達的公司發家史特别有啟發。軟體工程裡的學問大, 最關鍵的是堅持。 ORACLE是以成功, 全在于他在矽谷, 主要的客戶也在矽谷,幾步路就能上門服務,幾年下來, BUG調完了, 也就發了。 大家要是能找一個應用,編上三年, 什麼都OK!
3。軟體學院好嗎?
軟體學院是個好東西。 十年前周老師就在講。要不是體制原因, 那容東軟打上門。 當初, 周老師要把計算機系研究所學生部搬到深圳,都和深圳談好了, 可惜沒成。編軟體極費錢。老闆必須是高手, 什麼都會, 手下也得有人, 不然累死。 寫程式的, 隻要聰明,會點基礎就得。軟體學院兩年大量培養技術勞工, 一個月兩千到頭。多好啊! 成電的學生, 不要把自己定位于軟體勞工, 你們要當老闆。軟體勞工得靠老闆給他們找事做。 “将帥無能, 累死三軍”。 當将帥的, 得什麼都會,手下的勞工就是自己手的複制品。國内現在沒有将帥, 隻知道加班。 方法不對, 加班也沒用。
軟體學院好啊, 那麼多人, 可以少花錢辦大事。 國外程式設計之貴, 小公司請不起人。 當初, ALTAVISTA是幾個人吃狗餅, 自己編出來的。他們連個大硬碟都買不起。
成電學校不好, 但人好。 成電校友很狠的, 比清華北大強。是以如此, 主要是UNIX的功勞。 成電的老傳統是UNIX, 有UNIX才有計算機。 UNIX是一種人生态度, 網絡離不開UNIX, 大家多玩UNIX, 成電香火就不絕。成電學生要有大志向, 要有IDEA, 在實作自己IDEA中學習, 光看書沒用的。
4。 要做大作業
國内計算機教學最大的問題是作業太小。 不做作業,什麼都是假的!編幾個大作業, 什麼都懂了。 國外的作業很新很大, 我知道好些很大的公司就是幾個作業編出來的。幾句牢騷, 希望對學弟有幫助。祝恩師周老師健康!問譚浩(老師)好!