1. 從事游戲開發(程序)工作,要學哪些知識
首先,C++肯定要好了。
C語言程序設計
http://book.jqcq.com/proct/472414.html
語言是國內外廣泛使用的計算機語言,是計算機應用人員應掌握的一種程序設計工具。本書全面系統地介紹了C語言編程技術及其相關理論,是一本能使讀者全面掌握c語言編程技術的好教程。根據需要,作者除了深入淺出地介紹了C語言的傳統編程方法,還別具匠心地介紹了c語言的繪圖功能和一些應用開發實例。本書內容新穎、結構合 ...
C++編程風格
http://book.jqcq.com/proct/620299.html
編程相關的內容,例如增加代碼的可讀性、可維護性、可擴展性以及執行效率等的方法。本書的示例代碼都是從實際程序中抽取出來的,融人了作者的實際開發經驗。講解如何正確地編寫代碼以及避開一些常見的誤區和陷阱,並給出了許多實用的編程規則,可快速提升讀者的C++編程功力。本書描述平實,示例豐富,適合有一定編程� ...
C++編程思想第2卷:實用編程技術
http://book.jqcq.com/proct/413352.html
編程技術和最佳的實踐方法,深入探究了異常處理方法和異常安全設計;介紹C++的字元串、輸入輸出流、STL演算法、容器和模板的現代用法,包括模板元編程;解釋多重繼承問題的難點,展示RTTI的實際使用,描述了典型的設計模式及其實現,特別介紹被認為是標准C++下一版特徵之一的多線程處理編程技術,並提供了最新的研究成果� ...
學好C++後,就要掌握數據結構和演算法的知識,還是STL。
數據結構與 STL(英文版) 數據結構與 STL(英文版)
http://book.jqcq.com/proct/412778.html
數據結構及其實現的基礎知識。書中引導學生通過對方法介面、示例和應用的學習,逐漸理解和掌握如何高效地使用數據結構。適合課堂教學和自學參考。 本書特色 大多數數據結構用STL(標准模板庫)提供,並詳細
數據結構 C++語言描述(英文影印版) 數據結構 C++語言描述(英文影印版)
http://book.jqcq.com/proct/306107.html
數據結構。內容從數據結構的基本原理到面向對象程序設計的方法。書內使用適應面極廣的C++語言。全書14章分別為:1.緒論;2.基本數據類型;3.抽象數據類型與類;4.集合類;5.棧與隊列;6.抽象運算符;7.類屬數據類型;8.類與動態存儲;9.鏈表;10.遞歸;11.樹;12.繼承與抽象類;13.先進的非線性結構;14.構建集合。書後 ...
泛型編程與STL
http://book.jqcq.com/proct/332062.html
編程與STL》闡述了泛型編程的中心思想:concepts、modeling、refinement,並為你展示這些思想如何導出STL的基礎概念:iterators、containers、function objects。循此路線,你可以把STL想像為一個由來的完整優勢……
掌握多線程編程是必須的。
C和C++實務精選:C++面向對象多線程編程
http://book.jqcq.com/proct/351898.html
. 多線程架構與增量多線程編程技術。第1章介紹了用於構建面向對象程序的不同類型C++組件,以及如何使用這些組件來構建多線程架構。第2、3、4章簡要介紹進程、線程、多任務處理、多線程化、規劃以及線程優先權的概念。第5章討論講程間和線程間通信。第6章講座線程與進程同步與合作。第6章詳細講座臨界區、死鎖、數據競爭以 ..
這些掌握了後,開始掌握通行技術。首先是網路協議:
《TCP/IP 基礎(第7版)》
http://book.jqcq.com/proct/399379.html
TCP/IP的體系結構和主要應用程序。全書分為8章,分別介紹TCP/IP體系結構與定址,TCP/IP應用程序,TCP/IP定址與子網, TCP/IP協議,TCP/IP服務,TCP/IP路由選擇, TCP/IP應用程序原理,以及TCP/IP網路故障診斷。本書是國家網路技術水平考試的指定參考教材,適合網路技術人員和網路管理人員閱讀,也可供大中專院校相 ...
TCP/IP詳解?卷Ⅰ:協議
http://book.jqcq.com/proct/404145.html
TCP/IP解析》中的第1卷,主要講述TCP/IP協議方面的內容。與其他的TCP/IP書藉的最大不同在於,本書不僅僅講述了RFCS的標准協議,而且結合大量實例講述了TCP/IP協議包的定義原因及在各種不同的操作系統中(如Sunos4.1.3、Soloris2.2、 AIX3.2.2)的應用與工作方式,這樣可以以動態方式講述TCP/IP的知識,使讀者可以輕松掌� ...
TCP/IP詳解卷三:TCP事務協議 HTTP NNTP和UNIX域協議
http://book.jqcq.com/proct/310116.html
TCP/IP詳解系列」的延續。主要內容包括:TCP事務協議,即T/TCP,這是對TCP的擴展,使客戶-伺服器事務更快、更高效和更可靠; TCP/IP應用,主要是HTTP和NNTP;UNIX域協議,這些協議提供了進程之間通信的一種手段。當客戶與伺服器進程在同一台主機上時,UNIX域協議通常要比TCP/IP快一倍。本書同樣採用了大量的實例和實現細 ...
然後掌握各種平台下SOCKET的編程技術。
TCP/IP協議及網路編程技術
http://book.jqcq.com/proct/580242.html
本書是一本關於TCP/IP協議原理編程技術的教材,由兩部分組成:第1部分系統地介紹了TCP/IP協議族的體系結構,並分別介紹了IP層、傳輸層和應用層中各種協議的具體原理和工作機制;第2部分介紹了基於socket編程介面的網路編程技術,重點講述了客戶端和伺服器端編程應注意的問題、可用的模式和技術。作為一本TCP/IP協議理 ...
Winsock 2網路編程實用教程 Winsock 2網路編程實用教程
http://book.jqcq.com/proct/374343.html
Winsock,即基於Windows的套接字,是專門為網路開發人員開發網路應用程序設計的編程介面。由於現今網路應用的普及,使成為了IT發展的重要分支之一。本書的出版正是順應了這種需求。本書簡潔而專業地介紹了Winsock的基本概念和操作方式,指導程序員如何利用現有的主流開發工具進行最流行的Windows網路應用的開發。同時,本書 ...
Windows網路編程
http://book.jqcq.com/proct/401079.html
Microsoft公司的Visual C++平台不僅具有很強的網路程序處理能力,而且還能提供多種編程風格。與Visual C++捆綁的MFC提供了大量封裝良好的網路類,如Winsock、WinInet、ActiveX、DCOM和ATL等,提高了用戶在利用Visual C++進行網路開發時的效率。本書主要特色在於對技術細節做了深入的介紹,探討了大量網路專用函數以及MFC ..
LINUX網路編程
http://book.jqcq.com/proct/105718.html
本書詳盡而細致地介紹了在Linux操作系統下進行網路編程所需要的各種知識,從基本的進程式控制制、通信到Berkeley套接字都有講解。書中還穿插了大量的實常式序,並配以說明,更加方便讀者的學習和理解。本書內容的精心安排,簡潔的措辭,豐富的實例可以使初學者迅速地掌握Linux網路編程的技術。同時,Linux的高級程序員也可以從� ...
這寫掌握完以後,開始學寫LINUX下的伺服器編程。
Linux 程序設計權威指南(附光碟) Linux 程序設計權威指南(附光碟)
http://book.jqcq.com/proct/314783.html
本書是「Linux與自由軟體資源叢書」之一。目前Linux系統已很普及,但是介紹在Linux上進行開發的書籍並不多,本書的Linux上進行應用開發提供了詳細的參考資料。內容包括Linux開發環境、Linux編程的入門知識、系統和網路編程、多線程程序設計、控制台編程、X Window系統編程、國際化編程知識等。本書內容豐富、實用性強,附帶 ...
Red HatLINUX 核心技術精解第二版(附盤)
http://book.jqcq.com/proct/311825.html
Linux是一個性能可以與商業x86 UNIX操作系統相提並論的32位操作系統.本書全面介紹了Linux的安裝和使用技術,包括Linux的安裝和配置,Linux的運行,在Linux中使用各種外設,以及Linux的其他內容,如用SLIP和PPP撥號上網,將Linux用作Internet主機,在Linux上運行WWW,商務的運作,開發軟體及X編程等.
而GCC是你必須掌握的編譯器,VC也不例外。
GCC技術參考大全
http://book.jqcq.com/proct/378731.html
GCC(GNU編譯程序集合)是目前最重要、應用最廣的開放源代碼軟體。在本書中,專家Arthur Griffith提供了大量關於這種開源軟體的信息,教您學會使用GCC為幾乎所有的平台和語言開發及部署各類軟體。本書分為3個部分。第1部分,「自由軟體編譯程序」,介紹了編譯程序的一些基礎知識,以及一些可以用來下載和安裝編譯程序的指 ...
C++面向對象程序設計題解與上機指導
http://book.jqcq.com/proct/584574.html
GCC在DOS/Windows平台上的版本DJGPP(以及與之配合使用的集成軟體開發環境RHIDE);上機實驗內容與安排,這部分提出了上機實驗的指導思想和上機實驗的內容與安排,供教學參考。隨本書贈送的光碟中包括《C++面向對象程序設計》一書中的全部例題程序,各章習題解答的程序以及 DOS/Windows環境下的GCC版本(DJGPP及其配套 ...
掌握了這些東西是不夠的,你還必須學會伺服器方面游戲邏輯的編寫,因而要掌握腳本語言的使用,在這方面,一般使用LUA,PYTHON和RUBY來寫。
學習Python:第2版(影印版)
http://book.jqcq.com/proct/851923.html
Python是流行、開源、面向對象的編程語言,既可以用於編寫單機運行的程序也可以編寫腳本程序,具有可移植、強大、易用等特點。跟隨專業教師學習是最快捷的掌握此語言的方式。新版的《學習Python))把你帶到Mark Lutz和David Ascher面前,他們是著名的Python專家和培訓師,他們的用語親切、組織良好的文章已經指導了許多編程� ...
Programming Ruby中文版(第2版)
http://book.jqcq.com/proct/543520.html
Ruby是一種跨平台、面向對象的動態類型編程語言。Ruby體現了表達的一致性和簡單性,它不僅是一門編程語言,更是表達想法的一種簡練方式。它不僅受到廣大程序員的歡迎,無數的軟體大師亦為其傾倒。Programming Ruby是關於Ruby語言的一本權威著作,也被稱為PickAxe Book(鎬頭書,由封面上的工具得名)。本書是它的第2版,其� ...
我使用PYTHON,這些掌握後,資料庫方面是要有的。
在LIUNX下一般使用MYSQL和postgresql來作為資料庫:
MySQL 5權威指南(第3版)
http://book.jqcq.com/proct/431843.html
本書全面深入地介紹了MySQL的功能,主要內容包括MySQL、PHP、Apache、Perl等組件的安裝與功能簡介,mysql等一些重要系統管理工具和用戶操作界面的使用,MySQL資料庫系統設計的基礎知識與用不同語言設計MySQL資料庫的過程,以及SQL語法、工具、選項、API應用指南,最大限度地幫助讀者更快地學習和掌握MySQL資料庫系統的設計� ...
好這些知識有了後,可以看一些網路游戲伺服器是如何編寫的,但這方面的書籍很少,即使出版的也是閃閃咄咄的。不過,我還是找到一本,非常的不錯。詳細地講解了游戲的邏輯的實現。
MUD游戲編程(配光碟) MUD游戲編程(配光碟)
http://book.jqcq.com/proct/584461.html
本書從網路基本知識入手,全面闡述了如何開發純文字MUD游戲。並通過構建SimpleMUD和BetterMUD這兩個MUD,重點講述了如何實現MUD。本書分為4大部分。第1部分介紹了計算機網路的基本知識、Winsock/Berkeley Sockets API以及多線程的概念;展示了本書所用的基本庫BasicLib中的所有類和函數;創建了一個套接字型檔SocketLib;介 ...
最後介紹相關網站:
一個開源的網路游戲,你可以從中看出遊戲伺服器的編寫方法:
http://themanaworld.org
游戲開發交流:
http://www.gameres.com
其它,你可以搜索這些關鍵字: RAKNET,OPENTNL。
希望有用!
以上是伺服器的,如果是客戶端的話,就更多了。
2. 編程入門先學什麼好
個人推薦入門C語言或者python :
C語言語法簡單,有良好的邏輯抽象,入門的話還是先面向過程吧,不要剛學就面向對象雲里霧里的,如果是要更全面、深入的學習語言本身就C.
python語法更加簡單簡潔易學,而且有各種強大的庫,擴展庫,可過程可對象,如果是為了通過編程這一手段來迅速的做出有用、實用的程序和界面可以學python.
入門是從Basic語言開始的,大概熟悉程序的基礎語法與邏輯後,進階C語言。
現代很多語言都是從C語言發展而來的,所以可以以C語言做跳板進階其他面向對象的高級語言。
慢慢接觸C++,或高級編程語言(如:Net,Java 等),網頁設計相關的語言(HTML+CSS+Javascript)。
編程入門後,其實學什麼語言已經不太重要了(主要看計劃的發展方向)。程序設計的核心在於其邏輯。把程序設計的邏輯搞懂了,學什麼語言都很快。
學習資源的累計:
我聯合互聯網上的一群大牛,組建了一個編程的免費學習群,你只需要來我們這個群里聽就行,開頭的的第一部分是:四二六.,位於中間的第二部分是:396,處於最後一部分的是:284。 這里有免費的學習資源,每天直播課程,不需要你付出什麼,只需要有一顆學習的心就可以了。 不是想要學習的就不要加了。
3、動手去寫去練
當然只看是很難學會的。我們需要搭建IDE環境來多練習才能完全掌握這些語法。編程學習沒有捷徑可走,只有入門快慢之分。要學會編程只有coding、coding最後還是coding。
送給那些懦弱的人們
A : 我是護士,我的專業就是護理。我做不了excel、做不了ppt、我學不會ps,好難,我不會寫文章。
我: 我學習那麼好,寫字那麼漂亮,編程也不錯,ps也挺好、我還能打籃球、我會兵乓求、我會羽毛球、我會足球、我會設計、我會英文。(有的都是高二退學之後自己加強學習的,讀書只給了我 算數、識字這些基本的的能力),我特么是神嗎?
A : 人人都跟你一樣?不是誰都能用很短的時間學很多的東西。
我 :我大概是神吧!你能少看一點 《爸爸去哪兒》、《額滴歌神啊》、《奔跑吧兄弟》嗎,今天出了《爸爸去哪》,明天來個《女兒去哪》、《爺爺去哪兒》,你看得完?你能不能看點有用的東西?例如有點啟發、讓人學到東西的影片或者書?
A:委屈的癟癟嘴,那好,我要學習,給我買一本書吧,推薦一下。
我:書到了,學習 吧,一個月後我要看你的成績。我來考考你
A:好難啊,我好睏,我要看一會兒電視.....(然而沒然後了....)
其實,這位A同學,極度的懦弱,並不是她不上進,只是那麼的懦弱,那麼的沉迷於垃圾節目、垃圾書籍,喜歡看不倫不類,不三不四的東西。不明白自己應該要什麼,自己怎麼做才能得到,認為自己的能力那麼的差,做不到
B:大神,我要學node了,推薦一下node的書籍唄
我:恩,入門看一下《node於express開發》吧,然後看看node官網。還有一些博客什麼的。當然了,你完全按照那本書,也能做出一些的東西了。最重要的是,要自己動手,去做東西,然後發現問題,解決問題。提升自己。
B:大神,除了那本書,還有別的書嗎?
我:書很多,但書不在於多,而是,你能否理解了,並且能運用了?你看完了嗎?
B:我感覺很難做,node好難。
我:做做項目,搜搜Google、看看github。
而今,我不知道這位同學水平到底到了什麼水平,我想,應該不會太好,最終原因,我想是因為沒有深入的去折騰,沒有去寫代碼,沒去發現自己的問題
其實,我們的潛力很大,我們能學的更好。我們能掌握的更多,但是許多人都做不到堅持、做不到深入。不肯思考,不肯的動手,是阻礙我們進步的最大原因。
後記:
人,應該要明確自己的目標,擁有理想。
人,重要的不是你站在哪裡,而是你往哪個方向前進。
無論何時,不管你已經得到了多少,擁有了多少。都不是墮落的理由。
對於不肯上進,沒意志力的人來說,等於是,你想死,任何人都救不了你!
感謝自己,感謝自己沒有繼續讀大學。感謝自己在讀書時代已經養成了獨立思考,喜歡折騰的習慣。
3. 初學程序員要掌握些什麼,要怎麼學習
1. 程序員至少要學一門程序設計語言,這樣才能開始做點什麼。主流的程序設計語言一般都有一本聖經級別的書,例如 C 語言中, K&R 的 The C Programmer Lanugage,C++ 中的 C++ Primer, Java 中的 Thinking in Java。扎扎實實地選一本好好學習一下,把習題都做一遍,反復 閱讀,掌握書中的知識點。還有一些書可以增強對這些語言的理解,例如 C 專家編程,C 和指針這些,還有 C++ 中的 Effective C++, Java 中的 Effective Java。
2. 一個程序員,至少要精通一門語言,無論是 C, C++ 還是 Java 還是其它。所以除了掌握這門語言的基本知識外,要做到精通,還需要其它 兩個方面的知識。一是語言標准,關於語言核心的一切都在這裡面,不熟悉語言標准怎麼敢說精通。另一方面是標准庫,要經常讀語言標准庫, 確保自己了解標准庫的方方面面,不至於要用到一個東西時,標准庫里有而自己不知道。
如何去學習:
1. 只學程序設計語言本身無法成為出色的程序員,就像你熟悉字典里每一個字,並不說明你是一個優秀作家一樣。能用精通的語言寫出有用的程序,就要學習領域知識。無論是三大浪漫的操作系統,圖形學,編譯器,還是做其它領域,總有一些領域知識是必須要掌握的。很多領域知識都有一些基礎的文檔,要成為領域內的專家,就要反復閱讀這些基礎的文檔。
2. 除了程序語言本身以及領域知識外,還有一些通用的知識是非常有必要了解的。假如我們要開發一個軟體,現在你已經精通了語言以及領域 知識,那麼就意味著一定可以開發出優秀的程序嗎?不一定。你還要保證你寫的程序是高質量的程序。
一是開發效率,二是運行效率。
開發效率
與開發效率相關的東西很多,例如程序的可讀性,可維護性,正確性。從這兩個方面,又可以衍生出代碼風格,高內聚,低耦合,設計良好的測試,設計模式等等問題。需要閱讀 《代碼大全》,《重構》,《設計模式》,《編寫可讀代碼的藝術》這一類的書籍。光閱讀還不行,還需要在編寫程序的過程中,不斷地思考,實踐書中說的內容。
運行效率
與運行效率相關的東西也不少,例如如何寫出編譯器友好的程序,這一點和精通程序設計語言本身以及了解編譯器特性有關系。另一方面,是與並發編程相關的,要提高程序運行效率,除了程序本身之外,如何利用並發提高運行效率是又一個重要的內容。
4. c語言是有什麼
想成為編程高手,那就耐心把以下文章看完!
一、為何要學編程?
每個人的動機不一樣。大致有:
1、為了找個好工作;或為了有更好的機會和更好的發展。
2、看到別人超厲害,所以也想學。
3、實際工作中很多場合需要。
4、從小就立志做個程序員,做軟體工程師。
5、振興中國的軟體事業。
。。。。。。
================================================
二、如何學編程?
1、多看好書。
差書誤人子弟,不但浪費時間和精力,而且打擊人的信心,差書使人很久都不會,讓會讓人懷疑自已的學習能力。
現在的書很多,但好書很少,特別是被大家公認很有價值的好書,更是少之又少。歷經多年時間考驗和市場風雨不殘酷洗禮而僅存的巨著,更是極其稀少。中國歷史上文學小說類書本多如牛毛,但僅存的巨著,也只不過<<紅樓夢>>等四本名著而已,編程方面也是如此。
2、多動手。
這一點很重要。而且特別重要。「紙上得來終覺淺,絕知此事要躬行。」陸游的千古名句說的就是這個道理,並且同樣適合於編程方面。
================================================
三、用什麼語言最好?
這主要取決於應用領域,每種語言都有自已的長處和不足。
1、匯編語言和C語言在單片機及工控領域用較多。另外C語言也是一種通用語言,是學C++/c#的起點。
2、C++系統編程等多個方面,最常用的編譯器是VC。
3、C#/java網路編程方面新興的。
4、VB通用。
5、還有Delphi等。。。。。。
個人建議:從未編過程的,就從學vb開始。有基礎的可直接學c++/VC。
===================================================
四、有什麼好書?
幾年前,台灣著名技術作家侯捷先生曾經寫過一篇影響很大的書評文章,叫做《MFC四大天王》。文章的意思是說在MFC的浩瀚書海中,只要認真研讀和學習其中四本,就可以「五嶽歸來不看山」。侯先生雖以MFC為例,但是這個道理卻同樣適合於MFC之外的很多具體技術領域,這不能不說是一個有趣的統計現象。
通常在某一個具體細分的技術領域,會自然而然地出現3-5本頂級著作,它們彼此互相配合,形成一個完整的體系。對於學習者來說,只需要認真研讀這幾本書,就足以升堂入室。我樂於將這種現稱為「四書五經現象」。對於讀者來說,如果能夠找到該領域中的「四書五經」,則無論在時間上還是金錢上都是最經濟的選擇。好書幾本,勝過爛書幾捆,這個體會想必大家都有。在此,幫助大家遴選各個技術領域里的「四書五經」。
編程的書可謂汗牛充棟,其中經典也是不泛其數,但絕大多數的過來人,都一致認為,要想很快的入門並盡快的投入到編程實踐中,只要其中的四到五本也就夠了,即只看經典中的經典,聖經級的書就可以了。
所謂活到老學到老,程序員是個終身學習的職業,要不斷的看書,直到放棄編程的那一天。所以,您要讀的好書也絕非以下推薦的這些書喲,呵呵。
一句話,由於我們的時間、精力、金錢都是有限的,如何以最小的代價換得最大的收獲。
================================================================
五、經典好書分類熱銷榜
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個編程實例,展示專家經驗,行文有趣,深處淺出。
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編程泰山北斗」---
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、驅動開發
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版)
UNIX環境高級編程(第2版)
UNIX環境高級編程(第2版)---UNIX編程「聖經
UNIX網路編程 第1卷:套介面API(第3版)
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX編程環境
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX系統編程
UNIX環境高級編程
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技術手冊
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++手機應用開發
Windows Mobile手機應用開發--傅曦 齊宇 徐駿
SYMBIAN OS C++手機應用開發 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣譯
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、電子
無線電識圖與電路故障分析輕松入門(第二版) -------------------胡斌
無線電元器件檢測與修理技術輕松入門(第二版) -------------------胡斌
圖表細說電子技術識圖-------------------胡斌
圖表細說電子元器件-------------------胡斌
圖表細說元器件及實用電路-------------------胡斌
================================================================
六、怎樣成為一名程序員
通過以下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資料庫系統開發實例導航》。
最後將完成的模擬軟體刻成光碟,作為自己的作品去面試,以此踏上自己光輝的職業程序員之路!
5. 本人想學習編程,需要哪些入門書籍
C語言、C++、或者java
具體怎樣學編程 :
1.明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
2.打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
(1)數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
(2)邏輯思維能力的培養學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
(3)選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發開發工具如 Java 等。 3)網路開發對客戶端開發工具如:Java Script 等;對伺服器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
3. 注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
4.掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程......;學習 COM 就要知道 VTALBE 、類廠、介面、idl......,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
5.多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
6.養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
7.上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。例如網站「編程課堂」()主要以 VB 和 Delph;教學和交流為主,提供大量實用技巧;網站「現在時編程學園」()是專門介紹C、VC、VB、Delphi 等的綜合編程網站;網站「 VB 編程樂園 」()提供內容豐富而且實用的編程技術文章、精選控制項、源代碼下載、計算機考試、相關軟體以及編程書籍推薦等等。
8.加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。
6. 現在主流編程語言都有哪些應該怎樣循序漸進地學好這些語言就業具備哪些語言的能力可以有更強競爭力
我是下載一部書的時候看到的,希望對你能有幫助:教的表面看來是馬步沖權實則都是內功心法,郭靖拜師洪七之後開始練習降龍十八掌憑借的就是這深厚的內
功,吞食蝮蛇寶血又加上練習了周博通傳授的九陰真經和外加功夫雙手互博技之後,終於練就行走江湖的武
功,由此可見馬玉道長傳授給了郭靖的是最基礎的,也是最重要的觀念,編程也好比蓋高樓,根基沒打好早晚有
一天會挎掉的,而且蓋得越高,損失也越慘重。這些底層知識和課本不是沒有用也不是高深的不能學,而是我
們必須掌握的基礎。
這些是個人的愚見,說的不是很清楚,大家可以看看這些前輩們的經驗,相信看完後大家一定會有所體會
說了這么多無非是想告誡大家要打好扎實的基礎,不要只顧追求時髦的技術,打好基礎再去學那些技術或是
參加些培訓,對自身的發展會更好的。
基礎這么重要怎樣學好它呢?我覺得學好它們應該對照這些基礎課程所涉及的方面,多看一些經典書籍,像算
法導論,編程珠璣,代碼大全(具體介紹在本論壇每本書的版塊里)等,這些經典書籍不僅能幫助我們打好基礎,而且
對我們的程序人生也能產生莫大的影響,相信認真研究看完這些書籍後,我們的程序之路會十分順暢。然而這
些書籍並不好讀,有些甚至相當難讀,國內的大學用這些書當教材的也不多,這些書又偏向理論,自己讀起來難免會
有些枯燥無味。於是就想到建一個論壇,大家共同討論學習這些書籍,就會學的更踏實更牢固更有趣,這樣就能
為以後的學習打下扎實的基礎。
1.為計算機初學者或基礎不太扎實的朋友指明方向,要注重內功
2.為學習者推薦經典書籍,指明應看哪些書籍,怎樣練內功
3.為學習者提供一個交流的地方,更容易學好,不會那麼枯燥
4.對每本書分章分別討論,更專,會學的更踏實更牢固
5.討論的都是經典書籍,每一本都會讓我們受益匪淺,對每本書分別討論是很有意義的基礎的重要性(程序員之路)
學習編程有幾年了,感覺走了不少彎路,而不少的學弟學妹又在重蹈我當初的覆轍,不免有些痛心。最近在網
上也看了許多前輩們的經驗建議,再結合自己的學習經歷在這里談談基礎的重要性,希望幫助大家少走些彎
路。
什麼是基礎呢?就是要把我們大學所學的離散數學,演算法與數據結構,操作系統,計算機體系結構,編譯原理
等課程學好,對計算機的體系,CPU本身,操作系統內核,系統平台,面向對象編程,程序的性能等要有深層次的掌握。
初學者可能體會不到這些基礎的重要性,學習jsp,donet,mfc,vb的朋友甚至會對這些嗤之以鼻,但是一開始沒學
好基礎就去學jsp或donet會產生很壞的影響,而且陷入其中不能自拔。
我上大二的時候還對編程沒什麼概念,就上了門C++也不知道能幹什麼,老師說MFC也不知道是什麼東西,
看別的同學在學asp.net就跟著學了,然後就了解到.net,j2ee,php是什麼了,就覺得軟體開發就是用這些了,而上
的那些專業課又與我們學的sqlserver啊,css啊,ajax啊,毫無關系,就感慨啊,還不如回家自學去就為一個文憑嗎?
還不如去培訓,浪費這么多錢.於是天天基本上沒去上什麼課,天天就在做網站,幾個學期就做了三個網站。感覺做
這些網站就是學到些技巧,沒什麼進步,這些技巧就好比別人的名字,告訴你你就知道了,網上也都可以搜到。那時
候就覺得把.net學好就行了,搞j2ee的比較難,搞api編程就別想了,操作系統更是望塵莫及了。後來隨著學習
的深入和看了網上許多前輩們的建議才對這些基礎的重要性有所體會。
雖然.net或java的開發並不直接用到匯編,操作系統這些,但是不掌握這些基礎是有很大問題的,因為你只知
其然不知其所有然,在mfc和.net裡面控制項一拖什麼都做好了,很方便,但是出了問題可能就解決不了,有些在
網上搜都搜不到。這就是基礎沒打好,不知道它的原理就不知道出錯的原因。在學.net的時候常會討論那些控制項
該不該用別人說盡量別用也不知道為什麼?不讓用是因為你在高層開發,你不知道它的原理出錯了你可能解決不
了,但其實是應該用的,不然人家開發它幹嘛,但要在了解它的原理後去用就會很方便。
要編寫出優秀的代碼同樣要扎實的基礎,如果數據結構和演算法學的不好,怎麼對程序的性能進行優化,怎樣
從類庫中選擇合適的數據結構。如果不了解操作系統,怎樣能了解這些開發工具的原理,它們都是基於操作系統
的。不了解匯編,編譯原理,怎麼知道程序運行時要多長時間要多少內存,就不能編出高效的代碼。
如果沒有學好基礎一開始就去學.net,java這些越往後就會覺得越吃力,它們涉及的技術太多了,而且不但
在更新,對於三層啊,mvc,orm這些架構,你只會用也不明白為什麼用,就感覺心裡虛,感覺沒學好。而你把
面向對象,軟體工程,設計模式這些基礎學好了再去看這些就可以一不變應萬變。
大家不要被新名詞、新技術所迷惑.NET、XML等等技術固然誘人,可是如果自己的基礎不扎實,就像是在
雲里霧里行走一樣,只能看到眼前,不能看到更遠的地方。這些新鮮的技術掩蓋了許多底層的原理,要想真正
的學習技術還是走下雲端,扎扎實實的把基礎知識學好,有了這些基礎,要掌握那些新技術也就很容易了。
開始編程應該先學C/C++,系統api編程,因為它們更接近底層,學習他們更能搞清楚原理。學好了c/C++
編程和基礎,再去學習mfc,.net這些就會比較輕松,而且很踏實。假設學習VB編程需要4個月,學習基礎課程和
VC的程序設計需要1年。那麼如果你先學VB,再來學習後者,時間不會減少,還是1年,而反過來,如果先學習
後者,再來學VB,也許你只需要1個星期就能學得非常熟練。
編程就好比練功,如果學習.net,mfc,vb等具體的語言和工具是外功(招式),對基礎的學習就是內功,只注重
招式而內功不扎實是不可能成為高手的。很多人會認為《射鵰英雄傳》中馬玉道長什麼都沒有教郭靖,馬道長教的表面看來是馬步沖權實則都是內功心法,郭靖拜師洪七之後開始練習降龍十八掌憑借的就是這深厚的內
功,吞食蝮蛇寶血又加上練習了周博通傳授的九陰真經和外加功夫雙手互博技之後,終於練就行走江湖的武
功,由此可見馬玉道長傳授給了郭靖的是最基礎的,也是最重要的觀念,編程也好比蓋高樓,根基沒打好早晚有
一天會挎掉的,而且蓋得越高,損失也越慘重。這些底層知識和課本不是沒有用也不是高深的不能學,而是我
們必須掌握的基礎。
這些是個人的愚見,說的不是很清楚,大家可以看看這些前輩們的經驗,相信看完後大家一定會有所體會
說了這么多無非是想告誡大家要打好扎實的基礎,不要只顧追求時髦的技術,打好基礎再去學那些技術或是
參加些培訓,對自身的發展會更好的。
基礎這么重要怎樣學好它呢?我覺得學好它們應該對照這些基礎課程所涉及的方面,多看一些經典書籍,像算
法導論,編程珠璣,代碼大全(具體介紹在本論壇每本書的版塊里)等,這些經典書籍不僅能幫助我們打好基礎,而且
對我們的程序人生也能產生莫大的影響,相信認真研究看完這些書籍後,我們的程序之路會十分順暢。然而這
些書籍並不好讀,有些甚至相當難讀,國內的大學用這些書當教材的也不多,這些書又偏向理論,自己讀起來難免會
有些枯燥無味。於是就想到建一個論壇,大家共同討論學習這些書籍,就會學的更踏實更牢固更有趣,這樣就能
的。為了方便大家閱讀,我把這些前輩們的建議的文章整理成了pdf,大家在下面下載吧!希望對大家有幫助。pdf
地址:http://bbs.theithome.com/read-htm-tid-123.html
7. 學習編程應先學習什麼語言
編程
這是每個游戲編程FAQ里都有的問題。這個問題每星期都會在游戲開發論壇上被問上好幾次。這是個很好的問題,但是,沒人能給出簡單的答案。在某些應用程序中,總有一些計算機語言優於其他語言。下面是幾種用於編寫游戲的主要編程語言的介紹及其優缺點。希望這篇文章能幫助你做出決定。
1、C語言
如果說FORTRAN和COBOL是第一代高級編譯語言,那麼C語言就是它們的孫子輩。C語言是Dennis Ritchie在七十年代創建的,它功能更強大且與ALGOL保持更連續的繼承性,而ALGOL則是COBOL和FORTRAN的結構化繼承者。C語言被設計成一個比它的前輩更精巧、更簡單的版本,它適於編寫系統級的程序,比如操作系統。在此之前,操作系統是使用匯編語言編寫的,而且不可移植。C語言是第一個使得系統級代碼移植成為可能的編程語言。
C語言支持結構化編程,也就是說C的程序被編寫成一些分離的函數呼叫(調用)的集合,這些呼叫是自上而下運行,而不像一個單獨的集成塊的代碼使用GOTO語句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的「空心粉式代碼」代碼要簡單得多。事實上,C仍然具有GOTO語句,不過它的功能被限制了,僅當結構化方案非常復雜時才建議使用。
正由於它的系統編程根源,將C和匯編語言進行結合是相當容易的。函數調用介面非常簡單,而且匯編語言指令還能內嵌到C代碼中,所以,不需要連接獨立的匯編模塊。
優點:有益於編寫小而快的程序。很容易與匯編語言結合。具有很高的標准化,因此其他平台上的各版本非常相似。
缺點:不容易支持面向對象技術。語法有時會非常難以理解,並造成濫用。
移植性:C語言的核心以及ANSI函數調用都具有移植性,但僅限於流程式控制制、內存管理和簡單的文件處理。其他的東西都跟平台有關。比如說,為Windows和Mac開發可移植的程序,用戶界面部分就需要用到與系統相關的函數調用。這一般意味著你必須寫兩次用戶界面代碼,不過還好有一些庫可以減輕工作量。
用C語言編寫的游戲:非常非常多。
資料:C語言的經典著作是《The C Programming Language》,它經過多次修改,已經擴展到最初的三倍大,但它仍然是介紹C的優秀書本。一本極好的教程是《The Waite Group's C Primer Plus》。
2、C++
C++語言是具有面向對象特性的C語言的繼承者。面向對象編程,或稱OOP是結構化編程的下一步。OO程序由對象組成,其中的對象是數據和函數離散集合。有許多可用的對象庫存在,這使得編程簡單得只需要將一些程序「建築材料」堆在一起(至少理論上是這樣)。比如說,有很多的GUI和資料庫的庫實現為對象的集合。
C++總是辯論的主題,尤其是在游戲開發論壇里。有幾項C++的功能,比如虛擬函數,為函數呼叫的決策制定增加了一個額外層次,批評家很快指出C++程序將變得比相同功能的C程序來得大和慢。C++的擁護者則認為,用C寫出與虛擬函數等價的代碼同樣會增加開支。這將是一個還在進行,而且不可能很快得出結論的爭論。
我認為,C++的額外開支只是使用更好的語言的小付出。同樣的爭論發生在六十年代高級程序語言如COBOL和FORTRAN開始取代匯編成為語言所選的時候。批評家正確的指出使用高級語言編寫的程序天生就比手寫的匯編語言來得慢,而且必然如此。而高級語言支持者認為這么點小小的性能損失是值得的,因為COBOL和FORTRAN程序更容易編寫和維護。
優點:組織大型程序時比C語言好得多。很好的支持面向對象機制。通用數據結構,如鏈表和可增長的陣列組成的庫減輕了由於處理低層細節的負擔。
缺點:非常大而復雜。與C語言一樣存在語法濫用問題。比C慢。大多數編譯器沒有把整個語言正確的實現。
移植性:比C語言好多了,但依然不是很樂觀。因為它具有與C語言相同的缺點,大多數可移植性用戶界面庫都使用C++對象實現。
使用C++編寫的游戲:非常非常多。大多數的商業游戲是使用C或C++編寫的。
資料:最新版的《The C++ Programming Language》非常好。作為教程,有兩個陣營,一個假定你知道C,另外一個假定你不知道。到目前為止,最好的C++教程是《Who's Afraid of C++》,如果你已經熟知C,那麼試一下《Teach Yourself C++》。
3、我該學習C++或是該從C開始
我不喜歡這種說法,但它是繼「我該使用哪門語言」之後最經常被問及的問題。很不幸,不存在標准答案。你可以自學C並使用它來寫程序,從而節省一大堆的時間,不過使用這種方法有兩個弊端:
你將錯過那些面向對象的知識,因為它可能在你的游戲中使得數據建模更有效率的東西。
最大的商業游戲,包括第一人稱射擊游戲很多並沒有使用C++。但是,這些程序的作者即使使用老的C的格式,他們通常堅持使用面向對象編程技術。如果你只想學C,至少要自學OO(面向對象)編程技術。OO是模擬(游戲)的完美方法,如果你不學習OO,你將不得不「辛苦」的工作。
4、匯編語言
顯然,匯編是第一個計算機語言。匯編語言實際上是你計算機處理器實際運行的指令的命令形式表示法。這意味著你將與處理器的底層打交道,比如寄存器和堆棧。如果你要找的是類英語且有相關的自我說明的語言,這不是你想要的。
確切的說,任何你能在其他語言里做到的事情,匯編都能做,只是不那麼簡單 — 這是當然,就像說你既可以開車到某個地方,也可以走路去,只是難易之分。話雖不錯,但是新技術讓東西變得更易於使用。
總的來說,匯編語言不會在游戲中單獨應用。游戲使用匯編主要是使用它那些能提高性能的零零碎碎的部分。比如說,毀滅戰士整體使用C來編寫,有幾段繪圖程序使用匯編。這些程序每秒鍾要調用數千次,因此,盡可能的簡潔將有助於提高游戲的性能。而從C里調用匯編寫的函數是相當簡單的,因此同時使用兩種語言不成問題。
特別注意:語言的名字叫「匯編」。把匯編語言翻譯成真實的機器碼的工具叫「匯編程序」。把這門語言叫做「匯編程序」這種用詞不當相當普遍,因此,請從這門語言的正確稱呼作為起點出發。
優點:最小、最快的語言。匯編高手能編寫出比任何其他語言能實現的快得多的程序。你將是利用處理器最新功能的第一人,因為你能直接使用它們。
缺點:難學、語法晦澀、堅持效率,造成大量額外代碼 — 不適於心臟虛弱者。
移植性:接近零。因為這門語言是為一種單獨的處理器設計的,根本沒移植性可言。如果使用了某個特殊處理器的擴展功能,你的代碼甚至無法移植到其他同類型的處理器上(比如,AMD的3DNow指令是無法移植到其它奔騰系列的處理器上的)。
使用匯編編寫的游戲:我不知道有什麼商業游戲是完全用匯編開發的。不過有些游戲使用匯編完成多數對時間要求苛刻的部分。
資料:如果你正在找一門匯編語言的文檔,你主要要找晶元的文檔。網路上如Intel、AMD、Motorola等有一些關於它們的處理器的資料。對於書籍而言,《Assembly Language: Step-By-Step》是很值得學習的。
5、Pascal語言
Pascal語言是由Nicolas Wirth在七十年代早期設計的,因為他對於FORTRAN和COBOL沒有強制訓練學生的結構化編程感到很失望,「空心粉式代碼」變成了規范,而當時的語言又不反對它。Pascal被設計來強行使用結構化編程。最初的Pascal被嚴格設計成教學之用,最終,大量的擁護者促使它闖入了商業編程中。當Borland發布IBM PC上的 Turbo Pascal時,Pascal輝煌一時。集成的編輯器,閃電般的編譯器加上低廉的價格使之變得不可抵抗,Pascal編程了為MS-DOS編寫小程序的首選語言。
然而時日不久,C編譯器變得更快,並具有優秀的內置編輯器和調試器。Pascal在1990年Windows開始流行時走到了盡頭,Borland放棄了Pascal而把目光轉向了為Windows 編寫程序的C++。Turbo Pascal很快被人遺忘。
最後,在1996年,Borland發布了它的「Visual Basic殺手」— Delphi。它是一種快速的帶華麗用戶界面的 Pascal編譯器。由於不懈努力,它很快贏得了一大群愛好者。
基本上,Pascal比C簡單。雖然語法類似,它缺乏很多C有的簡潔操作符。這既是好事又是壞事。雖然很難寫出難以理解的「聰明」代碼,它同時也使得一些低級操作,如位操作變得困難起來。
優點:易學、平台相關的運行(Dephi)非常好。
缺點:「世界潮流」面向對象的Pascal繼承者(Mola、Oberon)尚未成功。語言標准不被編譯器開發者認同。專利權。
移植性:很差。語言的功能由於平台的轉變而轉變,沒有移植性工具包來處理平台相關的功能。
使用Pascal編寫的游戲:幾個。DirectX的Delphi組件使得游戲場所變大了。
資料:查找跟Delphi有關的資料,請訪問:Inprise Delphi page。
6、Visual Basic
哈,BASIC。回到八十年代的石器時代,它是程序初學者的第一個語言。最初的BASIC形式,雖然易於學習,卻是可怕的無組織化,它義無返顧的使用了GOTO充斥的「空心粉式代碼」。當回憶起BASIC的行號和GOSUB命令,沒有幾個人能止住眼角的淚水。
快速前進到九十年代早期,雖然不是蘋果公司所希望的巨人,HyperCard仍然是一個在Windows下無法比擬的吸引人的小型編程環境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂貴。為了與HyperCard一決高下,微軟取得了一個小巧的名為Thunder編程環境的許可權,並把它作為Visual Basci 1.0發布,其用戶界面在當時非常具有新意。這門語言雖然還叫做Basic(不再是全部大寫),但更加結構化了,行號也被去除。實際上,這門語言與那些內置於TRS-80、Apple II及Atari里的舊的ROM BASIC相比,更像是帶Basic風格動詞的Pascal。
經過六個版本,Visual Basic變得非常漂亮。用戶界面發生了許多變化,但依然保留著「把代碼關聯到用戶界面」的主旨。這使得它在與即時編譯結合時變成了一個快速原型的優異環境。
優點:整潔的編輯環境。易學、即時編譯導致簡單、迅速的原型。大量可用的插件。雖然有第三方的DirectX插件,DirectX 7已准備提供Visual Basic的支持。
缺點:程序很大,而且運行時需要幾個巨大的運行時動態連接庫。雖然表單型和對話框型的程序很容易完成,要編寫好的圖形程序卻比較難。調用Windows的API程序非常笨拙,因為VB的數據結構沒能很好的映射到C中。有OO功能,但卻不是完全的面向對象。專利權。
移植性:非常差。因為Visual Basic是微軟的產品,你自然就被局限在他們實現它的平台上。也就是說,你能得到的選擇是:Windows,Windows或Widnows。當然,有一些工具能將VB程序轉變成Java。
使用Visual Basic編寫的游戲:一些。有很多使用VB編寫的共享游戲,還有一些是商業性的。
資料:微軟的VB頁面有一些信息。
7、Java
Java是由Sun最初設計用於嵌入程序的可移植性「小C++」。在網頁上運行小程序的想法著實吸引了不少人的目光,於是,這門語言迅速崛起。事實證明,Java不僅僅適於在網頁上內嵌動畫 — 它是一門極好的完全的軟體編程的小語言。「虛擬機」機制、垃圾回收以及沒有指針等使它很容易實現不易崩潰且不會泄漏資源的可靠程序。
雖然不是C++的正式續篇,Java從C++ 中借用了大量的語法。它丟棄了很多C++的復雜功能,從而形成一門緊湊而易學的語言。不像C++,Java強制面向對象編程,要在Java里寫非面向對象的程序就像要在Pascal里寫「空心粉式代碼」一樣困難。
優點:二進制碼可移植到其他平台。程序可以在網頁中運行。內含的類庫非常標准且極其健壯。自動分配合垃圾回收避免程序中資源泄漏。網上數量巨大的代碼常式。
缺點:使用一個「虛擬機」來運行可移植的位元組碼而非本地機器碼,程序將比真正編譯器慢。有很多技術(例如「即時」編譯器)很大的提高了Java的速度,不過速度永遠比不過機器碼方案。早期的功能,如AWT沒經過慎重考慮,雖然被正式廢除,但為了保持向後兼容不得不保留。越高級的技術,造成處理低級的機器功能越困難,Sun為這門語言增加新的「受祝福」功能的速度實在太慢。
移植性:最好的,但仍未達到它本應達到的水平。低級代碼具有非常高的可移植性,但是,很多UI及新功能在某些平台上不穩定。
使用Java編寫的游戲:網頁上有大量小的Applet,但僅有一些是商業性的。有幾個商業游戲使用Java作為內部腳本語言。
資料:Sun的官方Java頁面有一些好的信息。IBM也有一個非常好的Java頁面。JavaLobby是一個關於Java新聞的最好去處。
8、創作工具
上面所提及的編程語言涵蓋了大多數的商業游戲。但是也有一個例外,這個大游戲由於它的缺席而變得突出。
「神秘島」。沒錯,賣得最好的商業游戲不是使用以上任何一門語言編的,雖然有人說「神秘島」99%是使用 3D建模工具製作的,其根本的編程邏輯是在HyperCard里完成的。
多數創作工具有點像Visual Basic,只是它們工作在更高的層次上。大多數工具使用一些拖拉式的流程圖來模擬流程式控制制。很多內置解釋的程序語言,但是這些語言都無法像上面所說的單獨的語言那樣健壯。
優點:快速原型 — 如果你的游戲符合工具製作的主旨,你或許能使你的游戲跑得比使用其他語言快。在很多情況下,你可以創造一個不需要任何代碼的簡單游戲。使用插件程序,如Shockware及IconAuthor播放器,你可以在網頁上發布很多創作工具生成的程序。
缺點:專利權,至於將增加什麼功能,你將受到工具製造者的支配。你必須考慮這些工具是否能滿足你游戲的需要,因為有很多事情是那些創作工具無法完成的。某些工具會產生臃腫得可怕的程序。
移植性:因為創作工具是具有專利權的,你的移植性以他們提供的功能息息相關。有些系統,如Director可以在幾種平台上創作和運行,有些工具則在某一平台上創作,在多種平台上運行,還有的是僅能在單一平台上創作和運行。
使用創作工具編寫的游戲:「神秘島」和其他一些同類型的探險游戲。所有的Shockwave游戲都在網路上。
資料:Director、HyperCard、SuperCard、IconAuthor、Authorware。
9、結論
你可能希望得到一個關於「我該使用哪種語言」這個問題的更標準的結論。非常不幸,沒有一個對所有應用程序都最佳的解決方案。C適於快而小的程序,但不支持面向對象的編程。C++完全支持面向對象,但是非常復雜。Visual Basic與Delphi易學,但不可移植且有專利權。Java有很多簡潔的功能,但是慢。創作工具可以以最快的速度產生你的程序,但是僅對某一些類型的程序起作用。最好的方法是決定你要寫什麼樣的游戲,並選擇對你的游戲支持最好的語言。「試用三十天」的做法成為工業標準是件好事情。
8. 編程都有哪些語言
常見的計算機編程語言有:
編程語言一、C語言
C語言是世界上最流行、使用最廣泛的高級程序設計語言之一。在操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C語言繪圖能力強,具有可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。
編程語言二、java
Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平台(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於個人PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。
編程語言三、c++
C++這個詞在中國大陸的程序員圈子中通常被讀做「C加加」,而西方的程序員通常讀做「C plus plus」,「CPP」。 它是一種使用非常廣泛的計算機編程語言。C++是一種靜態數據類型檢查的、支持多重編程範式的通用程序設計語言。它支持過程化程序設計、數據抽象、面向對象程序設計、泛型程序設計等多種程序設計風格。
編程語言四、php
PHP,是英文超文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被廣泛地運用。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。(php公益培訓)
編程語言五、c#
C#是微軟公司發布的一種面向對象的、運行於.NET Framework之上的高級程序設計語言。並定於在微軟職業開發者論壇(PDC)上登台亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、介面、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。