學計算機的若是你有耐心看下去,我敢保證這絕對是一種收穫
大師提醒: 計算機專業不是學編程,而是懂得計算機的工做原理,以及和計算機相關的學科技術。一個高手沒必要懂得編程,coder是最底層的人物,最重要的是思想,解決問題的思想。對計算機專業的學生來講,英語和數學也是最重要的。編程不用於實際,編得最好也是花哨,毫無心義。對於初學者來講,應該懂得更多的why 原理,而不是更多的how,那是工做後的事情。 每一計算機學者都應該有本身的思想,不要跟着別人走,不要看着別人用什麼新技術做出什麼來的時候,你就心動了,也就想立刻學這門技術。而是有本身的學習思路,和本身學習的方向。 1.不爲編程而去編程。 2.學習計算機的原理和核心部分。 3.用形象的思惟去學習,追求本質。 4.計算機的相關行業。linux
對一個初學者來講,IT界的技術風潮是不能夠追趕的,並且也沒有能力去追趕。我時常看見本身的DDMM們把課本扔了,去賣些價格不菲的諸如C#, VB.Net 這樣的大部頭,這讓我感到很是痛心。 而許多搞不清指針是咋回事的BBS站友眉飛色舞的討論C#裏面能夠不用指針等等則讓我以爲可笑。C#就象當年的ASP同樣,「忽如一晚上春風來,千樹萬樹梨花開」,結果許多學校的信息學院成了「Web 學院」。 96,97級的很多大學生都去作Web了。固然我沒有任何歧視某一行業的意識。我只是以爲如 果他們把追趕這些時髦技術的時間多花一點在基礎的課程上應該是能夠走得更遠的。 幾個誤區 初學者對C#風潮的追趕其實也只是學習過程當中常常遇到的幾個誤區之一。我將用一些實際的例子來講明這 些現象,你能夠循序漸進的看看本身是否是屬於其中的一種或者幾種: 認爲計算機技術等於編程技術: 有些人即便沒有這個想法,在潛意識中也有這樣的衝動。讓我奇怪的是,許多信息學院的學生也有這樣的念頭。認爲計算機專業就是編程專業,與編程無關的,或者不太相關的課程他通通都無論,極端的學生只要書上沒帶「編程」兩個字他就不看。 其實編程只是計算機技術應用過程當中一種複雜性最低的勞動,這就是爲何IT業最底層的人是程序員(CODER)。計算機技術包括了多媒體,計算機網絡,人工智能,模式識別,管理信息系統等等這些方面。程序員
程工做只是在這些具體技術在理論研究或者工程實踐的過程當中表達算法的過程。編程的人不必定對計算機技術的瞭解就必定很高。而一個有趣的現象是,很多大師級的計算機技術研究者是不懂編程的。網上的炒做和現實中良好的工做待遇把編程這種勞動神祕化了。其實每個程序員內心都明白,本身這些東西,學的時候並不比其它專業難,因此天然也不會高檔到哪裏去。 咬文嚼字的孔乙己做風: 我見過一本女生的《計算機網絡原理》教材,這個女生象小學生同樣在書上劃滿了橫槓槓,筆記作得滿滿的,打印出來必定比教材還厚。我不明白的是,象計算機網絡原理這樣的課程有必要作筆記?咱們的應試教育的確害了很多學生,在上《原理》這一類課程的時候許多學生象學《馬列原理》同樣逐字背誦記憶。 這乃是我見過的最愚蠢的行爲。所謂《原理》,便是須要掌握它爲何這樣作,學習why,而不是how(怎樣作)。極端認真的學生背下以太網的網線最大長度,數據幀的長度,每一個字段的意義,IP報頭的格式等等,可是忘了路由的原則,忘了TCP/IP協議設計的宗旨。總之許多人花了大量的時間把書背得倒背如流卻等於什麼也沒學。 在學習編程的時候這些學生也是這樣,他們確切的記得C#語法的各個細節。看完了C#教程後看《Thinking in C#》(確實是好書),《Inside C#》,《C# reference》,this C#,thatC#……,而後是網上各類各樣的關於C#語法的奇聞逸事,而後發現本身又忘了C#的一些語法,最後回頭繼續惡補……。有個師弟就跟我說:「C# 太難了,學了這裏忘了那裏,學了繼承忘了模板。」個人回答道:「你不去學就容易了」。我並無教壞他,只是告訴他,死摳C#的語法就和孔已己炫耀茴香豆的茴字有幾種寫法同樣毫無心義。你根本不須要對的C#語法太關心,動手編程就是了,有不記得的地方一查MSDN就立馬搞定。我有個結論就是,實際的開發過程當中對程序語法的瞭解是最微不足道的知識。這是爲何我在爲同窗用Basic(我之前從沒有學過它)寫一個小程序的時候,只花了半個小時看了看語法,而後再用半個小時完成了程序,而一個小時後我又徹底忘記了Basic 的全部關鍵字。 不顧基礎,盲目追趕時髦技術: 終於點到題目上來了。算法
大多數的人都但願本身的東西可以立刻跑起來,變成錢。這種想法對一個已經進入職業領域的程序員或者項目經理來講是合理的,並且IT技術進步是如此的快,不跟進就是失業。可是對於初學者來講(尤爲是時間充裕的大中專在校生),這種想法是另人費解的。一個並未進入到行業競爭中來的初學者最大的資本即是他有足夠的時間沉下心來學習基礎性的東西,學習why 而不是how。時髦的技術每每容易掌握,並且愈來愈容易掌握,這是商業利益的驅使,爲了最大化的下降軟件開發的成本。但在IT領域內的現實就是這樣,越容易掌握的東西,學習的人越多,並且淘汰得越快。每一次新的技術出來,都有許多初學者跟進,這些初學者因爲缺少必要的基礎而使得本身在跟進的過程當中花費大量的時間,而等他學會了,這種技術也快淘汰了。基礎的課程,比方數據結構,操做系統原理等等雖然不能讓你立馬就實現一個linux(這是許多人嘲笑理論課程無用的緣由),但它們可以顯著的減小你在學習新技術時學習曲線的坡度。並且對於許多關鍵的技術(比方Win32 SDK 程序的設計,DDK的編程)來講甚至是不可或缺的。 一個活生生的例子是我和個人一個同窗,在大一時我還找不到開機按紐,他已經會寫些簡單的彙編程序了。我把大二的全部時間花在了彙編,計算機體系結構,數據結構,操做系統原理等等這些課程的學習上,而他則開始學習HTML和VB,並追趕ASP的潮流。大三的時候我開始學習Windows 操做系統原理,學習SDK編程,時間是漫長的,這時我纔可以用VC開發出象模象樣的應用程序。我曾一度由於同窗的程序已經可以運行而本身還在學習如何建立對話框而懊惱不已,但臨到畢業才發現本身的選擇是何等的正確。和我談判的公司開出的薪水是他的兩倍還多。下面有一個不很恰當的比方:編程
設學習VB編程須要4個月,學習基礎課程和VC的程序設計須要1年。那麼若是你先學VB,再來學習後者,時間不會減小,仍是1年,而反過來,如 果先學習後者,再來學VB,也許你只須要1個星期就能學得很是熟練。 幾個重要的基礎課程 若是你是學生,或者若是你有充足的時間。我建議你仔細的掌握下面的知識。個人建議是針對那些但願在IT技術上有所成就的初學者。同時我還列出了一些書目,這些書應該都還能夠在書店買到。說實在的,我在讀其餘人的文章時最大的心願就是但願做者列出一個書單。 大學英語——不要以爲可笑。我極力推薦這門課程是由於沒有專業文檔的閱讀能力是不可想象的。中文的翻譯每每在猴年馬月纔會出來,而如今的許多出版社乾脆就直接把E文印刷上去。學習的方法是強迫本身看原版的教材,開始會看不懂,用多了天然熟練。吃得苦下得狠心絕對是任何行業都須要的品質。 計算機體系結構和彙編語言——關於體系結構的書遍地都是,並且也大同小異,卻是彙編有一本很是好的書。《80x86彙編語言程序設計教程》(清華大學出版社,黑色封面,楊季文著)。你須要着重學習386後保護模式的程序設計。不然你在學習現代操做系統底層的一些東西的時候會以爲是在看天書。 計算機操做系統原理——咱們的開發老是在特定的操做系統上進行,若是不是,只有一種可能:你在本身實現一個操做系統。不管如何,操做系統原理是必讀的。這就象咱們爲一個芯片製做外圍設備時,芯片基本的工做時序是必需瞭解的。這一類書也不少,我沒有發現哪一本書很是出衆。只是以爲在看完了這些書後若是有空就應該看看《Inside Windows 2000》(微軟出版社,我看的是E文版的,中文的書名想必是Windows 2000 技術內幕之類吧)。 小程序
數據結構和算法——這門課程可以決定一我的程序設計水平的高低,是一門核心課程。我首選的是清華版的(朱戰立,劉天時)。不少人喜歡買C#版的,但我以爲沒有必要。C#的語法讓算法實現過程變得複雜多了,並且許多老師喜歡用模塊這一東西讓算法變得更復雜。卻是在學完了C版的書之後再來瀏覽一下C#的版的書是最好的。 軟件工程——這門課程是越到後來就愈加現它的重要,雖然剛開始看時就象看馬哲同樣不知所云。個人建議是看《實用軟件工程》(黃色,清華)。不要花太多的時間去記條條框框,看不懂就跳過去。在每次本身完成了一個軟件設計任務(無論是練習仍是工做)之後再來回顧回顧,每次都會有收穫。 Windows 程序設計——《北京大學出版社,Petzold著》我建議任何企圖設計Windows 程序的人在學習VC之前仔細的學完它。並且前面的那本《Inside Windows 2000》也最好放到這本書的後面讀。 在這本書中,沒有C++,沒有GUI,沒有控件。有的就是如何用原始的C語言來完成Windows 程序設計。在學完了它之後,你纔會發現VC實際上是很容易學的。千萬不要在沒有看完這本書之前提早學習VC,你最好碰都不要碰。我知道的許多名校甚至都已經用它做爲教材進行授課。可見其重要。 上面的幾門課程我認爲是必學的重要課程(若是你想作Windows 程序員)。 對於其它的課程有這樣簡單的選擇方法:若是你是計算機系的,請學好你全部的專業基礎課。若是不是,請參照計算機系的課程表。若是你發現本身看一本書時沒法看下去了,請翻到書的最後,看看它的參考文獻,找到它們並學習它們,再回頭看這本書。若是一本書的書名中帶有「原理」兩個字,你必定不要去記憶它其中的細節,你應該以一天至少50頁的速度掌握其要領。儘量多的在計算機上實踐一種理論或者算法。 你還能夠在CSDN上閱讀到許多書評。這些書評可以幫助你決定讀什麼樣的書。 日三省乎己 天天讀的書太多,容易讓人迷失方向。必定要在天天晚上想一想本身學了些什麼,還有些什麼相關的東西須要掌握,本身對什麼最感興趣,在一本書上花的時間太長仍是不夠等等。同時也應該多想一想將來最有可能出現的應用,這樣可以讓你不是追趕技術潮流而是引領技術潮流。同時,努力使用如今已經掌握的技術和理論去製做具備必定新意的東西。堅持這樣作可以讓你真正成爲一個軟件「研發者」而不只僅是一個CODER。 把最多的時間花在學習上 這是對初學者最後的忠告。把每一個星期玩SC或者CS的時間壓縮到最少,不玩它們是最好的。同時,若是你的ASP技術已經可以來錢,甚至有公司請你兼職的話,這就證實你的天份可以保證你在努力的學習以後取得更好的收益,你應該去作更復雜的東西。眼光放長遠一些,這不管是對誰都是適用的。 相信你已經可以決定是否學習C#或者何時去學它了。網絡
學計算機的建議 1、給計算機專業的同窗
1.首先請你熱愛這個專業。只有這樣,你纔會從抽象的理論中找到實實在在的快樂。若是你不熱愛她,或者只由於這是個熱門專業,那麼極力要求你放棄這個專業,由於計算機是一把雙刃劍,學好了你會飛黃騰達,學很差你畢業後會極其痛苦,高不成低不就,沒有發展潛力,如同窗英語專業的人到了美國同樣。
2.不要用功利眼光對待這個學科,這絕對不是點點鼠標就能掙錢的專業。不要去想作網站掙錢,不要想*點擊率增長廣告,這個在4年前已通過時,若是你如今仍然這麼想,千萬別說出來,由於我會以爲你很土。計算級專業的成就感老是伴隨着身體上的痛苦而來,肩周炎,頸椎病,眼睛乾澀,掉頭髮,腰椎間盤突出,關節炎,不誇張,這麼帥的我工做了兩個月之後發現開始掉頭髮了。
3只弄清學什麼了,可是還不知道作什麼。咱們的課程設計過小兒科了,別對你在國外的同窗說,不然會被笑話,因此咱們要儘量的多作設計,別一我的們悶着頭作,兩三我的合做一個項目,不會交流的計算機人員30歲之後確定會下崗。題目呢,儘可能是一些簡單的底層開發,能夠去國外大學網站上搜一搜,要自信你必定能作出來,畢竟不是什麼難題,而是咱們應當具有的素質。數據結構