誒呀 整理的眼睛都疼了 但是仍是整理的有點亂 但願可以帶給大家很大的幫助喲要珍惜個人勞動成果。謝謝咯
方法(一)
編了這麼久的程序,一直想找機會總結下其中的心得和方法,但回想我這段編程道路,又很難說清楚,若是按照我走過的全部路來講,顯然是不可能的!當我看完了雲風的《遊戲之旅--編程感悟》和梁肇新的《編程高手箴言》我忽然知道我要從何提及,我要怎麼說了!
從接觸編程到如今已經至少要6年,雖然時間短,但我幾乎天天都在編,而編程上日新月異的仍是最近一兩年,單純編程上的進步,很簡單就是經驗,但你要理解才能夠進步的快!這就是說,你的理論課要學好,才能學好編程,操做系統,網絡原理,計算機體系結構,數據結構,編譯原理,你哪一個學的很差,你根本不配成爲編程高手,我見過的高手,這些學的都不錯!這些都是計算機的支柱,你連它的支柱都不瞭解,怎麼編程,即便你編寫的程序好——只有一個緣由,你用的是高級語言或腳本語言,由於它們封閉大量低層語言細節,讓你不用瞭解就能夠編寫,你不瞭解低層細節你雜成爲高手!
解釋什麼叫編程
我以爲如今不少同窗,根本不知道什麼叫編程!我如今告訴你,單純的編程,也就是就知道語法知識的編程,根本不叫編程,只會單純的語法的編程連低級程序員都不如!
編程不只僅是你對語法的掌握,你還要把各類技術混合到裏面,這樣才叫編程,你編程的時候,你應該問問本身,你的程序有算法嗎?你的程序寫的夠簡單嗎?速度足夠快嗎?佔用空間足夠少嗎?代碼寫的規範嗎?語句寫的標準嗎?你的程序之間的結構合理嗎?你類定義的合適嗎?方法和屬性合理嗎?接口合理嗎?等等等,包含不少東西!這就是高級程序員爲何賺這麼多錢!要付出至關大的腦力勞動!
調試對你也很重要,一個程序高手,也是調試專家,其實調試不少方法,但大多數都是實踐中獲得的!
指正如今人對學計算機誤區
如今我天天在和彙編,硬件指令 ,c和c++或一些低層API打交道,有些時候編程這個東西很難說清楚,只有你經歷了,你才能感覺到,你沒有經歷,就永遠體驗不到!
我如今要更正幾個如今學計算機人的誤區,我想回答的是,學什麼纔是學計算機!
學計算機的兩個方向:一個是純搞理論的,一個是搞實踐的。搞理論的無可厚非的,你們都認可是學計算機。那麼實踐呢?我很難給出一個定義,但我會列出那些纔是真正學計算機學的:
(1)編程,這裏的編程,我要拋出FLASH,PHOTOSHOP,3DMAX等,它們雖然也有語言,但都是爲了給美術人員提供的!也就是幾乎封閉了大量的低層細節,對於一個學計算機的人來講,若是你努力學它們,你仍是不要學計算機了,去學美術把!網頁編程能接觸到至少兩種類型語言,,HTML和ASP或JSP(PHP),HTML說實話,不該該是計算機人學的,你應該學的是ASP,JSP等!
按嚴格意義上講(但實際沒有這麼嚴格)若是你的主要必修語言,不是c ,c++,JAVA,或者硬件指令,都不算是真正學計算機的,之因此這麼說,我舉個例子,好比你用JSP,它是一個腳本語言,若是你用過這個語言,你認爲你用好這門語言須要瞭解硬件結構知識嗎?顯然不用,若是你純是JSP程序員,你須要只是,JSP語法,一些簡單的JAVA語言,SQL之類的數據庫知識,其他的你什麼都不須要,至於分析流程,那是系統分析師的事,不要和編程混爲一談,我學JSP學了3個月,現學現買就作出了功能齊全的網上書店(當時是老師佈置的做業),若是再努點力,就能夠投如使用!因此說,學JSP根本就不須要太多的專業知識,不是學計算機的也很容易就學會!
學c++,我都學了好幾年了,用它寫程序都幾十萬行,我也不敢說我學的精通!就是由於它太靈活了!不一樣人,用的效果就是不同!
因此按嚴格意義上講,若是你的主要必修語言,不是c ,c++,JAVA,或者硬件指令,都不算是真正學計算機的,也就是說,學那些對計算機專業知識不須要太多瞭解的語言,就不叫學計算機的!
(2)從事軟件方法實踐研究,這個純是軟件工程方面的,若是你沒有容入一個大項目中很難體會它的重要性,想想,一個程序,幾十萬,幾百萬行代碼,能這麼好的實現,並運行,它的功勞不小!
(3)從事低層硬件開發,這裏可能和搞電子的專業有些重疊,但事實就是這樣,他們也是學計算機的!
其他的,裝系統了,裝電腦了,用人家編好的軟件實現些圖片音樂等功能的,那都是計算機的門外漢,不要和真正學計算機的混爲一談!
我常常被問到:
你會盜qq不?我暈,學計算機的就要會盜qq?
你會裝電腦不?雖然我會,但不會並不可恥
你會裝系統不?雖然我會,但不會並不可恥
'''''''''''''''''''''''
'''''''''''''
等等把,有好多,經過我上面解釋,你應該理解學計算機的應該會什麼,不會什麼也是應該的!
正式入題,怎麼學好編程!
, 世面上好象只有這兩本是中國人寫的關於編程心得的書,中國編程好的人不少,但寫出方法很難!第一本《遊戲之旅--編程感悟》前面幾章寫的是雲風的編程經歷,後面幾章寫的是編程經驗!總的來講本書很容易讀懂!《編程高手箴言》書很難,尤爲寫操做系統那章!正如做者所說,真正寫一門編程方法學的書很難!本書前幾張歸納了當前中國軟件面臨的形式,我強烈建議看一下,寫的很經典!之前我不知道程序和軟件的區別是什麼,如今我知道了!後面幾張寫的都是編程方法和編程要具有的知識!
總結他們兩人所說的,我準備按照下面提綱來寫編程方法!
1。若是你感興趣,學計算機是一種光榮,若是你不感興趣,那麼它是地獄!
2。理論對你很重要,尤爲是你一名搞技術的程序工程師!
3。學會自學,學會思考,學會合做與交流!
4。要想成爲高手,必定要從底層學起,底層是什麼?CPU,彙編等硬件指令!
5。編程須要經驗積累,學會調試對你尤爲重要!
6。全局把握整個工程,具體到每一個類的屬性和方法以及各個類的關係!必定確保你設計的類和類模式和類間關係可以有效,利於修改和升級!歸納說就是軟件工程
下面我就分別說一下
一。若是你感興趣,學計算機是一種光榮,若是你不感興趣,那麼它是地獄!
我常常聽不少同窗說,開始他對計算機很感興趣,但隨着大學裏的學習,愈來愈感受無聊甚至厭煩!你之因此這麼想,其實一點也不怪你!從高中的應試教育到大學裏的自由學習方式上的轉變,咱們幾乎都不適應,一到大學,忽然有一種解放的感受,沒有老師的強硬指示學習,本身根本不知道怎麼學,學什麼!因此說,教育對咱們很不負責任!
若是你在大學之前已經知道編程怎麼回事,那到沒什麼事情!但好象不多有人象雲風這樣從小就接觸了編程教育!因此咱們在沒有上大學前幾乎是零起步!
其實,按個人理解,剛上大學開始學編程有些晚了,之因此這麼說,不是由於單純的編程很難,若是你很努力,幾年徹底能夠搞定,其餘的你去公司的經驗能夠彌補!我這裏想說的是,一個真正的程序員不僅僅要有強硬的編程實力,還要有強大的理論後盾!你只會編程,沒有強大的理論作後盾,你也就不會把理論轉化成實際的代碼,你也不會作出高效,高技能的程序!在計算機理論中,圖論,人工智能等等都是很難的理論,但若是你能把它們有效的用在計算機領域,功德無量!國人能作這點的不多,原本厲害的程序員就不多,有高尖端理論技術並把它應用的更是百裏挑一!
(這裏能夠推薦你們一本書《遊戲編程中的人工智能技術》,這本書拋開了傳統的自動機,產生式,各類規則的傳統的人工智能理論,而是講的更前沿的計算智能——生物遺傳算法,人工神經網絡!這本書,不單純講理論,還用c++語言結合理論實現各類遊戲程序!有時抽象的理論都是基於數學基礎之上,若是沒有必定數學基礎是很難看懂的,但正由於它有數學證實是正確的,因此它是可行的!能把它用語言實現更是可觀!)
因此,若是你熱愛計算機,在大學之前,就應該成爲一個程序高手,而大學之後,主要專研各類技術的實現,和各類技術的學習,若是你把他留在工做裏,可能很難,個人同窗在參加工做後,不多有繼續看技術書籍,由於技術書籍很難,不是一下兩下就看懂的,有幾個還有這樣的耐力和精力去搞!這些怎麼在編程上實現,都在等着老外,我們COPY,這樣咱們的軟件技術能強大嗎?
但是在大學之前成爲一個編程高手幾乎不可能,咱們沒有良好的學習編程的環境,並且面對着中考,高考的各類壓力,幾乎沒有機會去學習編程!其實,小學,初中,高學,那些課程沒有必要象咱們這樣反覆的複習,反覆的做題,浪費了大量時間,咱們要學會什麼?學會一種技能,可以應付各類變化的技能,就是自學,學會思考,學會本身解決問題,學會團結合做!初等教育,打的口號很好,實際上,徹底壓制了這種學習方式!
因此咱們應該以最快的速度,在大學裏容入一個熱愛計算機的氛圍!說到這又很難,當代大學生迷茫呀!不知道做什麼,有些知道本身該好好編程,但光說不作!有些人,寫了幾段代碼,出現了問題,不會調試,就放棄了!你們都這樣,因此以寢室爲單位沒有人編程,逐漸以整個計算機學院爲單位逐漸編程!確實咱們的計算機老師,會編程的不多,咱們應該知道,中國計算機引進並發展才短短20年,正是這樣老一輩的,把這些計算機理論上確立,他們不會編程理所固然,大學的老師主要研究理論,國外的也是,由於理論太難了!
因此大學裏學習編程要徹底考本身,你要有信心,有意志把它學好才能夠,並且這個過程是按部就班的!以最快方式,找到你編程的愛好和興趣!
我介紹幾個方法,學習方式,但願你能找到興趣,起碼我是這樣作的,記住若是跌倒了,你要站起來
。
1。必定要和喜歡編程的,或編程厲害的,或常常編程的人,在一塊兒,常常探討問題!初學編程會有不少問題出現,你本身很 難解決
2。我建議VB和c一塊兒學習,這個只是個人建議!我爲何這樣說呢?若是你開始只學c,你會厭煩成天在DOS下,沒有圖象的 程序!若是你直接學WINDOW編程會很難,因此我建議學VB,VB這是個語法簡單,很快能夠見到你編寫程序的畫面,這樣你就會逐漸喜 歡編程,沒有畫面很枯燥的,你不這樣認爲嗎?反正我是這樣認爲的,你編寫的好壞,沒有畫面也很難用眼睛直接看出來!VB是最簡 單的語言了!不存在c的複雜語法結構,程序出錯機率相對c 來講不多,由於VB封狀的很好,幫你解決了複雜的過程!其實象JAVA,MFC, c#徹底能夠做到VB效果,但上手相對困難!
c是咱們必定要學的,它是一種很接近底層的語言!若是你要成爲高手,應該學這個!C是個純面向過程的語言,它的語法不 是很難,你用它大約一年半多左右,就徹底能夠掌握它,記住這須要你的實踐,多作程序,主要是算法程序,最好把你教科書的後的 的習題都作了。你們幾乎學的都是潭浩強的書,這本書我開始認爲很 好,但我看了不少國外的書,和不少國外人所打的代碼後, 和國內高級程序員所說的話,我只能說這本書,只能是你的開端,但不能 讓你更深層次瞭解語言。但你要問我初學者用什麼 書,我還會介紹這本書。C的精髓在於指針,你能靈活運用指針就幾乎等於你掌握了 C語言,這是一種高效的語法支持,快的讓 你沒法想象,我頗有感觸,在VB下要慢的多。
那麼咱們學VB究竟作什麼,很簡單,作WINDOWS程序,控件的使用,數據庫的使用等等,還有一個很重要的是,你能夠練習你 學的數據結構,各類計算機算法,很快就能夠用圖形的方式顯現出來!你如今知道這些就能夠,等你之後學了真正WINDOWS編 程,你會對你之前所實現的東西有很深的理解,究竟什麼是API,什麼是動態鏈接庫,什麼是控件,象VB,MFC這樣的東西,究竟封狀 了什麼讓咱們用起來這麼簡單!
3若是你能做到,以上兩點,(加上你學的專業,若是你很努力,課大約1年)我想你會對計算機感興趣的!你逐漸容入愛學 計算機的氛圍!接下來有兩個方向你要去作,一個是努力學好其餘計算機專業課,二是在鞏固c 語言的基礎上,你能夠選擇學習c++ 或者WINDWOS編程!這兩個先學哪一個都無所謂。記住你大學時學的10大專業課,數學,離散數學,數據結構,編譯原理,彙編,數據庫 ,計算機體系結構,操做系統,計算機網絡,軟件工程,你要盡力把它們學好,這個是整個計算機系統的精髓,這些都是相互貫穿的 ,相互聯繫的,你可能學某科沒學懂,但學了別的後,可能會懂的!切記,在你學好編程的同時,必定要學好這些理論,之後你會受 益匪淺的。
4。在你覺的c或者VB學的沒什麼問題,或者你學會WINDOWS編程,記住必定要本身有個想法,作個小的可視化程序,小遊戲也 好,小應用軟件也好,均可以,這個步驟,你必定要作,你會學到不少東西!在這期間,你還會遇到不少問題,你要本身多想,多問 別人,多去網上查資料!但你作的程序,最好不要COPY別人的,若是都是你本身作的,本身想的,你收穫最大,哪怕你是模仿別人的 程序,你用你本身的想法實現了,也是厲害的!其次,你能夠COPY部分代碼,做爲本身的。在你對你的想法,知道怎麼實現後,寫代 碼只是浪費時間的時候,並且你寫的效率沒有現成的代碼效率高,你就能夠徹底COPY,但若是你是初學者,你千萬不要這麼作!不然 你會對它產生依賴,有一天真正讓你本身去寫,你會無從下手!因此開始時,你能夠試着COPY,逐漸擺脫對它們的依賴,之後擺脫了 ,這個時候,你才能夠總依賴它們。
5。大學期間,有不少程序的實驗課,你要認真作,作出來收穫是本身的,也能夠做爲本身的一個小項目!大學期間加上實驗 課,基本上自主編程或者團隊自主編寫的總小軟件數目應該很多於7,8個,若是你作的程序很大,能夠少些!
以上,我把若是學習計算機入門 和提起 你興趣的方法告訴你了!我相信你按照個人去作,應該沒有問題的!對於每一個細節,我會在接下來詳細爲大家寫出的!
二。理論對你很重要,尤爲是你一名搞技術的程序工程師!
大學裏全部課程幾乎都是針對理論的!大學裏是你學習理論的最好機會,由於咱們不明白能夠問老師,老師會幫助咱們解決的!固然有些老師很垃圾,那就要你本身解決了!我上面提到的10大專業課程,是你之後學習其餘理論的基礎。你不可能一生有老師幫助,之後學習其餘理論就要靠本身,因此,在你學習10大專業課程的同時,要學會本身和思考問題!若是你上大學就爲了之後作網頁,那你沒有必要學這寫東西,同時,你永遠成不了高手!
數學:
數學咱們從小就學,它實在過重要,幾乎全部的科學都創建在它的基礎之上。讓咱們每一個人都成爲數學大師是不可能的,咱們沒有時間也沒有精力去搞這麼抽象的東西,咱們要作的就是,之後遇到和數學相關的東西,能看懂就能夠了!
雖然我很長時間沒有看大學課本,但我還很清楚的知道學了什麼?極限,導數,微分,積分,空間向量幾何,多重微分,多重積分!傅立葉變換,等等把!其實這些很大程度隨着物理學的發展而發展的,如今的仿真技術這麼厲害,都創建在物理學上!我但願你們,在能理解這些真正含義,不要單單會作題!題海戰術既浪費時間,也浪費精力!極限:說白了,就是自變量要趨進某個值時的值,咱們能夠說0.999999,當9趨進無限時,它的極限爲1,不然說0.999999就是1,是不對的,若是沒有條件9趨進於無限,也是不對的!極限是有條件的!因此說不管學什麼,你必定要把概念搞清楚,你要學的東西,都是創建在概念上的,若是這些概念你都沒有弄懂,之後你是沒有辦法學的!
這裏我畢竟不是講數學的,我所要說的就是,你學的東西要紮實,地基要牢,對概念要理解透徹,死記硬背是不行的!若是你不瞭解它的現實和自己的意義是什麼,你根本不知道你在學什麼!
離散數學:
這個實際是最難的理論課程,估計能把它講好的老師也寥寥無幾!
集合,命題邏輯,謂詞邏輯,數論,圖,羣,環,域!前幾部分很簡單,圖論日後簡直難的要命!我在這裏不作多說,由於我沒有學明白,太難了,羣,環,域,我連它們的現實基礎都找不到!它們之因此難,是咱們很難容入到那種神祕的思考方式,容入思考方式太難了,只有靠咱們的感悟,由於這些真正很強的人真的寥寥無幾,能指導咱們的更是不多,我本人始終沒法理解羣的真正含義,我也沒有去查什麼相關資料,但我知道,再抽象的數學理論,都不是憑空想象的,它必定有它的現實基礎,它的出現是有來歷的。
數據結構:
數據結構是十分重要的學科,它徹底是創建在實踐的基礎上,也就是說,你要多打代碼。它在必定程度是依賴語言的。我很清楚的知道,第一遍學習數據結構,也就是幾乎不多有實踐的,大腦幾乎一片空白,也是隻有在考試前,反覆的複習才知道在講什麼,只能手工的模擬執行過程,把算法轉化成程序始終是個迷。但我認爲這已經足夠了,由於任何理論只有在理解它,你才能凌駕於它,因此接下來一個質的飛躍就靠本身,靠本身把那些算法變成代碼,在本身有想法時,可以把這個想法用適當的數據結構實現,這須要在電腦旁的硬功夫,絕對是。一個高級的程序員,絕對是個硬功夫。這種把本身的想法變成代碼,也是你獨立思考的開始,記住思考很重要,他是你在捕捉你的靈感,善於思考的人,靈感來的很快,並且你的靈感會告訴你,對於它,你能把它作出來,這一切都是思考的結果,我不是個思想家,但我知道,我天天對世界萬物的沉思,在指引着我發現那些太多的爲何的答案,這個世界爲何這個樣子,它後面究竟隱藏着什麼,讓咱們大膽的假設吧!!多作程序的人,程序會改變你的思惟,這絕對錯不了。
編譯原理:
其實編譯原理和彙編,操做系統,語言都是緊密相關的,編譯器是在操做系統之上,語言之下。在講編譯器時,除了講編譯源程序成目標程序外,還介紹了不少地方都用到的自動機理論,這個也很重要。在人工智能,不少分析語法,文字類的東西都很重要。編譯原理和語言是相輔相成的,只學語言不學編譯,沒法真正的瞭解語言,而編譯器是在語言基礎上的,沒有語言的瞭解更學不了編譯,如今大多數高校的編譯原理講的語言都是基於面向過程的,但我認爲足夠了,你真正的理解了編譯所講的東西,本身在深刻學習面向對象的語言,你必定會很好的把握面向對象的編譯過程,很好的掌握面嚮對象語言,在語義分析事後的中間代碼生成和動態存儲空間分配,和彙編有很大的聯繫,我在學習彙編時,老是先把要求的題目寫成C語言,在轉化成彙編語言,這就是不知不覺的一種中間代碼生成,雖然不徹底同樣,但讓你掌握中間代碼生成已經足夠了。動態存儲空間分配,主要基於指針所指向的動態空間。由於非指針的變量在編譯時就已經有內存分配了,這也是編譯要作的事。
彙編:
大多數學的都是8086,編譯器我推薦用TD,很好的開發環境。做程序調試是最主要的,沒有做過程序的人是想不到調試是多麼難 ,好的開發環境有助於有效的開發程序。我的認爲,學習彙編要和計算機組成聯繫起來,主要是指令系統,講CPU時的知識。彙編是最低級的,最快的語言了,有時爲了運行速度不得不用匯編來實現想要的功能,我認爲對彙編的掌握程度,只要你能作出個遞歸函數就能夠了,你瞭解了不少指令用法,寄存器的使用,計算機存儲數據和代碼的方式,函數調用的方式,棧是怎麼實現函數的,你會有很深入的發展,相信我沒錯的,必定要上機實現一個遞歸函數,再加上你對C語言的瞭解,和一些編程知識,你就能夠擺平幾乎全部的彙編程序了。
數據庫
我在大學裏沒有接觸過太大的項目,並且日常編程對數據庫深刻很少,只是達到了作網上書店所要求的基本知識,首先是ER圖,各類範式,還有數據流圖,怎麼用語言插入數據,刪除,查找等等,實際上,你要不是搞理論的,深到數據的具體存儲效率的級別,我想這些對於編程就足夠了,但對於高級的數據庫程序員這些是不夠的。
計算機組成
對於學習彙編和C語言這個其實很重要,由於這些語言尚未屏蔽這些硬件細節,VB就幾乎徹底屏蔽了硬件細節,你不須要了解太多的硬件知識。但學習彙編和C語言並非要你瞭解到能做出CPU和鏈接存儲器,咱們只要知道他們的運行機理,但有一點你不要懷疑,那就是電信號他就是那樣有趣,有趣到你沒法想象它的速度和高低電平的傳遞,可是事實就是這樣,你不須要懷疑,認可它就行了,由於咱們還不能解釋規律,只能運用它同樣。原理對軟件程序員就應該足夠了,它會使你更加容易瞭解操做系統和硬件的工做。
操做系統
你們每一個人對操做系統都不陌生,全部的計算機的課程幾乎都是息息相關的,他們都有太多的聯繫,有些你可能迷茫,當全部的學完之後,你應該有個豁然開朗的感受,那就是計算機的一切不該該是個迷。操做系統和硬件的接口,就是那些硬件提供的指令,經過這些指令來操做硬件,就象操做系統定義同樣,他是管理系統資源的,管理硬件的使用,你在學習操做系統時,把它當作一個管理者就能夠了,它是一個有着本身管理方法的管理者,管理這些硬件給每一個進程使用,進程說白了就是一個應用程序在內存中或在外存中,有着運行權利的程序。如今的操做系統是多任務的,能夠運行多個程序,併發是指單個CPU而言,每一個進程在CPU中輪流執行,由於它太快了,你根本感受不到他們的交替性,就象在同時運行,大多數教材講併發比較多,咱們大多數計算機都是單CPU的,具體怎麼交替運行,那就是操做系統管理進程使用硬件的方法,不一樣的操做系統方法不一樣,但你的方法不要讓其中的一個進程老是得不到想要的硬件使用(活鎖或飢餓),但想出個好辦法還不發生死鎖(這裏不說什麼是死鎖了,我畢竟不是再講操做系統)也很難,總之,你要學的就是這些方法,這裏說的是管理CPU,還有管理內存,外設等等。我在給出進程定義時,還說了外存,其實一般就指硬盤,由於你的內存過小,運行的程序又多,我要爲了讓其餘的程序運行,只能先把它放在外存,也叫掛起。總之,你學的就是管理硬件的方法,怎麼管理纔能有效率,方便用戶使用。若是能夠,你也能夠設計一套管理方法,那你就做出了一個新的操做系統。
計算機網絡
全部和硬件有關的最後一個,說實話計算機網絡很雜,你學第一遍後,把網絡7層全部管理方法說出個查很少,很難,大多數學生都是暈頭轉向,網絡是個很龐大的系統,它從硬件到軟件,被規定了很正規的完總體系,這樣你們都遵守這個規則才能,使每一個人開發出的軟件和硬件均可以用。記住計算機的交互就象人與人的交互,它經過0和1來代替人的語言,表情或全部能夠能夠傳達信息的東西,也能夠說是計算機通訊的暗號,只有雙方都知道了這個暗號的含義,雙方纔能通訊,你和另外一我的怎麼通訊,那麼計算機和另外一個計算機就怎麼通訊。例如:我想給你一個禮物(計算機當作我要給你發送數據,A發給B),我要先通知你,看你能不能收(這符合人的交往)(A發給B一個0和1組成的編碼,事先兩臺計算機已經規定好了,好比說10010011表明看對方是否能接受),若是這個請求不丟失的話(丟失有不少處理方法,你本身也能夠想一個處理方法,好比隔一端時間你沒有收到對方是否贊成接受,你就重發信息,總之,只要你肯想象,任何都是可能的),(1)對方發送一個能夠接受的消息(好比說10010012),你收到了,你就能夠發送,發送途中又有不少狀況,好比說,你怎麼發送,做車,仍是徒步,若是交通堵了怎麼辦,是把禮物一塊兒送過去,仍是分開送過去,等等,具體到網絡裏是快速發送,分開發送,咱們學的就是這些方法。(2)對方發送個不能接受的信息,你是還要當即發送,仍是不發,仍是等一會在發,這些方法很活,你要學的就是這些方法,若是你能夠處理網絡中出現的任何問題,你不學它也能夠。我要告訴你的是,你要學的就是就是通訊協議(就是實現規定好的暗號),通訊方法,出現問題怎麼處理等,你有好的方法,你能夠不學了,很簡單,方法就是人發現的,你比它的好,學它的幹什麼,就用你的。
軟件工程
軟件工程是從實踐中總結的經驗,對於不多作過項目的大學生來講,確實很難理解,只要你做過一些項目,好比網上書店之類的系統,你就會有些瞭解,它說的很對,我很清楚的記得軟件工程分這幾個過程:(1)可行性研究,也就是你要作的這個系統可行不,是否值得去作,作了能得多大效益。(2)整體分析,這個就是從總體來規劃你要做的系統,只是個概況,並無詳細的階段,把系統大致分紅幾個模塊。(3)詳細分析,這個階段就是來詳細每一個模塊,把全部的細節都要寫好。(4)程序編碼(5)測試(6)售後服務。
每一個過程有分不少規範,由於一個項目不少人作,不少公司作,沒有個很好的規範會亂套的,因此最後很容易合在一塊兒。
linux
如何學好編程 編程數據結構語言c++c++
方法(三)
如何學好編程
1、爲什麼要學編程?
每一個人的動機不同。大體有:
1、爲了找個好工做;或爲了有更好的機會和更好的發展。
2、看到別人超厲害,因此也想學。
3、實際工做中不少場合須要。
4、從小就立志作個程序員,作軟件工程師。
5、振興中國的軟件事業。
。。。。。。
================================================
2、如何學編程?
1、多看好書。
差書誤人子弟,不但浪費時間和精力,並且打擊人的信心,差書令人好久都不會,讓會讓人懷疑自已
的學習能力。
如今的書不少,但好書不多,特別是被你們公認頗有價值的好書,更是少之又少。歷經多年時間考驗
和市場風雨不殘酷洗禮而僅存的鉅著,更是極其稀少。中國歷史上文學小說類書本多如牛毛,但僅存的巨
著,也只不過<<紅樓夢>>等四本名著而已。
編程方面也是如此。
2、多動手。
這一點很重要。並且特別重要。
「紙上得來終覺淺,絕知此事要躬行。」陸游的千古名句說的就是這個道理,而且一樣適合於編程方
面。
================================================
3、用什麼語言最好?
這主要取決於應用領域,每種語言都有自已的長處和不足。
1、彙編語言和C語言在單片機及工控領域用較多。另外C語言也是一種通用語言,是學C++/c#的起點。
2、C++系統編程等多個方面,最經常使用的編譯器是VC。
3、C#/Java網絡編程方面新興的。
4、VB通用。
5、還有Delphi等。。。。。。
我的建議:從未編過程的,就從學vb開始。有基礎的可直接學c++/VC。
===================================================
4、有什麼好書 ?
幾年前,臺灣著名技術做家侯捷先生曾經寫過一篇影響很大的書評文章,叫作《MFC四大天王》。文章的
意思是說在MFC的浩瀚書海中,只要認真研讀和學習其中四本,就能夠「五嶽歸來不看山」。侯先生雖以
MFC爲例,可是這個道理卻一樣適合於MFC以外的不少具體技術領域,這不能不說是一個有趣的統計現象。
一般在某一個具體細分的技術領域,會天然而然地出現3-5本頂級著做,它們彼此互相配合,造成一個完
整的體系。對於學習者來講,只須要認真研讀這幾本書,就足以升堂入室。我樂於將這種現稱爲「四書五
經現象」。對於讀者來講,若是可以找到該領域中的「四書五經」,則不管在時間上仍是金錢上都是最經
濟的選擇。好書幾本,賽過爛書幾捆,這個體會想必你們都有。在此,幫助你們遴選各個技術領域裏的「
四書五經」。
編程的書可謂汗牛充棟,其中經典也是不泛其數,但絕大多數的過來人,都一致認爲,要想很快的入
門並儘快的投入到編程實踐中,只要其中的四到五本也就夠了,即只看經典中的經典,聖經級的書就能夠
了。
所謂活到老學到老,程序員是個終身學習的職業,要不斷的看書,直到放棄編程的那一天。因此,
您要讀的好書也絕非如下推薦的這些書喲,呵呵。
一句話,因爲咱們的時間、精力、金錢都是有限的,如何以最小的代價換得最大的收穫。
[/equote]
[equote]
經典好書分類熱銷榜
================================================================
1、Java
Java編程語言(第三版)---Java四大名著----James Gosling(Java之父)
Java編程思想(第2版)----Java四大名著----Bruce Eckel
Java編程思想(第3版)----Java四大名著----------------Bruce Eckel
JAVA 2核心技術 卷I:基礎知識(原書第7版)---Java四大名著-----Cay Horstmann
JAVA 2核心技術 卷II:高級特性(原書第7版)----Java四大名著-----Cay Horstmann
Effective Java中文版------Java四大名著--------Joshua Bloch
精通Struts:基於MVC的Java Web設計與開發---孫衛琴
精通Hibernate:Java對象持久化技術詳解---孫衛琴
Tomcat與Java Web開發技術詳解------------孫衛琴
Java與模式------------------------------閻宏
2、c#
C#程序設計-------Charles Petzold「windows編程泰山北斗」---C#語言「倚天屠龍雙劍」
C# Primer中文版--------Stanley B.Lippman---C#語言「倚天屠龍雙劍」
.NET框架程序設計(修訂版)--------Jeffrey Richter「windows編程泰山北斗」---.NET平臺四大天王
c#Windows程序設計----------Charles Petzold「windows編程泰山北斗」------.NET平臺四大天王
.NET程序設計技術內幕-------------Jeff Prosise---.NET平臺四大天王
.NET本質論--第1卷:公共語言運行庫(中文版)--------Chris Sells---.NET平臺四大天王
3、C++
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
C++標準程序庫—自修教程與參考手冊--c++八大金剛--Nicolai M.Josuttis
C++語言的設計和演化-----c++八大金剛----Bjarne Stroustrup「C++之父」
深度探索C++對象模型---c++八大金剛----Stanley B.Lippman
Essential C++中文版---c++八大金剛---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金剛------Scott Meyers
More Effective C++中文版----c++八大金剛------Scott Meyers
C++編程思想(第2版) 第1卷:標準C++導引--------Bruce Eckel
C++編程思想(第2版)第2卷:實用編程技術 --------Bruce Eckel
C++程序設計--------------------------譚浩強
C++ 程序設計教程(第2版)--------------錢能
C++ Primer Plus(第五版)中文版---Stephen Prata
廣博如四庫全書The c++ programming language、c++ Primer
深奧如山重水複Inside the c++ object model
程序庫大全The c++ standard libray
工程經驗之積累Effective c++、More Effective c++、Exceptional c++
c++八大金剛:
1、Essentital c++---lippman---C++之父,旁枝暫略,主攻核心,輕薄短小,初學者
2、The c++ programming language----C++之父,技術權威,用詞深峻,思想深遠,c++百科全書表明,
聖經。
3、c++ Primer----lippman---縱橫書市十數年,c++最佳教本,c++百科全書表明。
4、Inside the c++ object model-----lippman----揭示c++底層,很是好,很是難。
5、Effective c++-----經過50個編程實例,展現專家經驗,行文有趣,深處淺出。
做者: 熱布克 2006-7-11 16:18 回覆此發言
--------------------------------------------------------------------------------
3 C++原創,超經典:爲什麼要學編程?如何學編程?用什麼語言最好?有
6、More Effective c++----經過35個編程實例,展現專家經驗,行文有趣,深處淺出。
7、The c++ standard libray---c++標準庫的百科全書。
8、設計模式:可複用面向對象軟件的基礎------good!
4、c
C程序設計語言(第2版·新版)---C語言「倚天屠龍雙劍」---Brian W.Kernighan「C語言之父」
C Primer Plus中文版(第五版)--------C語言「倚天屠龍雙劍」---Stephen Prata
C程序設計(第三版)---------------------------譚浩強
C語言大全(第四版)---------------------------HERBERT SCHILDT
C語言接口與實現:建立可重用軟件的技術-------------DAVID R.HANSON
C語言參考手冊(原書第5版)--------------------------Samuel P.Harbison
C程序設計教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱與缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic .NET技術內幕-----VB編程三劍客-----------Francesco Balena「vb首席大師」
Windows程序設計-Visual Basic.NET語言描述--VB編程三劍客-----Charles Petzold「windows編程泰山
北斗」---
.NET框架程序設計:Visual Basic.NET語言描述--VB編程三劍客--Jeffrey Richter「windows編程泰山北
鬥」---,Francesco Balena「vb首席大師」
Visual Basic 6編程技術大全------------------------Francesco Balena「vb首席大師」
Visual Basic.NET 從入門到精通-------------------------Petroutsos,E.
高級VISUAL BASIC編程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深刻核心——VCL架構剖析)----------李維
Delphi 7高效數據庫程序設計--------------李維
面向對象開發實踐之路(Delphi版)----------李維
7、VC
Windows 程序設計(第5版)-----Charles Petzold「windows編程泰山北斗」---
Windows核心編程----------Jeffrey Richter「windows編程泰山北斗」---
Windows高級編程指南---------Jeffrey Richter「windows編程泰山北斗」---
深刻淺出MFC(第二版)-----「MFC四大天王」-------侯捷
MFC Windows程序設計(第2版)---MFC四大天王」---------Jeff Prosise
Visual C++ 技術內幕(第4版)--MFC四大天王」--------David Kruglinski
深刻解析MFC-------------MFC四大天王」-----------George Shepherd
Visual C++.NET 技術內幕(第6版)-MFC四大天王」------------David Kruglinski
8、vf
Visual Foxpro程序設計參考手冊-------------------張洪舉
專家門診——Visual FoxPro開發答疑160問-------------------張洪舉
Visual FoxPro 6.0/9.0解決方案與範例大全-------------------張洪舉
Visual FoxPro軟件開發模式與應用案例-------------------張洪舉
9、黑客
應用密碼學(協議算法與C源程序-----------Bruce Schneier
網絡信息安全的真相-----------Bruce Schneier
黑客大曝光:網絡安全機密與解決方案(第5版)--------STUART MCCLURE
軟件加密技術內幕------------看雪學院
加密與解密——軟件保護技術與徹底解決方案------------看雪學院
加密與解密(第二版)--------段鋼
10、彙編
Intel微處理器結構、編程與接口(第六版)---------Barry B. Brey
80*86、奔騰機彙編語言程序設計---------Barry B. Brey
Windows環境下32位彙編語言程序設計(第2版)-----------羅雲彬
IBM-PC彙編語言程序設計(第2版) 本書是國內優秀教材--------沈美明 溫冬嬋
IBM PC彙編語言程序設計(第五版) 這本書籍是國外優秀教材-------PETER ABEL著,沈美明 溫冬蟬譯
11、驅動開發
做者: 熱布克 2006-7-11 16:18 回覆此發言
--------------------------------------------------------------------------------
4 C++原創,超經典:爲什麼要學編程?如何學編程?用什麼語言最好?有
Windows WDM設備驅動程序開發指南------------------------------------ Chris Cant
Windows 2000/XP WDM設備驅動程序開發(第2版)--------------------------武安河
WINDOWS 2000/XP WDM設備驅動程序開發-------------------------------- 武安河
12、網絡
計算機網絡第四版中文版----網絡編程三劍客--------------Andrew S.Tanenbaum
TCP/IP詳解3卷本--------------------Richard Stevens----網絡編程三劍客
UNIX網絡編程2卷本--------------------Richard Stevens----網絡編程三劍客
用TCP/IP進行網際互聯-----------Douglas E. Comer
高級TCP/IP編程-------------------Jon C. Snader
C++網絡編程-----------------------Douglas Schmidt
UNIX環境高級編程(第2版)--------------------Richard Stevens
13、算法
計算機程序設計藝術-------Donald.E.Knuth----------算法「倚天屠龍」雙劍
算法導論-----------------Thomas H. Cormen--------算法「倚天屠龍」雙劍
離散數學及其應用----------Kenneth H.Rosen
具體數學—計算機科學基礎--------Donald.E.Knuth
14、圖形編程
Windows 圖形編程----------------FENG YUAN --圖形編程界的Charles Petzold之書
15、數據結構
數據結構 C++語言描述》58.00(Data Structures C++) William Ford,William Topp 劉衛東 沈官林
數據結構算法與應用-C++語言描述》49.00Sartej Sahni 汪詩林 孫曉東等機械工業出版社
16、軟件工程
設計模式--可複用面向對象軟件的基礎
重構—改善既有代碼的設計
17、操做系統
深刻理解計算機系統(修訂版)-------RANDAL E.BRYANT
18、Unix
UNIX 網絡編程 卷I 套接字聯網API(英文版 第三版
UNIX 編程藝術
UNIX環境高級編程(英文影印第2版-----UNIX編程「聖經
UNIX環境高級編程(英文影印版)(第2版)
99-UNIX環境高級編程(第2版)
UNIX環境高級編程(第2版)---UNIX編程「聖經
UNIX網絡編程 第1卷:套接口API(第3版)
UNIX網絡編程卷2:進程間通訊(第2版)(英文影印版)
UNIX 網絡編程(第二版)第2卷:進程間通訊
UNIX編程環境
UNIX 網絡編程 卷I 套接字聯網API(英文版 第三版
UNIX系統編程
UNIX環境高級編程
UNIX環境高級編程(英文影印版
88-LINUX內核分析及編程
UNIX 網絡編程 卷I 套接字聯網API(英文版 第三版)
UNIX網絡編程 第1卷:套接口API(第3版)
UNIX 網絡編程(第二版)第2卷:進程間通訊
UNIX網絡編程卷2:進程間通訊(第2版)(英文影印版)
UNIX 網絡編程(第2版)第1卷:套接口API和X/Open 傳輸接口API
UNIX網絡編程(卷1):連網的APLS:套接字與XTI(第二版)(英文影印版)
UNIX環境高級編程
UNIX 環境高級編程(英文版)
UNIX環境高級編程(第2版)
Unix技術手冊
19、Linux
Linux內核設計與實現
Linux內核徹底註釋
LINUX內核分析及編程
GNU/Linux 編程指南(第二版)
Linux設備驅動程序(第三版)
嵌入式設計及Linux驅動開發指南——基於ARM 9處理器
Linux設備驅動程序 第三版(英文影印版)
Linux內核設計與實現(第2版)
Linux內核設計與實現(英文影印版)(第2版)
linux技術手冊 程序員
20、遊戲編程
Windows遊戲編程大師技巧(第二版
遊戲之旅--個人編程感悟
OpenGL超級寶典:第三版
OpenGL編程指南(第四版)
Java 遊戲高級編程
J2ME手機遊戲編程入門
遊戲之旅——個人編程感悟
遊戲開發中的人工智能(英文影印版)
3D遊戲:卷2 動畫與高級實時渲染技術
面向對象的遊戲開發
Java 遊戲高級編程
3D遊戲編程大師技巧
遊戲編程精粹
面向對象的遊戲開發
3D遊戲 卷1:實時渲染與軟件技術
3D遊戲:卷2 動畫與高級實時渲染技…
J2ME手機遊戲編程入門
Direct3D遊戲編程入門教程(第二版…
21、移動開發
Windows Mobile手機應用開發
SYMBIAN OS C++手機應用開發
68-Windows Mobile手機應用開發--傅曦 齊宇 徐駿
48-SYMBIAN OS C++手機應用開發 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣譯
68-SYMBIAN OS C++手機應用開發---------------RICHARD HARRISON著,周良忠譯
Windows CE.net內核定製及應用程序開發---------周毓林 寧楊 陸貴強 付林林
嵌入式系統Windows CE 開發技巧與實例--傅曦
Palm OS編程實踐---絕版
22、單片機
單片機輕鬆入門----------------------------------周堅(平凡老師)
單片機典型模塊設計實例導航-----------------------求是科技
例說8051----------------------------------------張義和 陳敵北
KEIL CX51 V7.0單片機高級語言編程與ΜVISION2應用實踐-----徐愛鈞
單片機應用程序設計技術(修訂版)--------------------周航慈
8051單片機實踐與應用-------------------------------吳金戎
MCS-51系列單片機實用接口技術---------------------李華
23、串並口通信
Visual C++/Turbo C串口通訊編程實踐------------------龔建偉
VISUAL BASIC與RS-232串行通訊控制(最新版)----------範逸之
24、電子
無線電識圖與電路故障分析輕鬆入門(第二版) -------------------胡斌
無線電元器件檢測與修理技術輕鬆入門(第二版) -------------------胡斌
圖表細說電子技術識圖-------------------胡斌
圖表細說電子元器件-------------------胡斌
圖表細說元器件及實用電路-------------------胡斌
[/equote]
[equote]怎樣成爲一名程序員[/equote]
[equote]
經過如下4個階段的訓練, 沒有任何編程基礎人就能夠成爲一名普通的程序員。
第一階段:掌握一種編程語言
學習內容:學習任意一種主流的編程語言。例如C++語言。
學習目標:熟練掌握一種語言的語法和基本的編程技巧。
學習時間:3個月左右
注意事項:編程語言和編程工具是兩回事情,編程語言是指C++、Basic、Object Pascal等
程序設計語言,它們是像漢語、英語同樣的抽象的語法規則,編程工具是指
Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代碼編輯器、程序編譯器
在內的集成化、可視化的軟件開發工具。C++源程序能夠在Visual C++ 6.0裏編寫,也能夠在
記事本里編寫,而同一個C++源程序能夠用Visual C++ 6.0編譯、執行,也能夠用C++ Builder 5.0
編譯、執行,因此: C++ 不等於 Visual C++ 6.0
第二階段:掌握一種編程工具
學習內容:學習任意一種主流的編程工具。注意編程工具要和第一階段學習的編程語言一致,例如你學習的
編程語言是C++,那麼編程工具要選Visual C++ 6.0或者C++ Builder 5.0。
學習目標:熟練掌握這種編程工具基本用法,例如:菜單、組件、程序跟蹤調試、編寫Windows程序等。
學習時間:3個月左右
注意事項:這個階段側重編程工具的使用,同時進一步熟習編程語言,最後達到能熟練編寫各類基本的Windows程序。
第三階段:掌握「算法與數據結構」這門課程
學習內容:算法與數據結構,推薦許卓羣的《數據結構》,高等教育出版社出版。
學習目標:熟練掌握各類經常使用的算法與數據結構
學習時間:4個月左右
注意事項:這是一門不可或缺的軟件開發課程,曾經有一本經典計算機專業書籍叫作《數據結構+算法=程序》,
這說明了數據結構和算法的重要性。它能幫咱們創建良好的程序分析與設計能力。
第四階段:實現一個模擬的小型軟件項目
學習內容:軟件項目的開發過程
學習目標:掌握軟件項目的基本開發過程和方法
學習時間:4個月左右
注意事項:本身完成一個模擬的小型軟件項目,強烈推薦作一個MIS(管理信息系統)軟件,參考用書推薦
「中小型信息管理系統開發實例系列叢書」,人民郵電出版社,它的例子詳實有效,
以它爲基礎再加以擴展,就能夠作出實用的MIS軟件來。
此叢書包括多種開發工具,你們能夠選擇適合本身的:《VISUAL FOXPRO6.0 數據庫系統開發實例導航》
《JAVA數據庫系統開發實例導航》 《VISUAL BASIC數據庫系統開發實例導航》
《VISUAL C++6.0數據庫系統開發實例導航》 《ASP.NET數據庫管理系統開發實例導航》
DELPHI數據庫系統開發實例導航》 《POWERBUILDER 8.0數據庫系統開發實例導航》。
最後將完成的模擬軟件刻成光盤,做爲本身的做品去面試,以此踏上本身光輝的職業程序員之路!面試
方法(二)
首先我要強調一下,若是能數控編程各類語言,那麼你在社會人才競爭中就很是有優點。目前在國內製造業對數控加工高速增加的需求形勢下,數控編程技術人才出現了嚴重短缺,數控編程技術已成爲就業市場上的需求熱點。1、學好數控編程技術須要具有如下幾個基本條件:(1)具備基本的學習資質,即學員具有必定的學習能力和預備知識。(2)有條件接受良好的培訓,包括選擇好的培訓機構和培訓教材。(3)在實踐中積累經驗。2、學習數控編程技術,要求學員首先掌握必定的預備知識和技能,包括:(1)基本的幾何知識(高中以上便可)和機械製圖基礎。(2)基礎英語(高中以上便可)。(3)機械加工常識。(4)基本的三維造型技能。3、選擇培訓教材應考慮的因素包括:(1)教材的內容應適合於實際編程應用的要求,以目前普遍採用的基於CAD/CAM軟件的交互式圖形編程技術爲主要內容。在講授軟件操做、編程方法等實用技術的同時也應包含必定的基礎知識,使讀者知其然更知其因此然。(2)教材的結構。數控編程技術的學習是一個分階段不斷提升的過程,所以教材的內容應按不一樣的學習階段進行合理的分配。同時,從應用角度對內容進行系統的概括和分類,便於讀者從總體上理解和記憶。4、數控編程的學習內容和學習過程基本能夠概括爲3個階段:第1階段:基礎知識的學習,包括數控加工原理、數控程序、數控加工工藝等方面的基礎知識。第2階段:數控編程技術的學習,在初步瞭解手工編程的基礎上,重點學習基於CAD/CAM軟件的交互式圖形編程技術。第3階段:數控編程與加工練習,包括必定數量的實際產品的數控編程練習和實際加工練習。5、學習方法與技巧同其餘知識和技能的學習同樣,掌握正確的學習方法對提升數控編程技術的學習效率和質量起着十分重要的做用。下面是幾點建議:(1)集中精力打殲滅戰,在一個較短的時間內集中完成一個學習目標,並及時加以應用,避免進行馬拉松式的學習。(2)對軟件功能進行合理的分類,這樣不只可提升記憶效率,並且有助於從總體上把握軟件功能的應用。(3)從一開始就注重培養規範的操做習慣,培養嚴謹、細緻的工做做風,這一點每每比單純學習技術更爲重要。(4)將平時所遇到的問題、失誤和學習要點記錄下來,這種積累的過程就是水平不斷提升的過程。6、如何學習CAM交互式圖形編程技術的學習(也就是咱們常說的CAM編程的要點)可分三個方面:1、是學習CAD/CAM軟件應重點把握核心功能的學習,由於CAD/CAM軟件的應用也符合所謂的「20/80原則」,即80%的應用僅須要使用其20%的功能。2、是培養標準化、規範化的工做習慣。對於經常使用的加工工藝過程應進行標準化的參數設置,並造成標準的參數模板,在各類產品的數控編程中儘量直接使用這些標準的參數模板,以減小操做複雜度,提升可靠性。3、是重視加工工藝的經驗積累,熟悉所使用的數控機牀、刀具、加工材料的特性,以便使工藝參數設置更爲合理。 須要特別指出的是,實踐經驗是數控編程技術的重要組成部分,只能經過實際加工得到,這是任何一本數控加工培訓教材都不可能替代的。雖然本書充分強調與實踐相結合,但應該說在不一樣的加工環境下所產生的工藝因素變化是很難用書面形式來表述完整的。最後,如同窗習其餘技術同樣,要作到「在戰略上藐視敵人,在戰術上重視敵人」,既要對完成學習目標樹立堅決的信心,同時又腳踏實地地對待每個學習環節。因此,只要你對數控編程感興趣,本人嚴重支持你去學它,前途無量啊。
方法(三)
1、明確學習目的
學習編程對大多數IT業人員來講都是很是有用的。學編程,作一名編程人員,從我的角度講,能夠解決在軟件使用中所遇到的問題,改進現有軟件,能夠爲本身找到一份理想的工做添加劇要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,能夠爲中國的軟件產業作出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛鍊思惟,使咱們的邏輯思惟更加嚴密;可以不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,由於程序設計自己是一種創造性的工做。知識經濟時代給咱們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業裏幹出一番事業來,有所做爲,具備必定的編程能力是一個基本條件和要求。
2、打好基礎
學編程要具有必定的基礎,總結之有如下幾方面:
1、數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最先的計算機也是爲數值計算而設計的。所以,要學好計算機就要有必定的數學基礎,出學者有高中水平就差很少了。
2、邏輯思惟能力的培養學程序設計要有必定的邏輯思惟能力,「邏思力」的培養要長時間的實踐鍛鍊。要想成爲一名優秀的程序員,最重要的是掌握編程思想。要作到這一點必須在反覆的實踐、觀察、分析、比較、總結中逐漸地積累。所以在學習編程過程當中,咱們沒必要等到什麼都徹底明白了纔去動手實踐,只要明白了大概,就要勇於本身動手去體驗。誰都有第一次。有些問題只有經過實踐後才能明白,也只有實踐才能把老師和書上的知識變成本身的,高手都是這樣成材的。
3、注意理解一些重要概念
一本程序設計的書看到的無非就是變量、函數、條件語句、循環語句等概念,但要真正能進行編程應用,須要深刻理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針這些語法、結構的應用例子,作到觸類旁通,舉一反三。
4、掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。關鍵是學一種思想,有了思想,那麼咱們就能夠舉一反三。
5、多實踐、多交流
掌握編程思想必須在編程實際工做中去實踐和體會。編程起步階段要常常本身動手設計程序,具體設計時不要拘泥於固定的思惟方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思惟方式不一樣、角度各異,各有高招,經過交流可不斷吸取別人的長處,豐富編程實踐,幫助本身提升水平。親自動手進行程序設計是創造性思惟應用的體現,也是培養邏輯思惟的好方法。
6、養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來講較爲漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格能夠使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變量命令規則的一致性、代碼的註釋等。
7、上網學編程
在網上能夠學到不少不一樣的編程思想、方法、經驗和技巧,有大量的工具和做品及相關的輔導材料供下載。
8、增強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具備必定的計算機理論基礎知識,包括編程所需的數學基礎知識,具有了入門的條件,就能夠開始編程的實踐,從實踐中能夠發現問題須要增強計算機理論知識的再學習。程序人人皆可編,但當你發現編到必定程度很難再提升的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過以後,不少之前遇到的問題都會迎刃而解,令人有豁然開朗之感。所以在學習編程的過程當中要不斷地針對應用中的困惑和問題深刻學習數據結構、算法、計算機原理、編譯原理、操做系統原理、軟件工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣通過不斷的學習,再努力地實踐,編程水平必定會不斷提升到一個新高度。算法