大學里如何學習 ?

作者: Zachary.XiaoZhen  來源: 博客園  發布時間: 2010-11-18 22:09  閱讀: 2055 次  推薦: 5   原文鏈接   [收藏]  

  引子

  唉,本實在不想發水文的,可還是發了,看來是周末悶騷咯,沒興趣的請趕緊飄過 ~~~

  本篇博文其實是用來給在讀大學生一點借鑒的,并不會討論什么技術類的點 ,所以,不喜歡這種類型文章的也可以飄過,但是如果各位有興趣的且保有不同意見者,也可以提出,歡迎討論,畢竟出來混的應該也看過了很多學校里所謂的大學生,估計心里頭對現在從大學里頭招進來的各位小學弟小學妹也不咋的滿意,而我也算是比較了解一些學生的,所以,何不趁著周末一起出來指點一下他們呢?

  致學生 - 大學最重要的不是 Java 和 .Net 而是基礎,基礎才是最重要的 !

  在這里,我也主要是因為見很多大學生現還在學校里迷茫,毫無方向感,而剛好自己周末有點悶騷吧,因此也站出來說兩句話,希望不會因此受到人身攻擊,當然,我只是扯淡,說出我的建議,至于覺得發言不妥者,自可以飄過,也歡迎提出新的見解,而這里我對大伙扯的兩句,尤其適用于現還在大學里的各位學弟學妹們。

  首先,現在大學里過多追求就業率,拿我們學校來說吧,是個二流學校,為了有好的就業率,學校一直和校外培訓機構進行合作,一直主推 Java ,甚至推出學生如果在某個培訓學校培訓的話,是可以不用去上課的,這一點,我實在想不通,最后我給自己一個答案,那就是學校已經自認為比不上外面的培訓機構了,這個不得不說是一個悲劇哦!

  而后就是,我們學校里,好不容易有個博導給我們上課,但是悲劇又來了,博導上的課居然是計算機導論,最差勁的一門了,唉,現在才發現,大學里真正教書的一般都是助教和講師,博導可都是有自己的項目要做,有自己的公司要開,有自己的人際網要拓展,博導這么忙,當然也就只能請個助教了,這個其實才是現今大學教學的一個大悲劇!

  還有就是我本科學的是軟件工程,大學里,我很悲劇我沒有學過組成原理,編譯原理等等基礎課,我們聽講座聽的最多的居然是培訓學校來的老師的演講(基本上是推銷),呵呵,夠悲劇了吧,希望各位的學校不會和我們學校一樣。

  上面呢,就是我在學校時候的學習背景了。

  然后呢,我再根據我自己的經歷來談談我的看法,我呢,也算是個計算機行業的狂熱分子吧,自大一接觸  C++ ,我一直都對這行業很感興趣,曾經也經常在網吧上通宵(當然那會是為了學習  C++ ),大一到大二上學期,我一直都是在黑框框里面(也就是 DOS 環境下)寫著 C++ 程序,也潛心寫過漢諾塔,迷宮,八皇后等等經典算法題,那會兒寫的呢也很帶勁,但一直沒有接觸過具體界面的實現,所以總是感覺有些不爽,因為總覺得那不是軟件,甚至都懷疑起  C++ 到底能夠做什么用,現在想來那時候的想法真是幼稚啊,并且自己也總是幻想著能夠什么時候做一個具體的軟件出來(那個時候總是覺得只有有了現在所謂的圖形界面才算得上軟件),后來一次偶然的機會,我接觸了 . Net ,然后,我發現,做圖形界面是如此的爽呼呼,于是乎,一個人拼命地學,拼命地學 .Net,然后開始拼命地寫我那個時候我所認為的所謂的軟件,寫一些數學工具,一些小游戲,也將一些諸如迷宮,八皇后的算法題從 C++ 改成 C# 寫的應用程序,然后就是做  Web  開發,學了很多很多,也做了很多的諸如什么什么的管理系統等等,但一直都感覺不再向大一學習  C++ 那么正派了,有點說不出的感覺,但也一直總結不出什么內容,不過現在算是總結出來了,因為我過早的涉及了高級語言,而忽略了真正的基礎  !

  因為總結出來了結果,所以我也越發的思考大學里面,作為一個大學生到底應該要學的是什么?

  總結了個人所認為的在技術上的幾點內容,注意是技術上的,至于做人處事上的,我自己都做的不好,沒資格在這里扯淡,英語很重要,我的英語一直不怎么的,因為英語差勁我也吃了很多虧的,甚至我現在看英文資料,我都得開著金山詞霸的劃詞翻譯,看起來的那個速度自然是不用說了,曾經我也總是想,現在國內資料那么多,要英語干嗎?呵呵,聽我一句勸,好好學習英語吧,因為你會發現,你真正要找的資料是某個不常用  API  的英文解釋,而不是要找  HelloWorld  怎么實現的中文資料,然后就是難道你以為任何一門語言都有向  MSDN  中  C#  這么全面的中文文檔?那你看看  MSDN  中 VC++ 的文檔吧!

  或許有人會說:為什么  C/C++  中文資料這么多?天吶,難道你想一輩子跟在別人幾十年后面,你知道  C/C++ 是一年出來的嗎?難道,你愿意永遠比別人了解到新知識晚幾十年?數學很重要,大學里,我數學一直都還不錯,無論是高數,還是線數,離散,我都學得不錯,也一直有些沾沾自喜,但是到現在看來,我的數學,呵呵,悲劇,學得太爛了,數學的話,我覺得各位在校的,也聽一句勸,學得越深越好,曾經,我也總是覺得數學沒一點用處,但是后來看了  OpenCV ,也和同學討論了  OpenGL ,談論了一些計算機圖形學的內容,也看了同事的一些不曉得是什么的東西,居然列那么多數學公式,關鍵是我一個都不懂,此時我才發現,計算機的世界其實是一個數學世界,你想深入了解計算機,那你得數學得學得非常牛逼,里頭全是數學,所有的東西都是數學,甚至讓我覺得,計算機搞到很牛逼了的話,那么一定可以成為一個牛逼的數學家了,或許各位會說,我只局限在我所了解的領域里面了,因為在  .Net 中,數學似乎一點都不重要呢,但是我會反問,難道你又不是局限在 .Net  中了,或許,你覺得微積分,常微分方程離我們很遠,其實,你錯了,它離我們很近,你總有一天會發現的,呵呵,其實數學的重要不重要,關鍵在于你想不想真正的呆在這一行里面;

  匯編很重要,弄到這里,應該會有很多人反對了,因為,向匯編這種東西,在搞 Java  和 .Net 的這些高級語言程序員眼里,那早就應該是過時的內容了,呵呵,其實我以前也是這么覺得的,畢竟,有本事你拿匯編做個  Web 應用程序出來看看,呵呵,以前多幼稚的想法啊,人家<<瘋狂程序員>>里頭的絕影就是弄的匯編,不曉得現在混得咋樣咯,應該不會差那頭去吧,畢竟人家弄的是匯編,確實,那匯編做應用軟件或者 Web 應用程序的話,確實太牽強了,但是為何我現在搞 .Net 這么多年了,反而回過頭來學習匯編了呢?因為我發現,我對內存的管理,對寄存器中的內容,對整個 .Net  的底層,對所有的一切都掌控不了,曾經看一本書,好像是<<Sql  Server  2005  高級程序設計>>吧(一本  Sql  Server  方面的巨著,這里擅自推薦一下),里面的作者就說了,計算機中最害怕的事情就是不可預料,無法掌控,而且匯編語言中,對內存的尋址,以及寄存器的使用都有非常好的解釋和頻繁的使用,通過學習匯編,你可以更好的理解地址總線,數據總線,控制總線和 CPU 以及內存之間真正的工作流程,以及它們之間的一些最基層的協作關系,同時也能理會內存最真實的使用,而不會向無頭蒼蠅一樣,甚至連內存是什么都不知道,只會說,我只要分配內存即可,只要  new  就 OK 了,當然如果你只想做到你所要的  new  的話,我也沒有辦法,我只能說你還不夠狂熱,不夠專業,不是合格的程序員;

  計算機組成原理和編譯原理,計算機組成原理的重要性是不言而喻的,畢竟考研專業課中,這東西好像還占蠻大的比例的,至于這編譯原理嗎,肯定又有人反對編譯原理了,說,又不讓你自己搞編譯器,學什么編譯原理,呵呵,說的也不錯,但是我想說的是,并不是你想搞什么你才去學什么,眼光放遠點,你會發現,你的世界里并不是只有 .Net  和 Java,而且在編譯原理這東西里面,你確實能夠學到很多東西,就比如,如果當初設計  Java  的是你,你會想到先將程序編譯成字節碼,然后再使用解釋器來解釋字節碼嗎?我想,你肯定想不出的 ~~~

  操作系統,操作系統,這個名詞聽著都感覺很嚴重,畢竟,在操作系統被  Windows  壟斷的環境下,也確實很難有人愿意接受操作系統是很重要的東東了,甚至覺得學習操作系統就是學習如何在  DOS  環境下,敲個命令出來一大堆東西,或者覺得學習操作系統就像是學習  <<Windows  操作系統一千招>>一樣,能夠打開個注冊表,能夠優化一下電腦,改變一下電腦啟動畫面,那就是學習操作系統了,又覺得以后操作系統這東西就給微軟去做吧,如果你真這樣想的話,那我只能說,真是個悲劇 !

  我想說,如果你覺得操作系統不重要的話,那你真是錯到家了,大學里頭,我一開始也是帶著混的心態混過的操作系統課程的,但是在考試前一個星期,我居然迷戀上了操作系統,那可真是作死的看操作系統啊,整整在一個星期里,我拿著<<操作系統概念>>看了 2 遍,甚至在看完 2 遍中文版的之后,我還準備去啃原版的,無奈英文水平太差,最后只能作罷,經過了那次的操作系統的學習后,我自以為操作系統我掌握的還不錯了,但是后來,我發現,我一直都在追趕操作系統里面的知識,從我寫驅動程序開始,我就一直在追趕操作系統,為此,我重新學習操作系統,看  Windows  內核原理,看  Windows  分析,看內存管理,看進線程調度,看  CPU  調度,看  I/O 管理,即插即用管理等等,看了很多,至今我都覺得,我在操作系統這一塊還很欠缺,很欠缺,我越往深處學習,我就覺得我越欠缺操作系統的知識,現在也還正在打算到哪里再去找些什么資料來填補空缺呢,呵呵,說了這么多,我只是想糾正現在大學里頭很多人認為操作系統不重要這一觀念,操作系統真的很重要,很重要!

  C/C++,這兩個東西我想不必多說了,只是在這里奉勸那些和我當年幼稚想法一樣的說  C/C++ 做不了什么用的人,如果這兩個東西,你錯過了,你補都補不回,其實啊,我們被大學里頭的老師害慘了啊,曾經我的  C++ 老師就說,美國什么航空火箭發射上天后失敗,直接掉了下來,照成  n  人死亡,損失慘重,而這一切竟然是一個指針惹的禍,所以,我們  C++  老師就跟我們說,指針這個東西很危險,少接觸為妙,哈哈哈,真被害慘了,后來才發現 C/C++ 如果沒有了指針,那就真的一點用處都沒有咯 ~~~

  還有,當年老師教  Goto  語句的時候,老師只講了一句話:這東西,影響程序邏輯性,造成程序可讀性差,所以大家禁用。呵呵,現在出來,這個  Goto 語句也還是經常看到的(這里我并不是推廣使用  Goto 語句哦,只是有些東西,并不是說老師不教我們就可以不學的,也不是我們不學,以后就不會碰到要使用的情況的)勸誡各位,千萬不要看不起黑框框,來句形象點的:一切圖形界面都是過眼浮云,我最慶幸的是,我當初對 C++ 還執著過那么一年半,所以,也還算有一點點,也就是一點點底子而已,拿最簡單的說,人家  Windows  還是 C 寫的呢,人家  Oracle  也是  C  寫的呢,你還敢說  C/C++ 沒用 ?

  然后,那你又會說,那些都是做的系統集成,系統軟件,呵呵,那我現在給公司里寫的也都是  C  寫的呢,而且寫的環境還是在黑框框里頭寫的呢 (Dos  環境下編譯調試),那你現在還會很鄙視黑框框嗎 ?

  數據結構和算法,對數據結構還好,在大學里,還是有很多人意識到了數據結構的重要性的,而且,基本上上課的老師也會稍微強調一下數據結構的重要性,呵呵,所以,在大學里頭,這門課缺課的人還是比較少的,確實,如果等到各位將來研究一些稍微底層的代碼時,或者如果有機會寫系統軟件的時候,你會發現,底層里頭的鏈表那個多啊,循環鏈表,雙向循環鏈表,平衡數,順序表,最小生成樹等等用的到處都是,當然啦,現在 C# 里頭,大家或許很少有機會接觸到了,要隊列有隊列,要表有表,要字典有字典,要什么有什么,一般來說一個字典,一個  Array , 一個泛型基本上全部搞定,但是忘了告訴各位,用得這么方便可是需要付出代價的哦!

  而對于算法的話,現在感覺越來越不受重視了哦,甚至很多學校都不開算法課了,只是一個簡單的數據結構帶過而已,所以很多人也都不曉得貪心算法,動態規劃等了(說實話,我也不太懂了,不過打算有時間去補補),都是高級語言惹得禍(注意,這里不是抨擊高級語言哦),把算法都封裝的那么好,說實在的,如果真不做大的系統的話,算法這東西真的很多都可以不需要掌握了的,但是,如果,這世界上每一個人都這樣想的話,就不會有  Windows  ,Oralce 了,殊不知,Windows  整個結構的復雜性,其中調度算法的使用,也殊不知,Oracle  體系結構的復雜度,其中緩存處理算法的復雜度等等。

  如果你只想在  .Net  上用用別人的東東,或者說是有空拿個循環玩玩的話,算法這東西確實跟你隔得很遠了,但是,難道你愿意這樣???你去看現在年薪高的程序員,哪一個不是算法高手?呵呵,這就是差別哦。

  數字電路和模擬電路,說到這里,更多意見應該會冒出來了,咱搞軟件的,為什么要搞這些東西呢?

  呵呵,如果真的不用搞這些東西,大學里就不會開這些課咯,博客園里頭搞 .Net  的居多,搞  Web 開發和 .Net 應用軟件開發的居多,而現在市場上搞  Java  和  .Net 的又是居多,所以設計到數字電路和模擬電路的內容不多,

