① 做軟體編程師要學些什麼
首先,我想說一下學習思想.學編程其實跟網路游戲有著類似的效果.開始的時候,你會對那些代碼,函數等產生很大的興趣,尤其是剛接觸編程的人,剛學習第一種語言的人.可是,當你一步步深入的時候,你會發現你沒有了以前那種鬥志.就好象你在玩韓國泡菜網游似的,玩到一定程度,每天就是練級練級,完全是一個想沖到高級別的意志力在支持著你.而學編程就更難了,學了兩個月後,總是覺得你好象全都學會了,卻又什麼都做不了,又沒有其他的意志力支持你.這時候你會很容易放棄,或者轉到別的如網業製作,PS,FLASH等行業的.其實我告訴你,雖然你覺得你好象已經學了很多了,其實你還是什麼都沒學呢,等你跨過這道坎,才是你剛入門的時候.說這些,只是想告訴你,學編程中會遇到很多困難,你要努力的克服這些困難,才能真正學到東西.否則,你根本別想學編程,趁早轉行.
接下來,我幫你規劃一條編程之路.
學編程的人,很少有人沒學過C語言的.我推薦讓C語言作為你第一個學的語言.雖然有的人說要先學VB,其實這種觀念是錯誤的.C確實比VB枯燥, 而且說實話學完C後不學別的就好象沒學過,感覺什麼都沒學會.可是,對初學編程的人來說,只有C語言才能建立起你對編程概念的理解.VB不是編程,VB只是一種工具而已.C語言確實是個不折不扣的語言,真正讓你知道什麼是編程的語言.有初學C語言,用TC2編譯器的人總說他學了C什麼都不會.什麼軟體也寫不出來.我可以告訴他,編程編程,編的是程序,而不是軟體,軟體這是程序的一個構價.你想編程出軟體,那以後很輕松的就能掌握,現在你需要學的就是編程, 說明確一點,你現在所需要學的就是演算法.編程的靈魂是演算法,這點每個人都要記住.
所以,第一門語言要學C,推薦的書為譚浩強老師的<C程序設計>(清華大學出版社)或者克尼漢的<C程序設計語言>(美國).
初學者也許需要一套視頻教程來幫助自己更快的入門,那麼就推薦你去網路搜索"C語言視頻教程",第一頁的第一條記錄就是這個教程.而且是和譚老師的<C程序設計>配套的教程!
注:有些人說譚浩強的書不好,太死板.那麼我只能說你最多是個一瓶子不滿,半瓶子逛盪的人.真正要掌握高深技術的時候,你會發現你沒辦法掌握.
C語言要學到什麼樣才算個頭呢?其實,C語言沒有學到頭一說.有些人學了一輩子,還在鑽研.那麼你應該到什麼時候學下一種呢?按時候算的話,我推薦,如果你每天有6個小時的時間學習的話,一個半月以後,你就可以轉到下一個語言的學習過程中了...(我估計普通人在這一個半月內該掌握的都掌握了)
那麼,下面要學的是什麼呢?這會不會還有人說VB吧.還美其名曰加深對編軟體的印象.這種說法很幼稚.學了C語言還學什麼VB呀.其實VB確實是很強大的,容易入門,想精通了也不容易.著名的DOS系統就是用BASIC語言寫出來的.可是,這種這么易用的軟體對於專業學編程的人是一種不好的東西,會讓人產生依賴,讓人產生惰性.VB的那些控制項的功能實在是太強大了,你都不用怎麼思考,就可以編寫出來.可是,控制項畢竟是不能隨你的意願支配的,控制項是死的東西.你真正要學的是編寫的思想,是函數(Java中稱方法).另外,學VB還不如去學Delphi呢.
注:市面上的軟體一般一眼就可以看出是用什麼語言編程的,而VB編寫的軟體幾乎找不到多少.
所以,下面要學的也就那兩種選擇了,C++/Java.我推薦,先學Java.
Java實際上是C++改的.去除了C++中指針的部分,讓C++變得更安全,同時也比C++稍微簡單了一些.你需要去找一些關於Java的介紹,在看下面的東西.
我聽一個北大青鳥的老師說Java的最終發展目標是J2EE.我覺得不然,J2ME一定也是個發展方向,只是他跟J2SE,J2EE有很大的不同,開發環境也很不同.關於J2ME的部分我不做討論.而J2SE呢.說實在的,市面上的J2SE軟體確實也是很少的,你見過有幾個拓展名為.jre的軟體?不過還是要告訴你,學習Java的人肯定最先接觸的是J2SE.Java的GUI軟體只是技術性的問題,也是開發手段的問題.不管你是要發展到 J2EE,還是轉到GUI編程,J2SE絕對不是彎路.還是那句話,演算法是最重要的.而Java比C++最大的優勢在於他的完全面向對象和跨平台.其實, 就算你先學了Java,你還是可以很容易的掌握C++,Java程序員和C++程序員的互轉是很容易的!再說一些Java的優點.Java比C++方便很多,下載了編譯器後一個記事本就能寫程序,JBuilder實際上只是個輔助的工具.我去一個搞Linux系統開發的公司看過,用JBuilder的很少,一般都是直接用UltraEdit直接寫程序.而C++必須要用VC++等編譯器,不說電腦配置低很不好用,光說VS是要花錢的,而JDK永遠都是正版(免費下載),就應該用Java.其實這只是習慣問題,不管你是先學Java還是先學C++,都會很快掌握另外一個的.
Java的書有很多,初學不要買實例的,買那種一直講基礎的,清華大學出版的書很好.另外推薦視頻教程,孫鑫老師的Java無難事.去52ebook直接搜索名稱"Java無難事",一共有12張CD,都下載下來就好了.教程的第一課會教你如何配置,去哪下載編譯器等.
要學到什麼時候呢?我是這么推薦的,學到你可以不看任何資料,(當然可查看JAVA幫助文檔)熟練的編寫出一個酒店管理系統來.接下來,你就可以去學別的了.
這個別的,就是C++,還是那句話,Java程序員可以很容易的掌握C++,只要學了C++的基礎語法,剩下的就是實踐了!
C++的書可以買一本C++語言+SQL的應用,就是講資料庫系統的例子.多練是很重要的.
視頻教程推薦孫鑫老師的VC++視頻教程,去訊雷上搜索"孫鑫 VC++",找到那個700M多的打包教程,就是了.
其實學懂Java和C,剩下的你真的可以自己掌握了.我粗略的說一下.
比如,你可以學匯編,匯編實際上是很磨人的,不過匯編高手永遠都是搶手貨.
那麼VB呢?DELPHI呢?哈哈,又是VB,你學,這個時候學VB,學不了幾天就掌握了.不比初學輕松?
想學的你都去學,甚至還可以去學Flash,連Flash ActionScript都可以很輕松的掌握.
其實現在,你的路已經定下來了.你剩下的就是不段實踐,不段往更高的方向發展.
在這之前,建議你去考幾個試.
去考中國計算機軟體職業資格水平考試,直接考中級的軟體工程師.或者再學一些別的,考個網路工程師.如果你願意,你可以再多學點東西,把全國計算機等級考試的1到3級的所有東西都考下來.呵呵.
到了這種程度,我想真的不用我再說了,都考你自己了.
最後,記住兩句話.
編程的靈魂是演算法+數據結構!
學好編程實踐最重要!
② 自學計算機編程應該看些什麼書
一:第一階段
C語言-------《C語言設計》 作者:譚浩強
大多數人都推薦譚浩強這本書,譚浩強的C語言程序設計,我覺得更適合當教科書,主要是篇幅沒有那麼大,書本的內容不是很全,由老師帶入門是最好的。
《C Primer Plus》第五版 作者:Stephen Prata
這本書比較厚,內容也比較基礎,擴展的也比較廣,自學容易上手,唯一的缺陷在於它是外國人編寫,而國內的翻譯往往讓人難以滿意,如果你有較好的英語水平,最好閱讀英文版的。
《C語言入門經典》第四版 作者:Ivor Horton
二:第二階段
這一階段看個人主攻的方向了,安卓一般就JAVA,PC游戲、軟體C++,也有推薦C#,這些都是主流語言,其他語言要看個人愛好與發展。
面向對象的語言,一般懂一門,之後要轉其他語言也很容易的,其實思想都差不多,主要的不同在於語法。C#容易上手,一個月入門,一年精通,而C++卻有點難,一年入門,二十年也未必敢說自己精通。如果有時間,可以了解一下匯編語言。
C++ Primer, 4rd Edition
(入門類:
C++ Primer, 4rd Edition
Thinking in C++, 2nd Edition
The C++ Standard Library: A Tutorial and Reference
進階類:
The C++ Programming Language, Special Edition
The Design and Evolution of C++
Inside C++ Object Model
C++ Templates: The Complete Guide
STL 源碼剖析
Generic Programming and the STL
Modern C++ Design: Generic Programming and Design Patterns Applied
應用技巧類:
Effective C++, 2nd Editon
More Effective C++
Exceptional C++
More Exceptional C++
Effective STL
Ruminations on C++)
三:第三階段
API/SDK------------- 《windows程序設計》(Jeff Prosise)
這書主要是開發Windows軟體要深入研讀的,畢竟是WindowsAPI。如果是主攻C++,那麼這本書你可以大概略讀一遍,不用過多的深入追究,QT才是C++主要深入思慮的關鍵。
四:第四階段
MFC----《VC++技術內幕》、《深入淺出MFC》及視頻教程孫鑫 VC++6.0
如果是C++,QT是要重點學習的對象。
五:第五階段
COM/DCOM/ATL/COM+---------《COM技術內幕》
未知階段:
《數據結構》,《演算法導論》這些基本是編程的核心了,編程的很大情況都依賴於演算法的實現,這個兩門基本要深入研究,這是決定編程能力的核心標准。
如果不弄底層的話,《操作系統原理》可以簡單地了解。
③ 電腦編程入門書籍,應該先看什麼
我轉載的,感覺對你有用!!! 都是我看過或正要看的書,晾晾書架,希望對後來者也有一點作用,當年我也是浪費時間看了一些沒有價值的書籍,頗為後悔,現將精華總結如下:
c語言篇:(雖有人說學C++不用先學c,但我頗不以為然,不知數據為何,又何來的封裝繼承多態)
1:c語言入門大學教程c語言譚浩強版足以。
2:windows c語言API編程基礎,推薦《windows程序設計(第5版)》 Charles Petzold著,通過學習可對界面編程一覽無遺,剩下的就是看怎樣用c++進行包裝,體會c++面向對象復用代碼的威力了。
3:《TCP/IP協議及網路編程技術》 羅軍舟等編著 清華大學出版社 國貨上品,是應用c語言在windows下進行網路編程的好教材.也是使用c++進行網路編程的知識准備。
C++基礎篇: 1:《C++Primer(3or4版)》入門第一部.
2:《深入淺出MFC》 侯捷著 國貨精品,本應歸入學習vc的范疇,但他實際是對widows API的c++框架介紹,用來做vc項目只能起輔助作用,對建立c++面向對象思想卻多有啟迪。
3: 《C++標准程序庫》 侯捷/孟岩譯 庫是語言的延伸,學習c++不可不看。
4: 《C++實踐之路》 周良忠譯 一個計算器例子貫穿全書,幾乎用到C++所有知識,真正的例子驅動教學法。
面向對象技術:
1: 《設計模式-可復用面向對象軟體的基礎》 美國四人幫的跨時代大作 230頁卻足以開啟一個時代,真正體現了面向對象技術的價值,是代碼復用的經典之作,不能不看。
2: 《UML Distilled》 UML建模很火歐,但對我來說看主要目的是看懂類關系草圖,這本小書足以。
c++進階篇
1: 《C++高級編程》 劉鑫等譯 有對c++知識的精要總結其中包括如何更好地實現重用、如何有效地測試和調試等C++專業人員常用的一些技術與方法,值得了解。
2: 《Effective C++》,《必知必會》,《c++編程規范》 三本小書卻足以檢測你對c++知識掌握的真正情況。
c++高階篇:(本人仍在閱讀中)
1: 《深入探索c++對象模型》 侯捷譯 對C++內存布局的深入介紹,是真正理解com/corba等組件技術的必備基礎。
2: 《C++ Templates中文版》 陳偉柱譯 模板聖經,現代c++發展的前沿泛型編程思想總結 (是看懂boost類庫的知識儲備)。
3:《C++設計新思維》 侯捷/於春景譯 泛型編程與設計模式的綜合應用,鍛煉思維的好書,(已經買了半年多了,等我有空時一定看'_')。
其他:
C++編程思想,C++語言之父的c++語言特別版 等書本人只在書店裡見過,沒有閱讀就不敢置評了。
(一)語言入門:
《C++ Primer》
最新版本:第三版(第四版國外已上架,國內一些網上書店也在預訂中)
適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認為此書帶著過於強烈的C語言的痕跡,對於C++的學習未必是好事。
《The C++ Programming Language》/《C++程序設計語言》
最新版本:第三版特別版
簡稱TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為「TCPL」,但需與另一本《The C Programmer Language》區分開來)
《Essential C++》
《Accelerated C++》
這兩本薄一些,都是不錯的選擇。《Accelerated C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。
以上幾本書都有相應的中文版,而且翻譯的質量都不錯。上面的書未必都需要讀一遍,但無論如何,TC++PL是應該閱讀的。
(二)進階A:
這個路線側重於語言本身
《Effective C++》
最新版本:第二版(第三版國外已上架,國內一些網上書店也在預訂中)
簡稱EC。C++程序員必讀!很多時候,我們說C++聖經不是指TC++PL,而是這一本。《The Pragmatic Programmer》一書中寫到:「一旦你發現自己要參與C++項目的開發,趕快跑(不要走)到書店去購買Scott Mayer的《Effective C++》,可能還要《More Effective C++》」。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 編程規范》
個人認為此書應為C++程序員必備的案頭書。幾乎Effective系列和Exceptional系列都在這里得到了總結。最新的模版、異常的業界經驗都在這里的到了體現。可能的唯一缺陷就是對一個新手而言,關於「為什麼這么做」的問題,解釋的不夠。
我的看法是:如果你不理解其中的條款,記憶,並且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我認為這本書中的內容至少在2009年以前都不會過時,人們將廣為傳誦它制定的101條戒律。
還不知道他的簡稱,也許「101」會成為一個候選者?
提到《Effective C++》,那麼另外三本書一一浮出水面:
《More Effective C++》
《Exceptional C++》
《More Exceptional C++》。
新書《Exceptional C++ Style》也是值得一看的好書。
上述幾本書,一本也不應該放過。
個人建議上述書籍按順序閱讀。並且,在將來反復閱讀這幾本書。
④ 譚浩強是個什麼樣的人為什麼說他害了很多人 很多人說他把中國的計算機編程水平拉低了一大水準
// 作為一個靠編程吃飯的已工作人士來說句話,譚老寫的書,說實話,他的編碼風格有點糟,通俗點就是不規范,所以呢,他寫的例子,看看就好;
// 我記得那時我才大一(12年)接觸到C語言的教材就是他的書,那時候真慘烈啊,我們班掛科一大半,想想這是啥概念,他的書真的不好看,理論知識過重,實踐欠缺,例子又坑(編譯器環境會導致運行結果的差異並沒有指出),總結一句話,這書害人不淺,導致一開始我們班對編程感興趣的人寥寥無幾;
// 但是呢,畢竟他活躍的年代不同我們現在的年代了,那時候會編程的人並不多,所以他出的書還是有它意義的,不過真的對初學者不友好。師傅領進門,修行看個人,它有些理論只是還是能看的,算是老一輩的智慧結晶,但是說白了,還是得自己來寫代碼才行。
// 個人覺得,編程靠的是編,也就是多去嘗試錯誤,理解錯誤,任何一本書都不能說它把所有坑都列舉出來了,踩踩坑也是增加自己的知識,切記,書能看,但不能多看。
// 看別人的代碼要保持著一種「探究」的心思,它這么寫的目的是啥,為了實現啥功能,每一步是否都有它存在的意義,了解後再去「改進它」,而不是照搬,這樣沒任何學習的意義。