計算機專業的大學生課外該如何學習<轉自左飛的筆記>

1、主線

  作爲“主線學習”。我建議這樣進行:首先看這兩本書:《Windows 程序設計》(第五版),作者Charles Petzold;《Windows 核心編程》(第四版) ,作者Jeffrey Richter;毫無疑問,此兩本書必看!否則你永遠也不可能成爲一個專業的、高級的程序員(我指Windows程序員)。另,看《Windows 核心編程》以前需要有“操作系統原理”的基礎。同時,如果學的是C++(在目前,C++在中國仍然是使用最廣泛的編程語言),只看看你們的教材是肯定不夠的,除了上面說的《The C++ Programming Language》等書(挑一本看就夠了)以外,還應該看看《Effective C++ 中文版》,作者Scott Meyers。接下來,我建議你不要去學MFC了,它已經過時了,而且確實不太好用,我回想起當年學MFC的情景,總是覺得付出和得到不成正比。這時候可以去學“.NET”編程了,先學一下C#的語法(Tom Archer的《C#技術內幕》還算不錯),你會發現它極容易,可以飛速的看完,因爲你已經有了很好的C++基礎了。然後再找一本比較全面介紹“.NET”的書看起,現在的話,我覺得《.NET 程序設計技術內幕》是個不錯的選擇,作者Jeff Prosise。我這裏不是說學“.NET”就看這兩本書就OK了,但是作爲一個“學生”,能看到這裏就不錯了(當然你要是覺得還不夠的話可以去看看Jeffrey Richter的《Applied Microsoft.NET Framework Programming》)。還有,在學習各種編程技術期間編一些自己的小程序是必不可少的,不然的話,你會學什麼忘什麼。最後,再有時間的話,學一學“設計模式”(它其實很重要的,而且慢慢的你會覺得它越來越重要),書蠻多,《設計模式》值得推薦(作者Erich Gramma等),它是“設計模式”類書籍的宗師,很不錯的書,“設計模式”也是要一些實踐經驗作鋪墊的,因此你可能不能完全的理解它。

2、支線

  作爲支線,也就是說我覺得它們相對次要些。並且學習它們可以不分先後次序,但是,我還是建議先看完上面說的前三本書(《Windows 程序設計》、《Windows 核心編程》、《Effective C++ 中文版》)以後再來學下面的東西。

  “Java”。。把“Java”作爲支線一定會引起很多人的不滿,或者說是憤慨,當然,你也可以把它作爲主線來學,用來替代上面說的“.NET”。可是根據我自己的體會,“.NET”擁有更多的優勢,如果你不同意我的觀點,當然可以去學“Java”,沒問題。但是作爲一個“初學者”,我還是建議你兩樣都學一下,這樣自己纔能有比較,才能爲自己的將來選擇一條更適合自己的“技術路線”。另外,時間還是多的(主線中才提到了六本書),而且,我這裏說的“學Java”只建議你看一本書:《Thinking in Java》,這本書可以說是入門的絕佳選擇,至於以後怎麼繼續學習“Java”,可以去看看蔡學庸在CSDN上的專欄文章,裏面講得很詳細了。
 
  “網絡編程”。。這個東西我想很多人都是比較嚮往的。我建議如果想做到對網絡編程“比較精通”的話,應該去看看《Windows 網絡編程技術》(第二版),作者Anthony Jones。這本書和上面講的《Windows 程序設計》屬於同一個技術層次,都是用“Windows API”直接編程,學這類東西的好處是能使你不僅“知其然”而且“知其所以然”。但是,如果立志要學“Java”的,也可以跳過這本書,直接看《Java Network Programming》,是O'Reilly的書,作者我忘記了。至於“.NET”方面,我還沒發現專門講網絡編程講得特別好的書,自己去找找吧。(其實一般的“.NET”書籍中已經有大量關於網絡編程的內容了)

  “COM”。。“以前的學習方法”是先看《深度探索C++ 對象模型》,作者Stanley B.Lippman;再看《COM 本質論》(作者Don Box)的前面兩章,然後看《COM 原理與應用》(作者潘愛民),再回過頭來看《COM 本質論》的後面部分。《COM 本質論》的前面兩章講得極好,它用最能讓人理解的方式講述了“什麼是COM”,但這本書的後面部分比較晦澀,如果沒有一點實際的“COM程序編寫經驗”,就很難理解了,所以我提到這裏要插進來看一看潘愛民的《COM 原理與應用》。但是,這裏有一個問題,《COM 原理與應用》裏的應用部分使用的是MFC和ATL(抱歉我又提到了這些過時的東西,我只是對它們太熟悉了),我前面曾建議大家不要去學MFC了,於是產生了矛盾,請恕我無知,在當前的情況下,我不太能肯定要怎麼學習“COM”纔是最有效的,這裏我確實不能給大家“更新的方法”了。但是現在隨着“.NET”的推進,“COM”的生存空間似乎是越來越小了,因此“到底要把COM學到什麼程度”也幾乎成了“到時候看情況再說”的問題了。但是,我覺得無論如何瞭解一下“COM的基本思想”還是能帶來莫大的好處,它太經典了!也就是我上面說的《COM 本質論》的前面兩章。

  “DDK”。。所謂“DDK”就是“設備驅動程序”,這屬於一個相對冷僻的方面,但事實是“正因爲它冷僻,所以這方面的技術人員的收入還是不錯的”,但是“DDK”的知識對你學習別的很多東西(比如“.NET”、“Java”)都不會帶來任何的幫助,它比較獨立。所以我的建議是“在你還沒有能力確定以後自己的專攻方向時,不要去學它”,因爲它實在也不太好學。我對它只是略知一二,所以也只能說到這裏就作罷了。不過可以給你推薦一本書:《Programming Microsoft Windows Driver Model》,(作者Walter Oney)。

  好了好了,再下面就絕對要超出“初學者”的範疇了。其實學到這裏,再加上你已經積累了一定的實際經驗了,那下面再要學些什麼,路要怎麼走,就一定會有自己獨立的想法了。我就不再廢話了。

個人認爲此文的基本思想比較可取,另外其中推薦的書籍也的確是經典之作。不過人各有志,大家各取所需,兼聽則明吧。

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