|
引子
唉,本實在不想發(fā)水文的,可還是發(fā)了,看來是周末悶騷咯,沒興趣的請趕緊飄過 ~~~
本篇博文其實是用來給在讀大學(xué)生一點借鑒的,并不會討論什么技術(shù)類的點 ,所以,不喜歡這種類型文章的也可以飄過,但是如果各位有興趣的且保有不同意見者,也可以提出,歡迎討論,畢竟出來混的應(yīng)該也看過了很多學(xué)校里所謂的大學(xué)生,估計心里頭對現(xiàn)在從大學(xué)里頭招進(jìn)來的各位小學(xué)弟小學(xué)妹也不咋的滿意,而我也算是比較了解一些學(xué)生的,所以,何不趁著周末一起出來指點一下他們呢?
致學(xué)生 - 大學(xué)最重要的不是 Java 和 .NET 而是基礎(chǔ),基礎(chǔ)才是最重要的 !
在這里,我也主要是因為見很多大學(xué)生現(xiàn)還在學(xué)校里迷茫,毫無方向感,而剛好自己周末有點悶騷吧,因此也站出來說兩句話,希望不會因此受到人身攻擊,當(dāng)然,我只是扯淡,說出我的建議,至于覺得發(fā)言不妥者,自可以飄過,也歡迎提出新的見解,而這里我對大伙扯的兩句,尤其適用于現(xiàn)還在大學(xué)里的各位學(xué)弟學(xué)妹們。
首先,現(xiàn)在大學(xué)里過多追求就業(yè)率,拿我們學(xué)校來說吧,是個二流學(xué)校,為了有好的就業(yè)率,學(xué)校一直和校外培訓(xùn)機(jī)構(gòu)進(jìn)行合作,一直主推 Java ,甚至推出學(xué)生如果在某個培訓(xùn)學(xué)校培訓(xùn)的話,是可以不用去上課的,這一點,我實在想不通,最后我給自己一個答案,那就是學(xué)校已經(jīng)自認(rèn)為比不上外面的培訓(xùn)機(jī)構(gòu)了,這個不得不說是一個悲劇哦!
而后就是,我們學(xué)校里,好不容易有個博導(dǎo)給我們上課,但是悲劇又來了,博導(dǎo)上的課居然是計算機(jī)導(dǎo)論,最差勁的一門了,唉,現(xiàn)在才發(fā)現(xiàn),大學(xué)里真正教書的一般都是助教和講師,博導(dǎo)可都是有自己的項目要做,有自己的公司要開,有自己的人際網(wǎng)要拓展,博導(dǎo)這么忙,當(dāng)然也就只能請個助教了,這個其實才是現(xiàn)今大學(xué)教學(xué)的一個大悲劇!
還有就是我本科學(xué)的是軟件工程,大學(xué)里,我很悲劇我沒有學(xué)過組成原理,編譯原理等等基礎(chǔ)課,我們聽講座聽的最多的居然是培訓(xùn)學(xué)校來的老師的演講(基本上是推銷),呵呵,夠悲劇了吧,希望各位的學(xué)校不會和我們學(xué)校一樣。
上面呢,就是我在學(xué)校時候的學(xué)習(xí)背景了。
然后呢,我再根據(jù)我自己的經(jīng)歷來談?wù)勎业目捶ǎ夷兀菜闶莻€計算機(jī)行業(yè)的狂熱分子吧,自大一接觸 C++ ,我一直都對這行業(yè)很感興趣,曾經(jīng)也經(jīng)常在網(wǎng)吧上通宵(當(dāng)然那會是為了學(xué)習(xí) C++ ),大一到大二上學(xué)期,我一直都是在黑框框里面(也就是 DOS 環(huán)境下)寫著 C++ 程序,也潛心寫過漢諾塔,迷宮,八皇后等等經(jīng)典算法題,那會兒寫的呢也很帶勁,但一直沒有接觸過具體界面的實現(xiàn),所以總是感覺有些不爽,因為總覺得那不是軟件,甚至都懷疑起 C++ 到底能夠做什么用,現(xiàn)在想來那時候的想法真是幼稚啊,并且自己也總是幻想著能夠什么時候做一個具體的軟件出來(那個時候總是覺得只有有了現(xiàn)在所謂的圖形界面才算得上軟件),后來一次偶然的機(jī)會,我接觸了 . NET ,然后,我發(fā)現(xiàn),做圖形界面是如此的爽呼呼,于是乎,一個人拼命地學(xué),拼命地學(xué) .NET,然后開始拼命地寫我那個時候我所認(rèn)為的所謂的軟件,寫一些數(shù)學(xué)工具,一些小游戲,也將一些諸如迷宮,八皇后的算法題從 C++ 改成 C# 寫的應(yīng)用程序,然后就是做 Web 開發(fā),學(xué)了很多很多,也做了很多的諸如什么什么的管理系統(tǒng)等等,但一直都感覺不再向大一學(xué)習(xí) C++ 那么正派了,有點說不出的感覺,但也一直總結(jié)不出什么內(nèi)容,不過現(xiàn)在算是總結(jié)出來了,因為我過早的涉及了高級語言,而忽略了真正的基礎(chǔ) !
因為總結(jié)出來了結(jié)果,所以我也越發(fā)的思考大學(xué)里面,作為一個大學(xué)生到底應(yīng)該要學(xué)的是什么?
總結(jié)了個人所認(rèn)為的在技術(shù)上的幾點內(nèi)容,注意是技術(shù)上的,至于做人處事上的,我自己都做的不好,沒資格在這里扯淡,英語很重要,我的英語一直不怎么的,因為英語差勁我也吃了很多虧的,甚至我現(xiàn)在看英文資料,我都得開著金山詞霸的劃詞翻譯,看起來的那個速度自然是不用說了,曾經(jīng)我也總是想,現(xiàn)在國內(nèi)資料那么多,要英語干嗎?呵呵,聽我一句勸,好好學(xué)習(xí)英語吧,因為你會發(fā)現(xiàn),你真正要找的資料是某個不常用 API 的英文解釋,而不是要找 HelloWorld 怎么實現(xiàn)的中文資料,然后就是難道你以為任何一門語言都有向 MSDN 中 C# 這么全面的中文文檔?那你看看 MSDN 中 VC++ 的文檔吧!
或許有人會說:為什么 C/C++ 中文資料這么多?天吶,難道你想一輩子跟在別人幾十年后面,你知道 C/C++ 是一年出來的嗎?難道,你愿意永遠(yuǎn)比別人了解到新知識晚幾十年?數(shù)學(xué)很重要,大學(xué)里,我數(shù)學(xué)一直都還不錯,無論是高數(shù),還是線數(shù),離散,我都學(xué)得不錯,也一直有些沾沾自喜,但是到現(xiàn)在看來,我的數(shù)學(xué),呵呵,悲劇,學(xué)得太爛了,數(shù)學(xué)的話,我覺得各位在校的,也聽一句勸,學(xué)得越深越好,曾經(jīng),我也總是覺得數(shù)學(xué)沒一點用處,但是后來看了 OpenCV ,也和同學(xué)討論了 OpenGL ,談?wù)摿艘恍┯嬎銠C(jī)圖形學(xué)的內(nèi)容,也看了同事的一些不曉得是什么的東西,居然列那么多數(shù)學(xué)公式,關(guān)鍵是我一個都不懂,此時我才發(fā)現(xiàn),計算機(jī)的世界其實是一個數(shù)學(xué)世界,你想深入了解計算機(jī),那你得數(shù)學(xué)得學(xué)得非常牛逼,里頭全是數(shù)學(xué),所有的東西都是數(shù)學(xué),甚至讓我覺得,計算機(jī)搞到很牛逼了的話,那么一定可以成為一個牛逼的數(shù)學(xué)家了,或許各位會說,我只局限在我所了解的領(lǐng)域里面了,因為在 .NET 中,數(shù)學(xué)似乎一點都不重要呢,但是我會反問,難道你又不是局限在 .NET 中了,或許,你覺得微積分,常微分方程離我們很遠(yuǎn),其實,你錯了,它離我們很近,你總有一天會發(fā)現(xiàn)的,呵呵,其實數(shù)學(xué)的重要不重要,關(guān)鍵在于你想不想真正的呆在這一行里面;
匯編很重要,弄到這里,應(yīng)該會有很多人反對了,因為,向匯編這種東西,在搞 Java 和 .NET 的這些高級語言程序員眼里,那早就應(yīng)該是過時的內(nèi)容了,呵呵,其實我以前也是這么覺得的,畢竟,有本事你拿匯編做個 Web 應(yīng)用程序出來看看,呵呵,以前多幼稚的想法啊,人家<<瘋狂程序員>>里頭的絕影就是弄的匯編,不曉得現(xiàn)在混得咋樣咯,應(yīng)該不會差那頭去吧,畢竟人家弄的是匯編,確實,那匯編做應(yīng)用軟件或者 Web 應(yīng)用程序的話,確實太牽強(qiáng)了,但是為何我現(xiàn)在搞 .NET 這么多年了,反而回過頭來學(xué)習(xí)匯編了呢?因為我發(fā)現(xiàn),我對內(nèi)存的管理,對寄存器中的內(nèi)容,對整個 .NET 的底層,對所有的一切都掌控不了,曾經(jīng)看一本書,好像是<<Sql Server 2005 高級程序設(shè)計>>吧(一本 Sql Server 方面的巨著,這里擅自推薦一下),里面的作者就說了,計算機(jī)中最害怕的事情就是不可預(yù)料,無法掌控,而且匯編語言中,對內(nèi)存的尋址,以及寄存器的使用都有非常好的解釋和頻繁的使用,通過學(xué)習(xí)匯編,你可以更好的理解地址總線,數(shù)據(jù)總線,控制總線和 CPU 以及內(nèi)存之間真正的工作流程,以及它們之間的一些最基層的協(xié)作關(guān)系,同時也能理會內(nèi)存最真實的使用,而不會向無頭蒼蠅一樣,甚至連內(nèi)存是什么都不知道,只會說,我只要分配內(nèi)存即可,只要 new 就 OK 了,當(dāng)然如果你只想做到你所要的 new 的話,我也沒有辦法,我只能說你還不夠狂熱,不夠?qū)I(yè),不是合格的程序員;
計算機(jī)組成原理和編譯原理,計算機(jī)組成原理的重要性是不言而喻的,畢竟考研專業(yè)課中,這東西好像還占蠻大的比例的,至于這編譯原理嗎,肯定又有人反對編譯原理了,說,又不讓你自己搞編譯器,學(xué)什么編譯原理,呵呵,說的也不錯,但是我想說的是,并不是你想搞什么你才去學(xué)什么,眼光放遠(yuǎn)點,你會發(fā)現(xiàn),你的世界里并不是只有 .NET 和 Java,而且在編譯原理這東西里面,你確實能夠?qū)W到很多東西,就比如,如果當(dāng)初設(shè)計 Java 的是你,你會想到先將程序編譯成字節(jié)碼,然后再使用解釋器來解釋字節(jié)碼嗎?我想,你肯定想不出的 ~~~
操作系統(tǒng),操作系統(tǒng),這個名詞聽著都感覺很嚴(yán)重,畢竟,在操作系統(tǒng)被 Windows 壟斷的環(huán)境下,也確實很難有人愿意接受操作系統(tǒng)是很重要的東東了,甚至覺得學(xué)習(xí)操作系統(tǒng)就是學(xué)習(xí)如何在 DOS 環(huán)境下,敲個命令出來一大堆東西,或者覺得學(xué)習(xí)操作系統(tǒng)就像是學(xué)習(xí) <<Windows 操作系統(tǒng)一千招>>一樣,能夠打開個注冊表,能夠優(yōu)化一下電腦,改變一下電腦啟動畫面,那就是學(xué)習(xí)操作系統(tǒng)了,又覺得以后操作系統(tǒng)這東西就給微軟去做吧,如果你真這樣想的話,那我只能說,真是個悲劇 !
我想說,如果你覺得操作系統(tǒng)不重要的話,那你真是錯到家了,大學(xué)里頭,我一開始也是帶著混的心態(tài)混過的操作系統(tǒng)課程的,但是在考試前一個星期,我居然迷戀上了操作系統(tǒng),那可真是作死的看操作系統(tǒng)啊,整整在一個星期里,我拿著<<操作系統(tǒng)概念>>看了 2 遍,甚至在看完 2 遍中文版的之后,我還準(zhǔn)備去啃原版的,無奈英文水平太差,最后只能作罷,經(jīng)過了那次的操作系統(tǒng)的學(xué)習(xí)后,我自以為操作系統(tǒng)我掌握的還不錯了,但是后來,我發(fā)現(xiàn),我一直都在追趕操作系統(tǒng)里面的知識,從我寫驅(qū)動程序開始,我就一直在追趕操作系統(tǒng),為此,我重新學(xué)習(xí)操作系統(tǒng),看 Windows 內(nèi)核原理,看 Windows 分析,看內(nèi)存管理,看進(jìn)線程調(diào)度,看 CPU 調(diào)度,看 I/O 管理,即插即用管理等等,看了很多,至今我都覺得,我在操作系統(tǒng)這一塊還很欠缺,很欠缺,我越往深處學(xué)習(xí),我就覺得我越欠缺操作系統(tǒng)的知識,現(xiàn)在也還正在打算到哪里再去找些什么資料來填補(bǔ)空缺呢,呵呵,說了這么多,我只是想糾正現(xiàn)在大學(xué)里頭很多人認(rèn)為操作系統(tǒng)不重要這一觀念,操作系統(tǒng)真的很重要,很重要!
C/C++,這兩個東西我想不必多說了,只是在這里奉勸那些和我當(dāng)年幼稚想法一樣的說 C/C++ 做不了什么用的人,如果這兩個東西,你錯過了,你補(bǔ)都補(bǔ)不回,其實啊,我們被大學(xué)里頭的老師害慘了啊,曾經(jīng)我的 C++ 老師就說,美國什么航空火箭發(fā)射上天后失敗,直接掉了下來,照成 n 人死亡,損失慘重,而這一切竟然是一個指針惹的禍,所以,我們 C++ 老師就跟我們說,指針這個東西很危險,少接觸為妙,哈哈哈,真被害慘了,后來才發(fā)現(xiàn) C/C++ 如果沒有了指針,那就真的一點用處都沒有咯 ~~~
還有,當(dāng)年老師教 Goto 語句的時候,老師只講了一句話:這東西,影響程序邏輯性,造成程序可讀性差,所以大家禁用。呵呵,現(xiàn)在出來,這個 Goto 語句也還是經(jīng)常看到的(這里我并不是推廣使用 Goto 語句哦,只是有些東西,并不是說老師不教我們就可以不學(xué)的,也不是我們不學(xué),以后就不會碰到要使用的情況的)勸誡各位,千萬不要看不起黑框框,來句形象點的:一切圖形界面都是過眼浮云,我最慶幸的是,我當(dāng)初對 C++ 還執(zhí)著過那么一年半,所以,也還算有一點點,也就是一點點底子而已,拿最簡單的說,人家 Windows 還是 C 寫的呢,人家 Oracle 也是 C 寫的呢,你還敢說 C/C++ 沒用 ?
然后,那你又會說,那些都是做的系統(tǒng)集成,系統(tǒng)軟件,呵呵,那我現(xiàn)在給公司里寫的也都是 C 寫的呢,而且寫的環(huán)境還是在黑框框里頭寫的呢 (Dos 環(huán)境下編譯調(diào)試),那你現(xiàn)在還會很鄙視黑框框嗎 ?
數(shù)據(jù)結(jié)構(gòu)和算法,對數(shù)據(jù)結(jié)構(gòu)還好,在大學(xué)里,還是有很多人意識到了數(shù)據(jù)結(jié)構(gòu)的重要性的,而且,基本上上課的老師也會稍微強(qiáng)調(diào)一下數(shù)據(jù)結(jié)構(gòu)的重要性,呵呵,所以,在大學(xué)里頭,這門課缺課的人還是比較少的,確實,如果等到各位將來研究一些稍微底層的代碼時,或者如果有機(jī)會寫系統(tǒng)軟件的時候,你會發(fā)現(xiàn),底層里頭的鏈表那個多啊,循環(huán)鏈表,雙向循環(huán)鏈表,平衡數(shù),順序表,最小生成樹等等用的到處都是,當(dāng)然啦,現(xiàn)在 C# 里頭,大家或許很少有機(jī)會接觸到了,要隊列有隊列,要表有表,要字典有字典,要什么有什么,一般來說一個字典,一個 Array , 一個泛型基本上全部搞定,但是忘了告訴各位,用得這么方便可是需要付出代價的哦!
而對于算法的話,現(xiàn)在感覺越來越不受重視了哦,甚至很多學(xué)校都不開算法課了,只是一個簡單的數(shù)據(jù)結(jié)構(gòu)帶過而已,所以很多人也都不曉得貪心算法,動態(tài)規(guī)劃等了(說實話,我也不太懂了,不過打算有時間去補(bǔ)補(bǔ)),都是高級語言惹得禍(注意,這里不是抨擊高級語言哦),把算法都封裝的那么好,說實在的,如果真不做大的系統(tǒng)的話,算法這東西真的很多都可以不需要掌握了的,但是,如果,這世界上每一個人都這樣想的話,就不會有 Windows ,Oralce 了,殊不知,Windows 整個結(jié)構(gòu)的復(fù)雜性,其中調(diào)度算法的使用,也殊不知,Oracle 體系結(jié)構(gòu)的復(fù)雜度,其中緩存處理算法的復(fù)雜度等等。
如果你只想在 .NET 上用用別人的東東,或者說是有空拿個循環(huán)玩玩的話,算法這東西確實跟你隔得很遠(yuǎn)了,但是,難道你愿意這樣???你去看現(xiàn)在年薪高的程序員,哪一個不是算法高手?呵呵,這就是差別哦。
數(shù)字電路和模擬電路,說到這里,更多意見應(yīng)該會冒出來了,咱搞軟件的,為什么要搞這些東西呢?
呵呵,如果真的不用搞這些東西,大學(xué)里就不會開這些課咯,博客園里頭搞 .NET 的居多,搞 Web 開發(fā)和 .NET 應(yīng)用軟件開發(fā)的居多,而現(xiàn)在市場上搞 Java 和 .NET 的又是居多,所以設(shè)計到數(shù)字電路和模擬電路的內(nèi)容不多,
甚至是一片空白,所以也就覺得這兩東西真是扯淡,說真的,我很能體會大伙的心情,因為我以前也是這樣覺得的,但是,大家眼光放開點,真的放開點,這個世界上真的就只有 Java 和 .NET 了嗎?而除了 Java 和 .NET 以外,很多其他地方,對于數(shù)字電路和模擬電路都是要求很高的,尤其現(xiàn)在社會上很缺模擬電路方面的人才哦,而且,理解了這兩個東西以后,對于自身理解程序的具體怎么跑的,為什么能輸出個字符,為什么能執(zhí)行計算操作都是很有幫助的,而不會像一個碼農(nóng),連自己在做什么都不知道,這也就是所謂的不可預(yù)知!
計算機(jī)網(wǎng)絡(luò),這個東西呢,說真的,也不好說,當(dāng)今早就過了以前那個計算機(jī)只是用來做計算的時代了,現(xiàn)在是網(wǎng)絡(luò)的時代,如果你真不懂網(wǎng)絡(luò),說實在的,你連程序員都不適合,不要求你有多深的掌握,但是 TCP,UDP 還是要分得清吧?TCP/IP 協(xié)議五層結(jié)構(gòu)總的知道吧?
數(shù)據(jù)具體的流動過程也要有所了解吧,呵呵,都是很基礎(chǔ)的東西啊,可是,這些基礎(chǔ)卻是最重要的東西。
總結(jié)
上面總結(jié)出來的幾門課程,都是我認(rèn)為大學(xué)里頭,在計算機(jī)中最最基礎(chǔ)的課程了,但是,這些課程卻被很多大學(xué)給忽略了,從而也被很多大學(xué)生給忽略掉了,而諸如軟件工程,數(shù)據(jù)庫,軟件項目管理之類的課程我在這里沒有提及,因為,那一塊過多涉及軟件方向了,會限制到一些思維,所以我沒有提及。現(xiàn)在的大學(xué)里(像我所在的學(xué)校),側(cè)重點已經(jīng)變咯,培養(yǎng)學(xué)生事小,撈到收入才是最重要的了,學(xué)校為什么拼就業(yè)率啊?就業(yè)率高了,自然學(xué)生來得多,學(xué)生來得多,自然,國家給的錢多,自然,腰包里錢更多,然后又大肆拼就業(yè)率,拼就業(yè)率,那就得多讓學(xué)生接觸所謂的現(xiàn)在社會上所需要的(Java 和 .NET 程序員),如何培養(yǎng)出這樣的程序員呢?交給培訓(xùn)學(xué)校吧 . . .
甚至,似乎今年還推出了一個新的專業(yè),是和牛耳培訓(xùn)學(xué)校合作的一個軟件外包專業(yè),呵呵,專業(yè)外包人才,靠 . . . 名字真好聽 . . . 要我說,學(xué)校太不負(fù)責(zé)了 . . .說實在的,以前,有一些不同意老趙對培訓(xùn)學(xué)校的觀點的,但是,現(xiàn)在看來,也還是有一些同意了(但培訓(xùn)學(xué)校確實還是有一些作用的,或許會培養(yǎng)人,但是我覺得也會害死人),通觀全文,可能有讀者會覺得我在反對高級語言,其實,我一直都在努力地避開這個話題,因為,我本身的意愿并不是反對高級語言,只不過,我覺得大學(xué)里頭的學(xué)生,尤其是大一,大二,大三的學(xué)生,他們不應(yīng)該過早的接觸到高級語言,如果他們基礎(chǔ)真的好了,那他們到哪里都可以展翅,當(dāng)然,等到基礎(chǔ)好了,學(xué)起高級語言來也是手到擒來的 . . .
還有就是需要解釋一下,現(xiàn)在大學(xué)里頭流傳的:學(xué)基礎(chǔ)課程是找不到工作的 !只有 Java 和 .NET 才是王道;我的回答是放屁 !
好了,拍磚的拍磚,要罵的請先給出理由,然后再罵,最討厭什么都不標(biāo)明就進(jìn)行人身攻擊者!
同意的請頂起,反對的請說出理由,也算是給學(xué)弟學(xué)妹們一個指導(dǎo)!
歡迎轉(zhuǎn)載,但轉(zhuǎn)載請注明: 轉(zhuǎn)載自 Zachary.XiaoZhen - 夢想的天空
it知識庫:大學(xué)里如何學(xué)習(xí) ?,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。