計算機專業學習方法有哪些
當今社會是一個高速發展資訊時代。在各行各業中都離不開資訊的處理,計算機已經被廣泛應用於資訊管理系統。我們的生活越來越離不開電腦,不少高校中的熱門專業就是計算機專業。那麼計算機專業怎麼學習他們的專業知識的呢?想了解更多學習計算機專業的方法的資訊嗎,和小編一起看看吧!
學習計算機專業的方法
一、廣泛瞭解,從科普書籍開始
選擇計算機專業的同學,也許是因為原先有一定的基礎,也許是因為一時的激情,但更多的人,可能對自己的選擇沒有深刻的認識,或多或少對計算機專 業有一些神祕的感覺。自己究竟是否喜歡這個學科?才華能夠在哪個分支領域有所施展?抑或是真的不適合這個專業?諸多疑問,解決的方法首先便是瞭解和認識我 們的學科。濃厚的興趣是學好任何學科的源泉;而廣泛的瞭解則是獲得興趣的途徑。當今我們對於資訊的獲取已非難事,其中“閱讀”是一個簡潔而有效的方法。
也許你認為閱讀專業書籍對於剛剛步入大學的自己來說有點困難,也很枯燥,那麼不妨先從科普書籍看起。科普書籍是瞭解理論、獲得應用知識最好的途 徑。相信不少理工科的同學被量子物理和相對論搞得頭昏腦脹過。究其原因,是我們的現實生活與抽象的數學模型之間存在思想意識上的鴻溝。然而要是讀讀斯蒂 芬·霍金的《時間簡史》,你就會被書中有趣的故事和例證所吸引,從而對抽象的理論有了感性的認識——即使仍然沒有讀懂,你也至少了解了這個學科研究的領域 和目標是什麼,也必然有所收穫。所有理工學科都有這樣的性質,計算機專業也不例外。
我們知道,計算機理論是建立在數學基礎之上的。大學計算機專業對數學的要求較高,其重要性不必多言。數學令不少同學頭痛,除了其“繁”與“難” 外,很大程度上是因為他們沒有理解這些抽象理論的實際應用方向。與本科數學專業的課程設定相比,計算機專業的數學課程大都偏重實用性。比如我們的離散數學課程中涉及到的邏輯代數奠定了計算機一切運算的基礎,形式語言構成了計算機程式編譯的模型,代數系統則是當前各類資料庫系統的理論依據等等。因此,如果能夠提前地瞭解到並簡單地學習一下這些數學知識的具體應用,對理解理論是很有益處的。此外,電子學、訊號與系統、控制理論等也是計算機專業學生必修的公共課,然而不少同學往往認為它們與計算機專業的關係不大,從而放鬆了學習。事實上這些學科是計算機硬體與網路通訊的基礎,學好這方面知識的前提是認識它們的現實應用及其與計算機的密切聯絡。
也許你將來學習圖論的時候,對“尤拉路”的概念會很清晰,這是因為你在小時候的圖畫書上玩過“一筆畫”的遊戲;然而“二分圖”、“生成樹”這些概念又是怎麼回事呢?你的理解可能就不是那麼深刻了——因為你一時難以找到一些生活中的例項,並從中抽取出特性。在這種情況下,翻閱一些涉及這些知識的科普書籍就十分有必要了。我曾讀過一套《數學遊戲》***《科學美國人》雜誌彙編,中文版:科學技術文獻出版社***,它將圖論、邏輯代數、自動機理論等領域的抽象的概念具體化為一個個有趣的故事,引導讀者瞭解這些知識的現實應用,啟發讀者將抽象思維與感性生活有機結合。我還讀過一本《編碼的奧祕》***《CODE》, 中文版:機械工業出版社***,它則將邏輯代數、數位電路、組合語言等知識以實物和簡單電路的形式進行類比,揭示其中的原理,並引導讀者動手實踐。事實上這類與計算機專業相關的科普書籍還有很多,在學習課本的間隙閱讀一下,絕對能起到催化劑的作用。
談到科普書籍,相關的另一個問題便是電腦科學與計算機技術之間的關係。也許不少同學選擇計算機專業,是源於對計算機令人眼花繚亂的應用的認識。所謂計算機技術,一般是指包括文書處理、資訊管理、多媒體、網站建設等在內的計算機應用技術;而所謂電腦科學,一般指資料結構、組成原理、作業系統、編譯原理等計算機內部實現機制。前者是計算機在各行各業提高生產力的體現,屬於各類職業教育和專科教育的範疇;而後者是研究是計算機本身的理論,是本科計算機教學的重點。市面上大多數計算機書籍與雜誌是計算機應用技術方面的,屬“技術普及型”,從受眾角度來看與科普書籍有著類似的性質。適當地涉獵一些自己感興趣的應用技術,對培養學習興趣、增強實踐能力、瞭解業界行情是很有好處的。不過如果確實想在計算機行業長期做下去,仍然應當將主要精力放在對電腦科學的學習方面。畢竟用科學的理論指導實踐是大學教育的意義所在。
總之,廣泛瞭解計算機學科基礎科普知識,在今後學習具體理論的時候才會少一些盲目,多一些頓悟。
二、把握全域性,學習計算機導論
當你對計算機學科涉及的領域有所瞭解後,就應該著手展開專業學習了。初讀本專業的教學計劃與課程設定,你或許會被諸如離散數學、編譯原理、介面技術等生疏的課程名稱弄得一頭霧水。這些課程都是研究什麼的?它們各自與我們面前的計算機有哪方面的聯絡?要回答這類問題,首先需要把握全域性,從整體上認 識電腦科學。
國內高等院校一般都為大一學生開設計算機基礎課程。這類課程的受眾面廣,主要涉及計算機基礎應用知識。各種版本的計算機基礎教程幾乎都以電腦科學導論作為開篇。對於把計算機作為應用工具的其他專業的學生而言,導論只算是“內容概要”,他們往往更注重後面的應用型知識;而對於把計算機作為研究物件的我們,則決不能忽略這類指導性的內容。專門地、有意識地學好電腦科學導論,能夠使你對電腦科學有一個大局觀,清楚地認識到每一個分支學科的研究領域與重要意義,從而在今後的具體學習中明確方向,加深理解。
依我個人的學習經驗,建議初學者閱讀一些國外優秀計算機基礎與導論教材。與國內大多數講解軟硬體具體使用的同類教材相比,國外教材更偏重以應用為切入點,深入淺出地闡述電腦科學原理。諸如《計算機文化***第8版***》***《New Perspectives on Computer Concepts》,中文版,機械工業出版社***、《電腦科學導論》***《Foundations of Computer Science: From Data Manipulation to Theory of Computation》,中文版,機械工業出版社***:前者適合於各種資訊類專業的學生或計算機愛好者閱讀。該書圖文並茂,語言生動,從應用角度出發,廣泛涉及計算機軟體、硬體、網路的基本原理,同時概述了計算機學科的歷史背景與行業現狀。隨書的光碟中給出了不少影音材料,在學習的同時還可以提高計算機專業英語聽說能力。後者在風格上與前者類似,但內容更適合計算機專業學生閱讀,被美國不少高校定為計算機專業學生的入門課。它以例項作為出發點,系統地講解了計算機組成、計算機網路、作業系統、資料結構、演算法設計等分支學科的研究領域、基本原理和應用方向,而幾乎不涉及晦澀的數學模型與實現細節。閱讀此類書 籍,可以在潛移默化中理清初學者對於電腦科學學習的思路。
電腦科學是一個有機聯絡的整體,每個分支都或多或少地與其它分支存在依賴關係。如果死板地依照教學計劃線性地進行學習,往往會遇到知識理解上 的問題。例如演算法分析課程與程式設計課程分屬理論與實踐;組成原理課程與體系結構課程是對計算機系統不同層面的剖析。我們不能簡單地找出它們的先修、後修關係,這樣難以建立完整的知識體系。因此在把握大局之後,我們仍有必要簡單瞭解一下每個分支學科的基礎知識。在這方面,推薦大家閱讀《程式設計卓越之道***第一卷***:深入理解計算機》***《WRITE GREAT CODE: Volume 1:Understanding the Machine》,中文版,電子工業出版社***這本書。分開來看每一章節,其內容編排結構與國內高校計算機課程體制相近,涵蓋了邏輯代數、數位電路、機器指令、體系結構、儲存器管理等方面的基礎知識和實現方法,特別是闡明瞭各個分支學科之間的本質聯絡。有了這些基礎之後,在遇到更高階的問題時,你至少會明白這個問題應該在哪個分支學科中尋找答案了。
當你有了一定的計算機理論基礎,尤其是程式設計基礎後,想更加深入地把握電腦科學的脈絡,不妨看看這本書:《深入理解計算機系統***修訂版***》 ***《Computer Systems A Programmer’s Perspective》,中文版,中國電力出版社***。它與《程式設計卓越之道》系列的共同特點是從程式設計師的視角觀察計算機系統。而這本書作為國外數十所高校的計算機系統導論教材,其組織更加嚴密,風格更加嚴謹。它以“程式在計算機中如何執行”為主線,全面闡述計算機系統內部實現的諸多細節。當你在學習資料結構、組成原理和體系結構等課程和時候,翻閱一下此書的相應章節,同時程式設計實現其中的例子,一定會對課本上單純的文字型理論有更加感性的認識——原來它們是 這樣活生生地存在於我的計算機裡的!
正所謂“會當凌絕頂,一覽眾山小”,從電腦科學全域性的高度整體把握其分支學科,在頭腦中率先構建電腦科學的整體框架併為其夯實最基層的結構,就能夠為你在未來每一步的學習中掃清迷霧,指明方向。
三、運籌帷幄,掌握程式設計的思想
程式設計與開發是計算機學習的一個關鍵環節,程式設計能力是衡量一名計算機專業人員素質的重要考核點。這是因為程式是連線理論與實踐的紐帶,是電腦科學與計算機技術相交融的領域。作為一名計算機專業學生,我們一方面有別於其它專業將計算機作為工具的應用型人才,不能僅僅利用計算機,而要為他人利用計算機提供平臺;另一方面我們暫時達不到電腦科學家的水平,不能做出理論研究成果,但能為理論學習鋪墊實踐基礎。因此,只有具備足夠的程式設計與開發能力,才能真正體現我們的智慧,同時充分發揮計算機的潛力。
學習程式設計,首先應掌握至少一門程式設計語言。C語言作為一種語法清晰、功能強大、應用廣泛的高階語言,長期以來被國內大多數高校的定為程式設計必修課。全面理解和掌握C語言的脈絡的重要意義這裡毋庸多言。市面上C語言的教程多如牛毛,但最經典的當數C語言的設計者Kernighan與 Ritchie 合著的權威白皮書——《C程式設計語言***第2版***》***《The C Programming Language》,中文版,機械工業出版社***。書雖不厚,但絕對全面而準確。其語言簡潔,例證通俗,實用性強。相比之下國內的一些C語言教材在學習曲線可能比前者平滑,但它們往往以考試為導向,過多地糾纏語法死角,同時大都未遵從ANSI標準。對於計算機專業學生來說,前者能夠讓我們看到更加嚴謹與實務的態度。當你的語言功底達到一定程度後,就需要從一個更高的視角來探察語言的本質,不妨看看這本:《計算機程式的構造和解釋***第2版***》 ***《Structure and Interpretation of Computer Programs》,中文版,機械工業出版社***。它闡述了程式語言本身的機制與實現,同時引入了一門對於大多數中國學生來說不甚瞭解的語言——LISP。 LISP是很多美國高校計算機專業的入門語言,也是一種結構上與C、Pascal、Java、Basic等完全不同的非馮·諾依曼語言。研讀SICP,體味LISP,給你耳目一新的感覺之後更多地可以加深對程式設計思想本質的理解。
大學的各類程式設計與開發課程旨在培養我們兩方面的能力——演算法設計能力與應用開發能力。前者偏重電腦科學,後者偏重計算機技術。演算法是用計算機思維解決現實問題的理論,具有較強的數學性。演算法學的曠世鉅著應數Knuth的《計算機程式設計藝術》***《The Art of Computer Programming》,中文版,清華、機工、國防等出版社皆有授權***,不過要徹底讀懂這個大部頭需要相當的數學理論基礎與程式設計實踐經驗積累。對於初學者,建議首先培養使用常規演算法解決小規模問題的能力,並行地提高駕馭語言的水平與抽象問題的思維。針對這個目的,結合程式設計實踐一類的課程,可以讀讀這幾本書:《程式設計珠璣***第2版***》***《Programming Pearls》,中文版,中國電力出版社***、《程式設計實踐》***《The Practice of Programming》,中文版,機械工業出版社***、《程式碼閱讀方法與實踐》***《Code Reading: The Open Source Perspective》,中文版,清華大學出版社***、《C專家程式設計》***《Expert C Programming》,中文版,人民郵電出版社***。它們的側重點各有不同,但對於通過實踐來學習演算法與資料結構都是很有益處的。
應用開發方面,實踐是第一要務,然而高效的實踐是建立在科學的程式設計方法之上的。以C語言為代表的結構化程式設計方法是規範的程式邏輯的基礎,目前主要使用在系統級開發中,前面所提到的諸多書籍都或多或少有所涉及。而以Java、C++為代表的面向物件程式設計方法廣泛應用於實用專案開發, 這方面的經典之作中,推薦閱讀Bruce Eckel的《Java程式設計思想***第3版***》***《Thinking in Java》,中文版,機械工業出版社***與《C++程式設計思想***第2版***》***《Thinking in C++》,中文版,機械工業出版社***。此外軟體架構設計、編碼規範與風格、程式碼除錯與質量管理以及軟體工程的各類原則在實際專案開發中都是及其重要的,在 具備了一定的程式設計經驗、準備投入一些實際專案開發的時候務必要了解。建議閱讀《程式碼大全***第2版***》***《Code Complete》,中文版,電子工業出版社***這本大而全的軟體構建綜合性寶典,它在從總體上指導軟體開發的各個環節的同時也引入了一些細節問題***諸如 goto的使用***的討論,引導我們對一些司空見慣的程式設計理念不但要知其然,而且要知所以然。
有一位熱衷於遊戲的同學告訴我,遊戲給予他滿足控制慾的空間。但是請放眼看看,遊戲的控制範圍不外乎一個特定程序中他人預先設定好的一系列資料,並以有限的影象與聲音形式體現出來。然而如果你掌握了程式設計這一強大的武器,就能夠面對眼前的計算機遊刃有餘,在硬體條件允許的情況下盡你所能將控制慾昇華為創造力,方便自己的同時造福他人。運籌帷幄,掌握程式設計的思想,無論走向科學研究或是應用開發,這都將為你奠定堅實的基礎!
四、理性思辨,體味計算機哲學
Bill Gates對計算機事業充滿激情——“每天早晨醒來,一想到所從事的工作和所開發的技術將會給人類生活帶來的巨大影響和變化,我就會無比興奮和激動。”自由軟體運動的精神領袖Richard Stallman幾十年如一日,將打破知識壟斷、共享人類智慧作為己任,帶領著數以萬計的軟體志願者推動著開源世界的發展。但並非每個計算機業者都能有Gates那樣豪邁的氣度和Stallman那種堅定的信仰,計算機及其相關技術對於大多數業者來說僅僅是興趣愛好或者謀生的工具。計算機行業半個多世紀 以來形成了其獨有的文化氛圍,作為一名計算機專業學生,瞭解專業文化,體味專業哲學,對於學習和從業都是具有指導意義的。
首先必須承認,計算機世界中存在著形形色色的意識理念差異。諸如微軟帝國與開源世界的明爭暗鬥,不僅僅是一場商戰,更多的是兩種哲學的搏擊。當代大學生多數是在微軟Windows光環照耀下認識計算機的。在這種環境下,多接觸一些開源世界的事物,對於理解計算機的本質不無裨益。《共創未來:打造自由軟體神話》***《Free for All: How Linux and the Free Software Movement Undercut the High-Tech Titans》,中文版,上海科技教育出版社***是一本講述開源世界發展史的書,你可以從中瞭解自由軟體運動及其領袖人物的傳奇故事,從而對GNU、 Linux、OpenSource這些概念蘊生人性化的理解。清華大學王垠的《完全用GNU/Linux工作,擯棄Windows——你我共勉》、蘭州大學黃平的《自由,你忘記了嗎?》等長篇文章則是國人對開源運動的慷慨陳辭。儘管這些文章常常被指為“偏激”,但沒有調查就沒有發言權,無論支援還是反對, 客觀的認識是第一位的。
其次,我們應該用平和的心態對待知識與技術,衡準專業學習在生活中的位置。一些同學出於種種原因,成為了“先進技術”的追隨者:通曉各類流行的程式語言,一有新版本的工具推出立即安裝學習,一有新的技術論戰立即關注其走向。還有一些同學成為了某些技術的忠實信徒:看準了Java就對.NET的東西置之不理。這些追隨者和信徒們往往為突飛猛進的技術所累,以至於有感於學習的空虛。過分追捧技術可謂捨本逐末,死扣某一知識也顯得目光短淺。一方面百變的技術離不開電腦科學的本源,在實踐過程中深入理解基礎知識是關鍵;另一方面任何技術都有統領其實現細節的思想精髓,觀其形不如知其神。我們不妨甩開冗繁的技術,換個角度靜下心來讀幾部計算機文化與哲學作品:
程式人生方面:《程式設計之道》***《The Tao of Programming》,雙語版,電子工業出版社***一書出自一位對東方道家與禪宗思想有著獨特理解的美國軟體工程師之手,全書由一則則短小而富有哲理故事組成,以類似寓言的形式生動地反映了程式設計師群體的生活以及計算機文明的演進。閒暇時隨手翻閱,即使不能立刻體會到每個故事的真諦,但隨著自身閱歷的增長,相信你會領悟程式人生的“道法自然”。
設計理念方面:開源軟體界的“鬥士”級元老Eric Raymond所著的《Unix程式設計藝術》***《The Art of Unix Programming》,中文版,電子工業出版社***一書,以Unix系統的設計原則為主線,展示了Unix所開啟的“KISS”***Keep It Simple, Stupid!***程式設計文化與思維方式。對於很多幹啃千篇一律的課本、禁錮於Windows開發的計算機專業學生來說,這本書一定能夠使你眼界大開——“結構化”並非真理,“面向物件”也不是王道;而對於有一定Unix/Linux使用或開發經驗的同學,這本書也一定會使你豁然明朗——原來一個程式的設計竟可以如此精巧!
管理哲學方面:對於有志於軟體工程,想涉足專案管理的同學,《人月神話》***《The Mythical Man-Month》,中文版,清華大學出版社***這本書就有必要讀一讀了。它拿真實案例說事,彷彿一部例項化的軟體工程課本。如果你在團隊開發的道路上陷入了困境,不如參考一下前輩們是如何處理“人”與“月”二者之矛盾的吧。事實上不僅是軟體工程,任何事業的成功,往往技術不是關鍵,社會科學的因素才是埋 頭技術的朋友們更應當關注的。
歸根結底,計算機的哲學依舊是人的哲學。拋開理念之爭議,超越技術的形式,以人為本地認識我們的行業與自身的地位,或許會使將來的發展道路走得更舒心一些。
學習計算機的“四忌”
學習電腦有“四忌”,一忌好高騖遠,要打好基礎。
對於初學者首先應該掌握Windows的基本操作。學電腦的目的在於應用,因此,學會和掌握一種文書處理軟體是必要的。二忌紙上談兵,要勤於實踐。
計算機有很強的操作性。因此對初學者來講一定要利用好各種時間進行上機訓練,將理論轉化為實際操作,這樣才能真正地消化吸收。不少人認為自己缺乏英語基礎,學電腦很困難。其實現在作業系統和很多軟體都是漢化版,不懂外語一樣能上計算機。
三忌淺嘗輒止,要精益求精。學習電腦知識除:了選擇好自己適用的教材,還要閱讀一些有關的雜誌和報紙,拓寬自己的知識面。
四忌見異思遷,要持之以恆。
計算機專業複習四大技巧
一、明確複習目標
瞭解最新考試大綱對四門課程分別規定的範圍及要求,對考試情況有初步認識;系統梳理教材當中的考查知識點,對四門課程進行深入理解,對各章節的知識體系有較為清晰、條理分明的認知。
二、緊扣考試大綱
任何一門考試,基礎知識點都是重中之重,計算機統考的這幾門課,都是計算機專業的基礎課程,並且可以考核的基礎知識點都相當多,如果想要拿高分,在考試中脫穎而出,建議考研的同學們在複習的時候必須嚴謹結合大綱,大綱上列出的知識點一定要複習到,理解及其熟練程度的訓練要到位;對於資料結構要加強動手能力的培養。
三、選擇複習材料
在此,為大家推薦幾本比較權威的參考教材,希望能對廣大考生的考研複習起到指導作用:
資料結構:
《資料結構***C語言版***》,嚴蔚敏、吳偉民著,清華大學出版社 《資料結構題集***C語言版***》,嚴蔚敏、吳偉民著,清華大學出版社 計算機組成原理:
《計算機組成原理》,唐朔飛著,高等教育出版社
《計算機組成原理學習指導與習題解答》,唐朔飛著,高等教育出版社 作業系統:
《計算機作業系統***第三版***》,湯子瀛等著,西安電子科技大學出版社
《計算機作業系統學習指導與題解》,湯子瀛等著,西安電子科技大學出版社 計算機網路:
《計算機網路***第五版***》,謝希仁著,電子工業出版社
《資料通訊與計算機網路***第二版***》,高傳善等著,高等教育出版社
四、複習階段策略
基礎階段複習當全面、細緻,結合教材對考試大綱中規定的考點進行深入的理解、掌握,腳踏實地打好基礎。認真過一遍複習教材與輔導書,對知識體系、框架有個深入瞭解,由於大家的基本情況不同,看書的進度也不相同,對於那些基礎比較好的同學,尤其是計算機專業學生,四門專業課都較好掌握的情況下,在基礎複習看書的階段可以直接看重點章節,如計算機組成原理的資料運算,儲存和CPU,仔細研究書裡面的例題和課後習題部分,深化對這部分知識的理解;對於一些基礎稍微薄弱的同學來說,建議考生們在這一階段仔細把教材過一遍,系統梳理教材當中的考查知識點。
另外由於考試大綱對各考點的考查要求存在一定的差異,相應地考生在複習時也應當注意有所側重。複習時可結合自身學習掌握的情況,對考綱中做重點要求以及自己掌握較為薄弱的知識內容上多下工夫,以求將重點、難點一網打盡。 此外,這一階段可以參加計算機考研基礎輔導班,通過課堂老師的講解可以更快的複習一遍基礎知識。