甚至是一片空白,所以也就覺得這兩東西真是扯淡,說真的,我很能體會大伙的心情,因為我以前也是這樣覺得的,但是,大家眼光放開點,真的放開點,這個世界上真的就只有  Java  和 .Net 了嗎?而除了  Java  和  .Net  以外,很多其他地方,對于數字電路和模擬電路都是要求很高的,尤其現在社會上很缺模擬電路方面的人才哦,而且,理解了這兩個東西以后,對于自身理解程序的具體怎么跑的,為什么能輸出個字符,為什么能執行計算操作都是很有幫助的,而不會像一個碼農,連自己在做什么都不知道,這也就是所謂的不可預知!

  計算機網絡,這個東西呢,說真的,也不好說,當今早就過了以前那個計算機只是用來做計算的時代了,現在是網絡的時代,如果你真不懂網絡,說實在的,你連程序員都不適合,不要求你有多深的掌握,但是  TCP,UDP 還是要分得清吧?TCP/IP 協議五層結構總的知道吧?

  數據具體的流動過程也要有所了解吧,呵呵,都是很基礎的東西啊,可是,這些基礎卻是最重要的東西。

  總結

  上面總結出來的幾門課程,都是我認為大學里頭,在計算機中最最基礎的課程了,但是,這些課程卻被很多大學給忽略了,從而也被很多大學生給忽略掉了,而諸如軟件工程,數據庫,軟件項目管理之類的課程我在這里沒有提及,因為,那一塊過多涉及軟件方向了,會限制到一些思維,所以我沒有提及。現在的大學里(像我所在的學校),側重點已經變咯,培養學生事小,撈到收入才是最重要的了,學校為什么拼就業率啊?就業率高了,自然學生來得多,學生來得多,自然,國家給的錢多,自然,腰包里錢更多,然后又大肆拼就業率,拼就業率,那就得多讓學生接觸所謂的現在社會上所需要的(Java  和  .Net  程序員),如何培養出這樣的程序員呢?交給培訓學校吧 . . .

  甚至,似乎今年還推出了一個新的專業,是和牛耳培訓學校合作的一個軟件外包專業,呵呵,專業外包人才,靠 . . . 名字真好聽 . . . 要我說,學校太不負責了 . . .說實在的,以前,有一些不同意老趙對培訓學校的觀點的,但是,現在看來,也還是有一些同意了(但培訓學校確實還是有一些作用的,或許會培養人,但是我覺得也會害死人),通觀全文,可能有讀者會覺得我在反對高級語言,其實,我一直都在努力地避開這個話題,因為,我本身的意愿并不是反對高級語言,只不過,我覺得大學里頭的學生,尤其是大一,大二,大三的學生,他們不應該過早的接觸到高級語言,如果他們基礎真的好了,那他們到哪里都可以展翅,當然,等到基礎好了,學起高級語言來也是手到擒來的 . . .

  還有就是需要解釋一下,現在大學里頭流傳的:學基礎課程是找不到工作的 !只有  Java  和  .Net  才是王道;我的回答是放屁 !

  好了,拍磚的拍磚,要罵的請先給出理由,然后再罵,最討厭什么都不標明就進行人身攻擊者!

  同意的請頂起,反對的請說出理由,也算是給學弟學妹們一個指導!

  歡迎轉載,但轉載請注明:     轉載自    Zachary.XiaoZhen - 夢想的天空

5
0
 
標簽:學習
 
 

文章列表

arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(1) 人氣()