Posted on 2010-11-03 09:22
Onway 閱讀(353)
評論(0) 編輯 收藏 引用 所屬分類:
轉(zhuǎn)載
1.
極端的社會輿論
每每看到大學(xué)生就業(yè)報告里提到計算機系學(xué)生失業(yè)人數(shù)最多時,我就想mn,什么原因?qū)е铝诉@種現(xiàn)象的發(fā)生,在中國軟件還處于比較初級的階段時,市場對軟件人才的需求應(yīng)該每年在大幅的遞增,可是大學(xué)里培養(yǎng)出來的計算機科班人才質(zhì)量卻每況愈下,甚至還不如一個軟件培訓(xùn)機構(gòu)兩三個月訓(xùn)練出來的人好用,為什么?想想現(xiàn)在的計算機科班畢業(yè)生的水平吧,大學(xué)四年下來,90%的學(xué)生寫的代碼沒有超過2000行,不Linux操作系統(tǒng)為何物,不知道C++和Vc的區(qū)別,沒有開發(fā)出一塊實用功能的簡單軟件, 沒有使用過STL,甚至不知STL為何物,更不用提設(shè)計模式之類的比較高級一點的東西了……這樣的例子還能舉出很多…
就是這樣的人才質(zhì)量,如何讓一個以營利為目的的公司接受,如何為企業(yè)創(chuàng)造價值? 但是也有那么一些人,能進入微軟、IBM、google、百度這樣的公司,拿著年薪幾十萬。
2. 失敗的計算機教育體制
我也是一名畢業(yè)不久的計算機科班畢業(yè)生,從我目前了解的情況看來,大學(xué)時,沒有幾個學(xué)生真正的對計算機編程感興趣,體會不到通過編程解決問題帶來的樂趣,只是單純的跟著課程的設(shè)置學(xué)習(xí),這樣沒有目的性的學(xué)習(xí)效率如何之底?大學(xué)里的學(xué)生又有幾個人能對自己的職業(yè)規(guī)劃有一個基本的了解?大學(xué)里有幾個人能理解學(xué)習(xí)的課程在具體的實踐中的作用? 這些慘痛的例子說明了我們大學(xué)對計算機系學(xué)生的引導(dǎo)是非常不夠的?沒能激起對學(xué)習(xí)計算機技術(shù)的興趣?不能告訴大家一個將來一個明確的職業(yè)規(guī)劃方向,沒有很好的引導(dǎo)學(xué)生去思考自己的職業(yè)規(guī)劃方向?如果是這種狀態(tài)去學(xué)習(xí),大學(xué)四年基本是廢掉了……
另外一個就是大學(xué)課程的設(shè)置,各種各樣的課程,填鴨式的教學(xué)方式…. 純粹理論式的教學(xué)方式….到頭來,學(xué)生真正學(xué)到了什么?幾個術(shù)語名詞而已…..一樣對操作系統(tǒng)是那樣的迷茫….不知道編譯原理的語法分析為何物? 不知道數(shù)據(jù)結(jié)構(gòu)中的樹和圖將有何用?
3. 四年后,我能驕傲的說我是計算機系的學(xué)生
上面發(fā)了那么多的牢騷,其實都是有感而發(fā)….下面在結(jié)合自己的工作的感受具體談?wù)動嬎銠C學(xué)生應(yīng)該如何規(guī)劃自己的大學(xué)四年
大一:
一個新兵蛋子,剛走進象牙塔的大門,什么都是新鮮的,不斷聽著學(xué)長們說著天書般的技術(shù)術(shù)語… 天天爭論C++和java哪個好,.net是否比Vc更智能先進…. 還有什么Asp.net …. 一堆的技術(shù)擺在自己面前了…
然后自己就糊涂了….去問學(xué)長吧…學(xué)長告訴你..好好學(xué)習(xí)java吧…將來有錢途…..
其實大一,沒必要學(xué)習(xí)各種新鮮的技術(shù)…..把高等數(shù)學(xué)學(xué)好吧….這才是正事,是決定了著將來你是否能稱為一個大牛還是一個編程語言的熟練操作工人的因素…. 也許這時候的你還不知道高等數(shù)學(xué)有什么作用…
但我要告訴你的是如果你的悟性高…. 工作一兩年也許就能體會到數(shù)學(xué)的做用…. 學(xué)高數(shù)..不是簡簡單單的學(xué)習(xí)微積分…. 在掌握這些知識的時候….鍛煉自己的邏輯思維….. 鍛煉自己的思考問題解決問題的方法和能力。作用在將來一定大大的….. 等將來如果你涉足密碼學(xué)…你會發(fā)現(xiàn)各種積分方程和矩陣變化…. 將來在計算一個算法的復(fù)雜性和證明算法的可靠性時,也離不開數(shù)學(xué)知識…. 如果你涉足人工智能和語音識別,各種統(tǒng)計模型就會呈現(xiàn)在你面前。在你畢業(yè)找工作時,這個才是你和專業(yè)培訓(xùn)機構(gòu)培訓(xùn)出來的學(xué)生的差異能力。這才是企業(yè)更看重的能力。如果你還有時間的話,學(xué)習(xí)C語言… 但是不要再用譚浩強的書了…. 看
The C program langue 吧… 如果能真正領(lǐng)悟書中70%的例子話,那就足夠了. 如果能把這兩門課程學(xué)到十分優(yōu)秀,恭喜你,你已經(jīng)成功了一半了…..
大二:
如果你在大一學(xué)習(xí)了C之后,這個時候大學(xué)的課程就要涉及操作系統(tǒng)和數(shù)據(jù)結(jié)構(gòu)、還有匯編語言了…… 這也是大二一定要學(xué)好的兩門課了……大學(xué)的操作系統(tǒng)太失敗了,上完課后,很多的學(xué)生不知道所云,更加感覺操作系統(tǒng)的神秘了,課程設(shè)計也就是什么銀行家算法的,然后大家在網(wǎng)上一頓搜索,然后交給老師就算完事了…
其實,我的建議是自己寫一個操作系統(tǒng)內(nèi)核,實現(xiàn)內(nèi)存管理,進程管理和切換 等一些基礎(chǔ)的東西了就可以了,《自己動手寫操作系統(tǒng)》就是很好的教材…… 如果還有時間,學(xué)習(xí)《Linux內(nèi)核設(shè)計與實現(xiàn)》,看看現(xiàn)實商用的操作系統(tǒng)是怎么實現(xiàn)的? 當然最好和原碼結(jié)合的一起看,效果最好。還有趙炯博士的 “.012Linux內(nèi)核完全剖析”什么的。如果能仔細閱讀,收獲一定不少。當然還有數(shù)據(jù)結(jié)構(gòu),這個也是重中之中,這也是和非科班出身的學(xué)生的差別,關(guān)鍵是你學(xué)的好壞,這個的實踐主要在ACM上,當學(xué)習(xí)完數(shù)據(jù)結(jié)構(gòu)后,最重要的是使用,不斷的在Acm上做各種各樣的題目,不斷的提升自己算法設(shè)計的能力。從大二開始,如果能堅持兩年下來,那么一般的算法設(shè)計肯定是難不住的了,也許這時候高數(shù)打下的基礎(chǔ)就會起作用了。
當畢業(yè)的時候,進入一家好的公司應(yīng)該不是太難的事情了。再說說匯編語言,本質(zhì)上這也是一門編程語言,可能剛?cè)腴T的時候比較困難,但是程序?qū)懚嗔耍?/font>C也沒有差別了。我還想說一點,就是現(xiàn)在Windows內(nèi)核也逐步開放了,至少有很多的逆向的資源可以學(xué)習(xí)。如果對Windows有興趣,一樣可以學(xué)習(xí)操作系統(tǒng)的實現(xiàn)原理。
大三:
離散數(shù)學(xué)和編譯原理是個重頭戲,離散數(shù)學(xué)雖然我現(xiàn)在還沒體會到他的作用,但是和高數(shù)一樣,這中內(nèi)在的東西才是最重要的,代表著內(nèi)功,如果沒有學(xué)好,這些債遲早還要要還的。 編譯原理,學(xué)習(xí)完以后一樣會讓你云里霧里,整天做那些無聊的題目。還是說實踐吧,網(wǎng)上有開源的C編譯器的源碼,下載下來然后好好學(xué)習(xí)下,結(jié)合編譯原理書中講的東西,好好的消化一些這些知識,最后,自己如果能寫出來一個C編譯器的話,那你的編譯原理也就通過了。當然這個時候可以學(xué)習(xí)一些C++或Java之類語言,但是學(xué)到夠平時用的就可以了,沒有學(xué)非常深。選擇一本教材學(xué)習(xí)兩三個月就行了。
當然,這個時候,可能你的同學(xué)已經(jīng)能做出來各種漂亮的網(wǎng)頁,也可能熟練的使用MFC類庫做出各種各樣的漂亮的軟件,這些沒什么,如果三年下來,如果你能夠按照上面我寫的那樣堅持學(xué)習(xí)。也許他們用三年學(xué)習(xí)的這些東西,你用三個月就能熟練。
大四:
到了找工作的時候,如果你按照上面一步一個腳印的學(xué)習(xí),我相信你會收到很多大公司的offer。因為大公司更看重的是你的內(nèi)功的深厚,而小公司才會看重那些花拳繡腿的技術(shù)。但是這個時候,千萬不要忘記繼續(xù)學(xué)習(xí),很多的學(xué)生大四一年都浪費掉了,真實太可惜了,在前面三年的基礎(chǔ)上,到了厚積薄發(fā)的時候了,
開始要思考自己的職業(yè)規(guī)劃了,你要選擇Linux方向還是Windows方向,要選擇底層方向還是應(yīng)用方向,
要選擇網(wǎng)頁方向還是桌面應(yīng)用方向。是選擇自然語言處理還是人工智能。這個時候你要選擇自己的一個方向,當然你可以向你的導(dǎo)師求助,然后確定自己的發(fā)展方向,大四一年就可以專心的學(xué)習(xí)了。
4. 附上我認為計算機學(xué)習(xí)比較好輔助教材:
C語言: the C Program Language
操作系統(tǒng); 于淵:《自己動手寫操作系統(tǒng)》
《Linux內(nèi)核設(shè)計與實現(xiàn)》
《Linux內(nèi)核完全剖析》
《Linux內(nèi)核情景分析》
《Windows內(nèi)核情景分析》
編譯原理: 龍書《編譯原理》
匯編:
王爽老師《匯編第二版》
5. 后記
以上都是自己在工作后對大學(xué)四年的反思,可能很多人有不一樣的看法,我沒有任何異議。畢竟每個人經(jīng)歷是不一樣的,但是如果你向想做真正的計算機科班出身的學(xué)生,學(xué)好上面介紹的課程吧。在以后的職業(yè)生涯中,你會終身受益的。當然上面很多的課程我沒有提到,并不代表他們不需要學(xué)習(xí),只是分量沒有那么重而已。因為你還是要畢業(yè)的,每門功課還是要過的。zds
當然,我現(xiàn)在認為,計算機的本科四年真是一個打基礎(chǔ)的四年,之后才是學(xué)習(xí)各種招式,如果基礎(chǔ)打好了,招式的學(xué)習(xí)會事半功倍的。當進入公司后,一樣要持續(xù)不斷的學(xué)習(xí),才能讓你不斷的進步。自己文采不好,寫的比較亂,但都是肺腑之言,各位將就看吧。