『壹』 學習編程的步驟
很多想學編程的朋友都說,進入IT行業是一件很困難的事情。認為這門專業很有發展前景,但是卻很高深,因而望而卻步。我從事IT行業多年了,我想以我對專業的理解來和大家聊一聊,與這些熱愛IT行業的朋友共同探討一下編程的奧妙。
進入IT界並不困難
認為進入IT行業困難可能是由以下幾個原因造成的:
1.缺乏信心,中途放棄
認為自己能力不夠,苯。有一些人是非常聰明,但是多數人的IQ都差不多,之所以很多事情沒有做好,可能是其他原因。
認為自己基礎差。其實,只要設置合理,完全可以很快的把基礎知識掌握好
認為自己學歷低,學了也沒什麼用處。要知道,任何公司都是要贏利的,任何公司用人都是看能力,要文憑要職稱都是為了證明你的能力。公司就是要看你有沒有能力。從我的經驗,一個IT公司的技術部門經理只要和你面談5分鍾,就知道你有沒有能力,有什麼樣的能力了。
北大青鳥APTACH的課程起點非常的低,適合各種層次的學員學習。
2.切入點錯誤
學習是一個循序漸進、由易到難的過程。很多朋友都選擇了一個很難的目標,但是這個目標是要有其他計算機知識做基礎的,而你又沒有掌握,所以就會學習困難甚至不能學習下去。我個人認為北大青鳥APTACH的課程設置非常合理,適合學員快速的掌握。
3.學習方法不對
掌握好的學習方法,就有事半功倍的效果。我學習編程,包括現在大多數的程序員、軟體工程師,他們的知識都是自己拿書看出來的,當時沒有條件參加學習班學習。所以速度比較慢。一慢,就影響自信心,所以很多人就堅持不下去了。成功的比較少。所以參加一個好的學習班很有必要,北大青鳥APTACH的課程是從印度,包括國際上多年實踐、提煉出來的,加上老師根據自己多年的經驗把一些合理的方法傳授給大家,避免大家走彎路,快速成功。
4.確定目標,立即動手想做一件事情的時候應該立即動手。在這個世界上,只要有時間,什麼事情都可以做成。但是一拖,時間就沒有了,就可能會一事無成。所以你一旦決定學習編程,就馬上開始,不要再拖。
學習編程最重要的是堅持
計算機編程水平是長期練習出來的,學習編程的最好方法是學習——模仿——創造
當你寫程序寫到一半卻發現自己用的方法很拙劣時,請不要馬上停手;請盡快將餘下的部分粗略的完成以保證這個設計的完整性,然後分析自己的錯誤並重新設計和編寫
設計程序開始時候確實不容易;自己程序設計水平是在不斷的編程實踐中完善和發展的;
每學到一個難點的時候,嘗試著對別人講解這個知識點並讓他理解——你能講清楚才說明你真的理解了;
請不斷的對自己寫的程序提出更高的要求,哪怕你的程序版本號會變成Version 100. XX;
保存好你寫過的所有的程序——那是你最好的積累之一;
勤於思考,掌握精髓
要想成為一名優秀的程序員,最重要的是掌握編程思想、找到編程感覺,而不是死記硬背語言本身。所以,從某種角度上講,很多語言是一致的。學會了 C++,java也能夠很快上手。我們面對新的編程語言時,只需簡單了解該語言的語法特點,就可以輕松應對和應用了。一名程序員的高級境界,是在反復的實踐、觀察、分析、比較、總結中潛移默化積累的,絕不是一篇文章或者兩三小時的講解就能夠說清楚的。
要學會編程思想、找到編程感覺,必須從實實在在的編程實際工作中去實踐和體驗。不少朋友在學習編程時只簡單地學習語法、結構,枯燥而且目的性也不強,會大大降低初學者的興趣和學習效果。而一般的書籍,也只從語言本身去講解語法和舉一些針對這些語法的應用例子,跟使用說明書沒有太大差別,沒有起到灌輸編程思想,培養編程感覺的作用。正因為如此,許多大學生雖然在學校學過C語言,但他們之中少有真正精通C語言的編程者,只是簡單了解些語法罷了,許多重要的知識點都含糊不清。
其實,在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。有些人覺得以前從來沒做過而不敢自己單獨動手去做,非要等到什麼都明白後才敢動手實踐,這樣是很難取得進步的。誰都有第一次,有些問題只有通過實踐才能明白,也只有實踐後才能把老師和書本上的知識變成自己的,高手與專家都是這樣成才的
北大青鳥APTACH的課程注意實踐和方法,著重培養學員能力,舉一反三。使學生在學習中不斷的歸納總結,推理和論證。
培養自己綜合能力
代碼規范
現在的編程,基本都是集體協作的過程,個人英雄時代已經過去。記住,你寫的程序別人是要看的,所以時刻注意代碼的書寫格式和變數的命名,力求規范。規范的書寫代碼顯示了良好的編程素質,越是大型的電腦公司就越重視。
具有整體觀
程序員做的往往是部分,但是對整體有感覺就更好了
突出重點
突出全面上一定要有重點
培養自學能力
自學能力對工作後更重要
善於交流
和別人交流效果要好
博覽群書,廣泛了解業界動態,跟上時代發展
結束語
中國的軟體產業正在進入高速發展期,軟體人才需求量持續上升,其中大部分是軟體編程人員。學習編程、做一名編程人員,從個人角度來說有利於在職業生涯中謀得一個好職位,從長遠來說,成為一名優秀的軟體人才,為中國軟體產業做出應有的貢獻,應是眾多年輕人的理想與責任。
學習編程,你能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,體驗鑽研高科技的幸福。
『貳』 如何編程序,說的詳細一點,拜託了!!!
簡單的理解就是用計算機「能理解」的「語言」寫出能讓計算機懂的一系列的能讓計算機工作的「命令」。
如果你還不會任何編程語言,我建議你從python開始。它設計清晰,文檔齊全,合適初學者入門。它是一門很好的入門語言,並且不僅僅只是個玩具;它非常強大、靈活,也適合做大型項目。好的教程可以在Python網站得到。(比較好的中文Python站點可能是http://pythonrecord.51.net。)
Java也是好的入門語言。它比Python難得多,但是生成的代碼速度也快得多。它同時也是一種優秀的計算機語言,不止是用來入門。
但是注意,如果你只會一兩門語言,你將不會達到一個高水平的程序員的水平——你需要學會如何以抽象的方式思考編程問題,獨立於任何語言。你需要學會在幾天內通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種截然不同的語言。
如果要做一些重要的編程工作,你不得不學習C語言,Unix的核心語言。 C++與C非常其他類似;如果你了解其中一種,學習另一種應該不難。但這兩種都不適合編程入門者學習。事實上,你越避免用C編程,你的工作效率會越高。
C非常有效率,節約你的機器資源。但是,C的高效是通過你手動做很多底層的管理(如內存)來達到的。底層代碼都是復雜極易出現bug的,會使你花極多的時間調試。如今的機器速度如此之快,這通常是得不償失——比較明智的做法是使用一種運行較慢、較低效率,但大幅節省你的時間的語言。因此,選擇Python。 http://ke..com/view/21087.html?wtp=tt
其他比較重要的語言包括 Perl和 LISP。 Perl實用,值得一學;它被廣泛用於動態網頁和系統管理,因此即便你從不用Perl寫程序,至少也應該學會看。許多人使用Perl的理由和我建議你使用Python的理由一樣,都是為了避免用C完成那些不需要C高效率的工作。你會需要理解那些工作的代碼的。
LISP值得學習的理由不同——最終掌握了它時你會得到豐富的啟迪和經驗。這些經驗會使你在以後的日子裡成為一個更好的程序員,即使你實際上很少使用LISP本身。
當然,實際上你最好五種都會(Python,Java,C/C++,Perl和LISP)。它們代表了截然不同的編程思路和方法,每種都會讓你受益非淺。
這里我無法給你完完全全的指導教會你如何編程——這是個復雜的技能。但我可以告訴你,書本和上課也不能作到(最好的程序員幾乎都是自學成材的)。你可以從書本上學到語言的特點——只是一些皮毛,但要使書面知識成為自身技能只能通過實踐和虛心向他人學習。因此要作到 (一)讀代碼及(二)寫代碼。
學習如何編程就象學慣用優美的自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,再讀些,再寫點…… 如此往復,直到你的文章達到你體會到的範文的簡潔和力量。
過去找到適合閱讀的好的代碼是困難的,因為幾乎沒有大型程序的源代碼能讓新手練手。這種狀況已經戲劇性地發生變化;開放源代碼軟體,編程工具和操作系統(全都由黑客寫成)現在已經隨處可見……
最後,祝你成功!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
以下是別人的建議:
學習編程已經不再是少數計算機專業人員的事情了,就如同計算機深入到我們生活的每一個角落一樣,學習編程的人也是越來越多。由於現在網路信息資源豐富,大多數人都選擇了自學。我自幼自學編程十餘年,多少積累了一些經驗和方法,想通過這里給這些初學的編程自學者一些個人的建議。
建議一:自學也需要看書
自學只是說沒有專門的老師手把手教你,並不是說連書本都可以不要了。有人天天來問我一些很基礎的概念問題,我問他:「這些概念書上不都寫得很明白嗎?」他回答:「我沒有書。」如果沒有書,那麼你很難在腦子里形成一個較為整體性的認識,所有了解到的知識都是支離破碎的。且不說大多數人沒有精力回答你這些問題,即使回答了,很多東西也不是三言兩語就能說清的,很多高手說出來的都是他們自己的理解,這些理解或許很有意味,但也許費了你半天的腦子卻怎麼也搞不明白。一本書,即使不是什麼經典之著,它也可以向你提供一個大體完整的框架,成為你自學過程中的一個向導。這里要說的是:網上電子教程資源豐富,看看無妨,但手中至少應有一本印刷的書——畢竟網上的教程魚龍混雜,其作者也許並不精通此道,很難分辨其質量好壞。
建議二:學編程更需要實踐
書是有了,可是整天抱著書也不成。編程最怕的就是紙上談兵,我看到有的初學者,看完了大半本書,和我說起循環函數來頭頭是道,卻連編譯器長什麼樣都沒有見過。真要他寫幾行程序,便是錯誤百出。我的建議是,無論你涉及編程的時間是多麼地短,無論你目前學到的知識多麼地少,你都應該不斷地盡自己所能去編寫一些小程序——即使是把書上的「Hello, World!」親手輸入進去運行一遍,都能讓你的編程能力有著極速地提高。
建議三:編程是創造,不是默寫
有人甚至打算用題海戰術來學習編程——這完全沒有理解編程的內涵。僅僅通過「欣賞」別人寫的代碼也無法學好編程。有一點需要明白:編程是一個創造的過程。編程的意義在於:通過程序的形式,教計算機如何去完成一項任務。寫代碼只是形式,真正重要的是如何完成特定的任務。學習別人的代碼固然是很有用的,可以學習別人的思想;但是如果僅僅是記憶了一些別人寫好的代碼,就希望能通過拼拼湊湊成為自己的程序,那是基本不可能的。我的建議是:在自己編寫程序,進行創造的過程中,借鑒前人程序中的思想方法——而不是整天處於復制粘貼的狀態中。
建議四:好習慣要從開始做起
所謂「不以善小而不為」,等壞習慣養成了,再改就困難了。因此,類似寫程序要注意縮進、為變數和函數起有意義的名字、大小寫的使用、行末分號的注意等等,要從一開始做起。很多人對這些善意的提醒不屑一顧,覺得多此一舉,浪費時間。其實,如果真的能嚴格地去做,它們反而可以幫你節省許多時間。
建議五:不必太刨根問底
「打破沙鍋問到底」確實表現了一種鑽研的精神,不過我還是建議初者學,有的時候,不必太刨根問底。編程的相關知識都是盤根錯節交織在一起的,大多數問題深挖下去會越說越復雜,對於知識掌握不多的初學者來說,只能是越來越糊塗。很多東西,時間長了,隨著知識了解得深入,自然而然會明白。就像剛剛學英語的時候,你知道「goodbye」是再見就足夠了,難道非要把這個good和再見的關系先弄個水落石出嗎?作為初學者,最重要的是盡快地能全面地了解整個知識的全貌,在單獨的知識點上,暫時不需要太深入。可以等知識經驗豐富之後,再回頭來研究。
http://..com/question/94492399.html?fr=ala0
『叄』 本人是一個老程序員,目前想學習3D編程,請問3D方面的基礎知識可以看哪本書不拘泥於編程語言,求經典。
1、WINDOWS 3D編程
《WINDOWS 3D編程》主要內容:Learn to create 3D graphics for Windows-from programming legend Charles Petzold.Get a focused introction to programming 3D graphics with the Windows Presentation Foundation 3D API. Complementing his book Applications =Code + Markup, award-winning author Charles Petzold builds on XAML essentials, teaching you how to display and animate 3D graphics under the Microsoft .NET Framework 3.0 and Windows VistaTM. You'll get expert guidance and code samples in XAML and Microsoft Visual C#-helping you master the skills you need to create high-fidelity user interfaces.
Discover how to:
Define complex 3D obiects with triangle meshes
Enhance the illumination of 3D surfaces with light and shading effects
Color 3D figures with gradients, bitmaps, and drawings
Add animation with transforms and vertex manipulation
Represent linear, affine, and camera transforms by using matrices
Calculate vector angles, angles of rotation, and axes of rotation
Generate triangle meshes efficiently by using C# code
Express rotation by using quaternion computation
Provide a user interface for manipulating and drawing 3D figures
目錄
--------------------------------------------------------------------------------
1 Lights! Camera! Mesh Geometries!
Sorting Out the Classes
2 Transforms and Animation
3 Axis/Angle Rotation
4 Light and Shading
SpotLight and PointLight
5 Texture and Materials
6 Algorithmic Mesh Geometries
7 Matrix Transforms
8 Quaternions
9 Applications and Curiosa
/******************************************************************************************************************/
2、java 3d編程實踐:網路上的三維動畫
目錄:
第1章 全世界都能看到的三維動畫
1. 1 初識java 3d
1. 1. 1 網路時代需要java 3d
1. 1. 2 java 3d是什麼
1. 1. 3 java 3d的應用場合舉例
1. 2 java 3d運行及開發環境的安裝
1. 2. 1 最新版java 3d的安裝
1. 2. 2 老版本的安裝步驟
1. 3 體驗java 3d編程
1. 3. 1 第一個java 3d程序:hello
1. 3. 2 java 3d的編程思想
1. 4 在網上發布java 3d程序
1. 5 java 3d的網路資源和學習資料
1. 5. 1 主要網站
1. 5. 2 各種文檔
1. 5. 3 軟體資源
第2章 基本形體的生成
2. 1 基本立體形體的生成
2. 1. 1 從一個簡單的程序說起
2. 1. 2 創建場景圖
2. 1. 3 高層java 3d類
2. 1. 4 編寫java 3d程序的一般步驟
2. 1. 5 激活和編譯
2. 1. 6 內容子圖的創建
2. 1. 7 mycone程序中使用的java 3d類
2. 1. 8 幾何體工具類
2. 1. 9 高級主題:基本幾何體
2. 1. 10 能力和性能
2. 2 點. 線. 面的生成
2. 2. 1 幾何體類
2. 2. 2 點的生成
2. 2. 3 直線的生成
2. 2. 4 面的生成
2. 3 曲面的可視化
2. 4 2d和3d文本的生成
2. 4. 1 2d文本的生成
2. 4. 2 3d文本的生成
2. 5 appearance. shape3d和bounds對象的使用
2. 5. 1 appearance對象
2. 5. 2 shape3d對象
2. 5. 3 bounds對象
第3章 形體的組合
3. 1 形體的分組
3. 1. 1 group對象
3. 1. 2 branchgroup對象和orderedgroup對象
3. 1. 3 decalgroup對象
3. 1. 4 switch對象
3. 1. 5 sharedgroup對象
3. 2 幾何變換
3. 2. 1 transformg
/*********************************************************************************************************/
3、Directx 3D 游戲編程實用教程
目錄
--------------------------------------------------------------------------------
第一篇 d游戲編程基礎
第1章 windows編程基礎
1.1 簡單的windows應用程序
1.1.1 創建windows應用程序項目
1.1.2 配置、生成及運行項目
1.2 windows應用程序結構
1.2.1 數據類型
1.2.2 入口函數
1.2.3 注冊窗口類
1.2.4 創建並顯示窗口
1.3 windows消息機制
1.3.1 消息隊列
1.3.2 消息循環
1.3.3 消息處理
1.4 匈牙利命名法
1.4.1 類型和常量的命名
1.4.2 變數的命名
1.4.3 函數和參數的命名
1.4.4 類的命名
1.5 本章小結
第2章 direct3d編程基礎
2.1 directx概述
2.1.1 directx的發展過程
2.1.2 directx的組成部分
2.1.3 direct3d與com
2.1.4 direct3d介面對象
2.2 direct3d渲染流水線
2.2.1 渲染流水線
2.2.2 靈活頂點格式
2.2.3 d3d中的顏色
2.2.4 d3d中的圖元
2.3 direct3d程序結構
2.3.1 簡單的direct3d應用程序
2.3.2 創建direct3d介面對象
2.3.3 獲取硬體設備信息
2.3.4 創建direct3d設備介面
2.3.5 開始direct3d圖形繪制
2.3.6 結束並清理對象資源
2.4 頂點緩存
2.4.1 創建頂點緩存
2.4.2 訪問頂點緩存
2.4.3 使用頂點緩存繪制圖形
2.4.4 頂點緩存的繪制示例
2.5 索引緩存
2.5.1 創建索引緩存
2.5.2 訪問索引緩存
2.5.3 使用索引緩存繪制圖形
2.5.4 索引緩存的繪制示例
2.6 direct3d渲染狀態
2.6.1 剔除狀態
2.6.2 著色狀態
2.6.3 填充狀態
2.7 本章小結
第3章 基本的數學基礎
3.1 坐標空間
3.1.1 d笛卡兒坐標系
3.1.2 多坐標系統
3.2 向量
3.2.1 向量的基本概念
3.2.2 向量的基本運算
3.2.3 d3d中的向量
3.3 矩陣
3.3.1 矩陣的基本概念
3.3.2 矩陣的基本運算
3.3.3 矩陣的基本變換
3.3.4 d3d中的矩陣
3.4 平面及射線
3.4.1 平面的定義
3.4.2 點與平面的關系
3.4.3 射線的定義
3.4.4 射線與平面的關系
3.5 空間坐標變換
3.5.1 世界變換
3.5.2 取景變換
3.5.3 投影變換
3.5.4 視口變換
3.6 空間坐標變換示例
3.7 本章小結
第二篇 d游戲圖形渲染
第4章 光照與材質
4.1 光照模型
4.1.1 環境光
4.1.2 漫反射光
4.1.3 鏡面反射光
4.2 光源類型
4.2.1 點光源
4.2.2 方向光
4.2.3 聚光燈
4.3 物體的材質
4.3.1 d3d材質
4.3.2 頂點法線
4.4 光照與材質示例
4.5 本章小結
第5章 紋理映射
5.1 紋理映射基礎
5.1.1 紋理坐標
5.1.2 創建紋理
5.1.3 啟用紋理
5.1.4 創建紋理示例
5.2 紋理過濾
5.2.1 最近點采樣過濾
5.2.2 線性紋理過濾
5.2.3 各向異性過濾
5.2.4 多級漸進過濾
5.2.5 紋理過濾示例
5.3 紋理定址
5.3.1 重復定址
5.3.2 鏡像定址
5.3.3 夾取定址
5.3.4 邊框顏色定址
5.3.5 紋理定址示例
5.4 紋理包裝
5.4.1 紋理包裝原理
5.4.2 紋理包裝示例
5.5 本章小結
第6章 網格模型
6.1 網格模型基礎
6.1.1 網格的子集及屬性
6.1.2 網格的鄰接信息
6.1.3 網格的創建及繪制
6.1.4 創建及繪制網格示例
6.2 網格的優化及克隆
6.2.1 優化網格
6.2.2 克隆網格
6.3 x文件格式分析
6.3.1 模板的定義
6.3.2 常用的模板類型
6.3.3 x文件的結構
6.4 從x文件創建網格
6.4.1 載入網格模型數據
6.4.2 獲取紋理和材質信息
6.4.3 繪制網格模型
6.4.4 讀取x文件示例
6.5 創建漸進網格模型
6.5.1 id3dxpmesh介面
6.5.2 創建並繪制漸進網格
6.5.3 創建漸進網格示例
6.6 d3d中的幾何體
6.7 本章小結
第7章 深度、融合及模板
7.1 深度測試
7.1.1 深度緩存
7.1.2 深度測試
7.1.3 深度測試示例
7.2 融合技術
7.2.1 融合因子
7.2.2 alpha來源
7.2.3 啟用alpha融合
7.2.4 alpha融合示例
7.3 模板技術
7.3.1 模板緩存
7.3.2 模板測試
7.3.3 更新模板緩存
7.4 鏡面效果
7.4.1 鏡面成像原理
7.4.2 實現鏡面效果
7.5 本章小結
第8章 hlsl語言基礎
8.1 hlsl概述
8.1.1 可編程管線
8.1.2 hlsl工作模型
8.2 簡單的hlsl程序
8.2.1 編寫hlsl代碼
8.2.2 hlsl關鍵字和保留字
8.2.3 hlsl預處理指令
8.2.4 輸入、輸出結構
8.2.5 hlsl入口函數
8.3 hlsl基本語法
8.3.1 hlsl中的變數
8.3.2 hlsl中的函數
8.4 d3d與hlsl交互
8.4.1 編譯著色器程序
8.4.2 獲取常量的句柄
8.4.3 設置常量的值
8.5 hlsl程序示例
8.6 本章小結
第9章 著色器與效果
9.1 頂點著色器
9.1.1 創建頂點聲明
9.1.2 使用頂點著色器
9.1.3 頂點著色器示例
9.2 漸變動畫效果
9.2.1 漸變動畫原理
9.2.2 實現漸變動畫
9.3 像素著色器
9.3.1 創建像素著色器
9.3.2 使用像素著色器
9.4 多重紋理混合
9.4.1 hlsl采樣器
9.4.2 多重紋理坐標
9.4.3 啟用多重紋理
9.4.4 多重紋理示例
9.5 效果框架
9.5.1 通道與手法
9.5.2 著色器內置對象
9.5.3 效果中的渲染狀態
9.5.4 創建效果框架
9.5.5 效果中常量的設置
9.5.6 使用效果框架
9.5.7 效果框架示例
9.6 本章小結
第三篇 d游戲輸入控制
第10章 directx輸入控制
10.1 directinput介面
10.2 使用directinput介面
10.2.1 directinput的初始化
10.2.2 創建設備介面對象
10.2.3 設置數據格式
10.2.4 設置協作級別
10.2.5 設置特殊屬性
10.2.6 獲取、輪詢設備
10.2.7 讀取設備數據
10.3 使用directinput處理鍵盤
10.3.1 初始化鍵盤設備介面
10.3.2 獲取輸入的鍵盤數據
10.3.3 鍵盤輸入控制示例
10.4 使用directinput處理滑鼠
10.4.1 在d3d中移動滑鼠
10.4.2 初始化滑鼠設備介面
10.4.3 獲取滑鼠的移動位置
10.4.4 滑鼠輸入控制示例
10.5 使用directinput處理游戲桿
10.5.1 游戲桿及其控制原理
10.5.2 初始化游戲桿設備介面
10.5.3 讀取游戲桿的狀態數據
10.5.4 游戲桿輸入控制示例
10.6 本章小結
第四篇 d游戲應用編程
第11章 攝像機、地形及天空
11.1 虛擬攝像機
11.1.1 攝像機的屬性
11.1.2 攝像機的變換
11.1.3 攝像機的實現
11.1.4 攝像機應用示例
11.2 三維地形系統
11.2.1 地形高度圖
11.2.2 頂點的計算
11.2.3 索引的計算
11.2.4 地形的繪制
11.2.5 地形類的實現
11.2.6 地形繪制示例
11.3 球形天空頂
11.3.1 頂點的計算
11.3.2 索引的計算
11.3.3 天空的繪制
11.3.4 天空類的實現
11.3.5 天空繪制示例
11.4 本章小結
第12章 文字、拾取及碰撞檢測
12.1 字體及文本繪制
12.1.1 繪制2d文本
12.1.2 繪制3d文本
12.1.3 文本繪制示例
12.2 拾取技術
12.2.1 網格外接體
12.2.2 拾取技術原理
12.2.3 拾取應用示例
12.3 碰撞檢測
12.3.1 邊界球碰撞檢測
12.3.2 aabb碰撞檢測
12.3.3 obb樹碰撞檢測
12.3.4 aabb碰撞檢測示例
12.4 本章小結
第13章 骨骼動畫
13.1 x文件中的骨骼信息
13.1.1 骨骼蒙皮信息
13.1.2 骨骼層次信息
13.1.3 模型動畫信息
13.2 載入骨骼動畫數據
13.2.1 擴展結構體
13.2.2 載入x文件
13.2.3 callocatehierarchy類
13.2.4 生成蒙皮網格
13.3 頂點混合技術
13.3.1 頂點混合原理
13.3.2 索引頂點混合
13.4 骨骼動畫的繪制
13.4.1 開啟頂點混合
13.4.2 更新骨骼矩陣
13.4.3 繪制骨骼動畫
13.5 骨骼動畫控制器
13.5.1 使用動畫控制器
13.5.2 平滑過渡動畫集
13.6 骨骼動畫示例
13.7 本章小結
第14章 實時陰影
14.1 平面陰影的原理
14.1.1 點光源平面陰影
14.1.2 方向光平面陰影
14.2 平面陰影的實現
14.2.1 計算陰影矩陣
14.2.2 平面陰影的繪制
14.2.3 平面陰影示例
14.3 體積陰影的原理
14.3.1 模型陰影體
14.3.2 陰影錐的計算
14.4 體積陰影的實現
14.4.1 體積陰影的繪制
14.4.2 體積陰影示例
14.5 陰影貼圖的原理
14.6 本章小結
第15章 廣告牌技術與粒子系統
15.1 廣告牌技術
15.1.1 廣告牌的原理
15.1.2 廣告牌的實現
15.1.3 廣告牌示例
15.2 粒子系統
15.2.1 粒子系統的原理
15.2.2 粒子系統的實現
15.2.3 粒子系統的更新
15.2.4 粒子系統的繪制
15.3 粒子系統示例
15.3.1 煙花示例
15.3.2 噴泉示例
15.4 本章小結
第16章 霧化及lod地形
16.1 霧化效果
16.1.1 霧化混合因子
16.1.2 頂點霧化
16.1.3 像素霧化
16.1.4 范圍霧化
16.2 lod地形原理
16.2.1 lod四叉樹演算法
16.2.2 lod地形的實現
16.2.3 節點剔除原理
16.2.4 節點簡化准則
16.2.5 地形裂縫的處理
16.2.6 地形的更新及繪制
16.3 lod地形示例
16.4 本章小結
第五篇 d游戲音頻輸出
第17章 direct3d音頻控制
17.1 音頻文件格式
17.1.1 音頻的基本概念
17.1.2 wav音頻格式
17.1.3 midi音頻格式
17.1.4 mp3音頻格式
17.2 使用directsound處理音頻
17.2.1 directsound的結構
17.2.2 directsound的初始化
17.2.3 directsound音頻緩沖
17.2.4 向緩沖區中寫入數據
17.2.5 播放聲音及音頻控制
17.2.6 用directsound反饋信息
17.2.7 directsound應用示例
17.3 使用directmusic處理音頻
17.3.1 directmusic的結構
17.3.2 開始使用directmusic
17.3.3 載入、操作midi段
17.3.4 directmusic應用示例
17.4 使用directshow處理音頻
17.4.1 directshow的工作原理
17.4.2 directshow的初始化
17.4.3 載入流媒體數據
17.4.4 控制流媒體的播放
17.4.5 directshow應用示例
17.5 本章小結
第六篇 d游戲網路通信
第18章 direct3d網路控制
18.1 了解網路互聯
18.1.1 網路會話模型
18.1.2 定址與通信協議
18.2 directplay概述
18.2.1 創建和管理會話
18.2.2 directplay傳輸協議
18.2.3 directplay網路對象
18.2.4 玩家與游戲大廳
18.3 客戶/服務會話
18.3.1 初始化網路對象
18.3.2 選擇服務提供者
18.3.3 使用directplay地址
18.3.4 建立客戶/服務會話
18.3.5 發送、接收數據
18.3.6 創建並使用分組
18.3.7 結束及終止會話
18.4 游戲大廳的支持
18.4.1 游戲大廳的結構
18.4.2 實現游戲大廳客戶端
18.4.3 實現支持大廳的程序
18.5 客戶/服務會話示例
18.5.1 創建服務端程序
18.5.2 創建客戶端程序
18.6 本章小結
附 錄
附錄a directx9 sdk的安裝與配置
a.1 安裝directx
a.2 配置開發環境
a.3 瀏覽directx示例
附錄b dxut程序框架介紹
b.1 創建dxut項目
b.2 dxut框架的初始化
b.3 創建應用程序窗口
b.4 創建direct3d設備
b.5 dxut的事件處理
b.5.1 框架事件
b.5.2 設備事件
b.5.3 消息事件
b.6 dxut的錯誤處理
『肆』 小白,想入門程序員,應該從什麼開始學,順序是什麼
小白想要成為程序員,首選是選擇一門合適的語言,比如說:Python、Java、C、C++、GO語言等;其次,選擇合適的學習方式,比如培訓,周末班、脫產班還是網路班。
如果完全沒有編程基礎,建議大家學習Python,Python入門簡單、語法清晰、通俗易懂,非常適合零基礎人員。
『伍』 編程教程
簡單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。
那程序到底是什麼呢?
程序也就是指令的集合,它告訴計算機如何執行特殊的任務。
打個比方說,它好比指導你烹調菜品的菜譜或指揮行駛一路到達目的地的交警(或者交通路標)。沒有這些特殊的指令,就不能執行預期的任務。計算機也一樣,當你想讓計算機為你做一件事情的時候,計算機本身並不能主動為我們工作,因此我們必須對它下達指令,而它根本不會也不可能聽懂人類自然語言對事情的描述,因此我們必須使用程序來告訴計算機做什麼事情以及如何去做?甚至對最簡單的任務也需要指令,例如如何取得擊鍵,怎樣在屏幕上放一個字母,怎樣在磁碟中保存文件等等。
這么麻煩,連這些東西編程都要考慮!怪不得人家說編程好難!你錯了,其實許多這樣的指令都是現成的,包含在處理晶元中內置於操作系統中,因此我們不必擔心它們工作,他們都是由處理器和操作系統來完成的,並不需要我們來干預這些過程。
上面講到的計算機本身不會主動的做任何事情。因此我們要通過程序的方式來讓計算機為我們「效勞」。而這個過程就是我們「編」出來的。編程可以使用某一種程序設計語言來實現,按照這種語言的語法來描述讓計算機要做的事情。
我們這里所講的語法和外語中的語法完全兩碼事,這里講的語法只是讀你的程序書寫做出一寫規定而已。
寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。
隨計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。
匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。由於省略了很多細節,所以編程者也不需要具備太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
(1)解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
(2)編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
這個問題其實很簡單。前面我們講到,程序是人與計算機進行溝通的唯一方式,因此我們要讓計算機為我們服務,就必須有程序,而程序從哪裡來?當然是由我們編寫出來了。或許你又會問到另一個問題:現在要什麼程序有什麼程序,我幹嘛還要編程呢?這你就錯了,現在的程序雖然很多,需要什麼樣的程序直接到網上不需要很長時間就可以找到類似的,而且有可能就是你所需要的。但是,就好比去買衣服,雖然賣衣服的到處都是,但是哪一件是為你「量身定做」的呢!
程序還能夠做很多事情不同的程序可以完成不同的事情。從大的方面到管理國家的財務,小的方面管理家庭的帳務。
又如,如果你想要你的計算機能播放動畫,那麼你的計算機中也要有相應的動畫播放程序,下面所示的就是一個F1ssh動畫播放器。我們將會在後面的章節具體講述這個程序的編制過程。
隨著計算機的飛速發展,總會有那麼一天將不會編程的人列為「文盲」。你不希望吧?那麼就好好的學習一種程序設計語言吧。
編程會過時嗎
編程會過時嗎?這個問題,讓我先問你一個問題:計算機會消失嗎?這兩者答案是一樣的。知道了計算機會不會消失,就知道了編程會不會過時。
編程工具會過時,而編程卻不會過時
計算機系統由可以看見的硬倒:系統和看不見的軟體系統組成。要使計算機能夠正常的工作,僅僅有硬體系統是不行的,沒有軟倒系統(即沒有程序)的計算機可以說只是—堆廢鐵,什麼事情都幹不了。例如當你撰寫—篇文章的時候,你需要在操作系統中用文字編輯軟體來實現文字的輸入,但如果沒有這些文字輸入軟體的話,你是否想過如何向計算機中輸入文章呢?很難想像出如何在一個沒有任何軟體的計算機(我們稱之為裸機)上進行文字的輸入。而這些軟體其實就是通常我們所說的程序。
編程會過時嗎?我們從另一個角度來考慮這個問題,計算機有——天會消失嗎?如果有一天當世界上所有的事情處理都用不到計算機了,那麼計算機將會很快的消失,那時編程不僅過時了,而且也會隨之消失了。但是計算機會消失嗎?當然不會,如今計算機應用到每一領域,為人類的發展做出了不可估量的貢獻。試想一下如果有一天全世界的計算機突然消失了,那麼這個世界將變成什麼樣子,或許和全世界都停電了一樣恐怖,甚至還會有更大的損失。計算機的存在必須要有軟體系統來維持。因此編程永遠不會、也不可能會過時。
計算機程序設計語言發展到今天,已經從最原始的機器語言發展到如今可視化的集成開發環境,甚至集多種語言在同一開發平台上,像微軟的NET平台。回頭看看程序設計語言的發展史,不難看出對於編程來說,只會出現編程工具的過時,不會出現編程本身的過時。
不斷變化的技術需要不斷變化的程序員
從二十世紀60年代以後,計算機得到了突飛猛進的發展。似乎歷史上沒有任何一門科學的發展速度超過了計算機的發展,無論硬體、軟體、還是網路都以驚人的速度向前發展。計算機的硬體發展速度遵循「摩爾定律」每十八個月速度翻一倍(實際現在已超過了這個速度)。軟體的發展速度和硬體一樣,二十世紀九十年代中國的軟體業還不是很成熟,而現在大大小小的軟體企業四處聳立,共享軟體網上隨處可見。不斷發展的技術需要不斷變化的程序員,例如,如今Visual Basic可以快速構Windows下的應用程序,程序設計方面的技術不斷發展著,不斷引進新的概念、新的方法,如從結構化的C開始,當面向對象的思想被提出後,出現了C++,微軟在C++的基礎上為使用戶構建win32應用程序更加方便,推出了Visual C++。這也就需要程序員也要不斷的更新自己的技術。
計算機科學與別的學科很不一樣,不像語言學、歷史學那樣,幾乎是永久不變的東西。計算機科學要求不斷的更新自己的知識,否則很快就會被淘汰,即便是編程亦是如此。
編寫程序是一件很有趣的事情,因為編寫程序可以干很多高級的事情。例如我們在後面的章節中介紹如何使用Visual Basic編寫Flash動畫播放器,以及如何編寫下載軟體管理器等。如果你願意的話,你完全可以編寫出比這些更高級的程序來。
隨著計算機軟體業的發展,誕生了「程序員」這個職位。於是便形成了一種理念,編寫程 序的人就是程序員,因此編程是程序員的事情。但程序員並不是一開始就是程序員,他們也是從現在我們的位置慢慢成為程序員的。
編寫程序是一件很有趣的事情,因為編寫程序可以干很多高級的事情。例如我們在後面的章節中介紹如何使用Visual Basic編寫Flash動畫播放器,以及如何編寫下載軟體管理器等。如果你願意的話,你完全可以編寫出比這些更高級的程序來。
編程也可以作為——種愛好或興趣,如果你對它感興趣學起來就容易多了!因為如果對編程感興趣的話,就會多看些有關方面的書、多編些小程序上機實踐,這些對於學習編程的幫助是非常大的,而且隨著學習的進程不斷的推進就會覺得它並不是很困難,相反卻是很容易的。
總之,在學習編程時一定要堅持不懈,只要有信心、有毅力就一定能學好;不能因為一些似是而非的觀念就動搖了自己的信心。
我們一起來編程
面對擺在面前的計算機該如何操作,相信這個問題已經不再是困擾大家的首要問題了。現在軟體的種類那麼多,在選用的時候「電腦發燒友」的心裡是否也想過有一天自己能編寫一款屬於自己的軟體呢?想學習編程的朋友在選擇程序語言時會不會因為不知道如何選擇而大感頭痛呢?在不知如何下手的時候,朋友們的心中是不是會產生「我是不是可以編程」的思想呢?但是又有哪個程序員是不經過學習就能成功的呢!其實編寫程序並不是人們所想像的那麼困難、那麼復雜,每個有心致力於學習計算機的朋友都是可以嘗試的!
選擇適合自己的程序語言的必要性
目前常用的基本程序語言的種類比較繁多,比較簡單的有:Pascal、c語言、qBasic、 Fortran、Visual Basic等等。但前幾種都是在DOS下進行編程的工具,Visual Basic是在 Windows下進行應用程序設計的編程工具,現在一般的計算機用戶幾乎都不再使用DOS了,因此我們通常會選擇Visual Basic作為初學者的編程工具。Visual Basic是Windows應用程序設計中最容易上手的編程工具,學習步驟也比較容易被初學者接受。對於剛開始學習編程的初學者來說,還是選擇 Visual Basic,學習編程語言不能想像著一步登天,一步一個腳印的學習才是最佳方法。
堅定自己學習編寫程序的信心
編寫程序並不是具有專業知識的人員才有的專利,每個學習計算機的人都可以編寫程序,每個人的靈感不同,在編寫程序的思路和作法上又有區別。但共同的想法就是編寫成功的程序。學習編程是一個漫長的過程,其中要付出艱辛的努力和汗水,不過成功者的喜悅又不是別人所能體會的。克服學習中的困難,努力去實踐,要有一個思想:別人能做到的事情自己也一定可以做到。計算機的普及讓更多的人有了學習的機會,也讓更多的人參與到編程人員的隊伍中來,每個人都有編程的權利,機遇給予每個人都是平等的。拿出自己必勝的信心,在編程的道路工勇於進取,相信成功就會在眼前。
三、我可以編程嗎
隨著計算機軟體業的發展,誕生了「程序員」這個職位。於是便形成了一種理念,編寫程 序的人就是程序員,因此編程是程序員的事情。但程序員並不是一開始就是程序員,他們也是從現在我們的位置慢慢成為程序員的。
編寫程序是一件很有趣的事情,因為編寫程序可以干很多高級的事情。例如我們在後面的章節中介紹如何使用Visual Basic編寫Flash動畫播放器,以及如何編寫下載軟體管理器等。如果你願意的話,你完全可以編寫出比這些更高級的程序來。
編程也可以作為——種愛好或興趣,如果你對它感興趣學起來就容易多了!因為如果對編程感興趣的話,就會多看些有關方面的書、多編些小程序上機實踐,這些對於學習編程的幫助是非常大的,而且隨著學習的進程不斷的推進就會覺得它並不是很困難,相反卻是很容易的。
總之,在學習編程時一定要堅持不懈,只要有信心、有毅力就一定能學好;不能因為一些似是而非的觀念就動搖了自己的信心。
四、我們一起來編程
面對擺在面前的計算機該如何操作,相信這個問題已經不再是困擾大家的首要問題了。現在軟體的種類那麼多,在選用的時候「電腦發燒友」的心裡是否也想過有一天自己能編寫一款屬於自己的軟體呢?想學習編程的朋友在選擇程序語言時會不會因為不知道如何選擇而大感頭痛呢?在不知如何下手的時候,朋友們的心中是不是會產生「我是不是可以編程」的思想呢?但是又有哪個程序員是不經過學習就能成功的呢!其實編寫程序並不是人們所想像的那麼困難、那麼復雜,每個有心致力於學習計算機的朋友都是可以嘗試的!
選擇適合自己的程序語言的必要性
目前常用的基本程序語言的種類比較繁多,比較簡單的有:Pascal、c語言、qBasic、 Fortran、Visual Basic等等。但前幾種都是在DOS下進行編程的工具,Visual Basic是在 Windows下進行應用程序設計的編程工具,現在一般的計算機用戶幾乎都不再使用DOS了,因此我們通常會選擇Visual Basic作為初學者的編程工具。Visual Basic是Windows應用程序設計中最容易上手的編程工具,學習步驟也比較容易被初學者接受。對於剛開始學習編程的初學者來說,還是選擇 Visual Basic,學習編程語言不能想像著一步登天,一步一個腳印的學習才是最佳方法。
堅定自己學習編寫程序的信心
編寫程序並不是具有專業知識的人員才有的專利,每個學習計算機的人都可以編寫程序,每個人的靈感不同,在編寫程序的思路和作法上又有區別。但共同的想法就是編寫成功的程序。學習編程是一個漫長的過程,其中要付出艱辛的努力和汗水,不過成功者的喜悅又不是別人所能體會的。克服學習中的困難,努力去實踐,要有一個思想:別人能做到的事情自己也一定可以做到。計算機的普及讓更多的人有了學習的機會,也讓更多的人參與到編程人員的隊伍中來,每個人都有編程的權利,機遇給予每個人都是平等的。拿出自己必勝的信心,在編程的道路工勇於進取,相信成功就會在眼前。
一、計算機語言的發展過程
到目前為止,世界上公布的程序設計語言有上千種之多,常用的也有三十來種,為了有21於正確選擇和使用它們,下面我們做一個簡單介紹。
(1)匯編語言:
它是依賴於具體計算機的語言,用它編寫出的程序,執行效率高,但是只在一些特殊要求或特殊的場合才使用它。
(2)高級語言:
大家可能都聽過使用高級語言進行程序設計,但由於對其並不了解,所以總認為這些是很高深的東西。其實並非如此,學習了後面的章節,相信同學會產生編程原來不過如此。
但計算機是不懂得自然語言的(可以理解為高級語言),而高級語言設計出來的程序如何讓計算機去執行呢?其實很簡單,看了下圖後相信大家會明白許多。
現在我們就向大家介紹幾種常見的高級語言:
Fortran語言是科學和工程計算中使用的主要編程語言。目前國內使用版本多數是Fortran 66和Fortran77兩種。Fortran語言的主要缺點是不能直接支持結構化編程。
Cob0l語言是商業數據處理中廣泛使用的語言。由於它本身結構上的特點,使得它能有效的支持與商業處理有關的、范圍廣泛的過程技術。它的缺點是不簡潔。
Algol語言是所有結構化語言的先驅,具有豐富的過程和數據結構。但是,這種語言並沒有被廣泛採用,主要是由於它本身的歷史原因所造成的。
Basic語言是一種解釋執行的會話語言。由於它簡單易學的特點,它被廣泛應用在微型計算機系統中。
PL//1語言是一個用途廣泛的語言。能支持通常的科學工程和商業應用,能描述復雜的數據結構、多重任務處理、復雜的輸入輸出和表格處理等。
Pascal語言是70年代初期發展起來的結構化程序設計語言,具有特別豐富的數據結構類型。它自問世後,得到了眾人的贊賞,也得到了軟體開發者的廣泛支持。Pascal語言已用於科學、工程和系統程序設計中。我們教育部計算機專業教育會議曾把Pascal語言定為計算機專業程序設計語言。
C語言是作為UNIX操作系統的主要使用語言。由於UNIX操作系統的成功,現在C語言也得到了廣泛的使用。C語言是有經驗的軟體工程師設計的,它具有很強的功能,以及高度的靈活性。它和其他的結構化語言一樣,能提供豐富的數據類型、廣泛使用的指針以及—組很豐富的計算和數據處理使用的運算符。
C++語言是C語言的擴充。在1980年,貝爾實驗室的Bjarne Strotstrup博士及其同事開始對C語言進行改進和擴充,最初被稱為「帶類的C」,1983年才取名為C++。以及不斷完善和發展,成為目前的C+ +語言。一方面,它將C語言作為它的子集,使它能夠與C語言兼容。使許多C語言代碼不經修改就可以為C++語言所用以及用C語言編寫的眾多庫函數和和實用軟體可以直接用於C++語言中;另一方面。C++語言支持面向對象的程序設計這是它對C語言最重要的改進。
『陸』 自學c語言 零基礎 看什麼書 該怎麼學
現在,市面上的 C語言書籍多的數不過來,但是很多不適合你這種初學者使用,作為一名老程序員,我給你推薦幾本我看過認為還不錯的書:
1) 《C語言小白變怪獸》:既適合對計算機一竅不通的小白,也適合有編程基礎的讀者,還可以用來進階。同時,最重要的是,這本書的作者還在不斷地更新這本書,我認為最大的特點是通俗易懂,深入淺出,只要認真看,就一定能看懂,我認為這是C語言入門的首選教材,吐血推薦,經典中的經典!!!
2) 《啊哈C語言》:適合對計算機一竅不通的純小白,有編程基礎的讀者請忽略。這本書語言幽默,生動形象,通俗易懂,給人耳目一新的感覺,但是這本書非常淺顯,並不深入,所以適合純小白入門,找到門以後也就扔了。這本書著重於語言藝術,針對純小白下足了功夫,小學生坐在馬桶上都能學會編程。說實話,我非常欣賞作者的創意和用心,國內像這樣寫書的少之又少,入門的書就應該是這個樣子。
上邊這兩本書是我推薦給你用於C語言入門的,我不建議你使用譚浩強的《C語言程序設計》這本書入門,雖然這本書的知名度很高,因為很多大學把它作為C語言的授課教材,然而,這本書被吐槽最多,不但代碼不標准,而且有很多錯誤,據說可以找出幾十個錯誤,這樣很容易誤導你這種小白。
等你有一定的C語言基礎了,可以看下面的這幾本書,進一步提升你的編程水平:
1) 《C Primer Plus》:暢銷 30 余年的C語言入門經典書籍,至今無人能撼動它的地位,它是最符合C語言標準的書籍,作為一名C語言程序員,不收藏一本都覺得自己很水。
2) 《C程序設計語言,The C Programming Language》:C語言創始人丹尼斯·里奇(Dennis MacAlistair Ritchie)的著作,和《C Primer Plus》並駕齊驅,很難分出伯仲,這兩本書都是一樣的優秀,都是C語言程序員必須收藏的。
3) 《C專家編程》:適合已經具備C語言基礎、想進階的讀者。這貌似是一本吐槽C語言的書,基本上介紹了大多數C語言的坑,有不少精髓,在C語言界久負盛名,進階時一定要看。
4) 《C陷阱與缺陷》:和《C專家編程》類似,也是給C語言挑刺的,闡述了很多容易讓人誤解的語法細節,重在幫助C程序員繞過編程過程中的陷阱和障礙。
5) 《程序員的自我修養 -- 鏈接、裝載與庫》:這真是一本深入骨髓的書,讓你徹底明白程序的編譯、鏈接、裝載和運行的全過程,你會從此上天,拉開和別人的差距,看任何問題都有了深度和高度。重點推薦!
所有的這些書我都有電子版,需要可以找我要!
『柒』 程序員入門:如何自學編程
1、選定方向
編程的世界是多元紛繁的,大的方向就分前端開發、後端開發、移動開發、雲計算、數據處理、智能硬體、物聯網、虛擬現實等等,光編程語言都幾十種。如果沒有做過功課,貿然進入只會分分鍾懵逼。所以最好是根據自己的興趣愛好再結合市場前景,先選定一個方向,再選擇一門語言,然後頭也不回的深深扎進去。
2、優化學習方式
做好筆記,記錄經驗,我們大多數人並沒有過目不忘的神技,很多時候我們學了也不一定馬上掌握,需要過後花時間慢慢領悟,而且還有忘掉的風險,所以對於重要的知識點都要做好筆記。
3、多看官方文檔,外文資料
互聯網是一個更新迭代很快的行業,所有編程語言都會不斷的更新新功能和修復舊Bug,網上查的資料很有可能是舊的解決方案,現在已經不適用了。所以最好最快的方法就是查看官方文檔。
4、動手做項目
我們學習編程的最終目的就是用所學的做出具有一定功能的項目,而做項目又是最好的學習和鞏固知識的方式。如果前期能力不足就先做一些簡單的功能模塊,一步一步慢慢來,不要一開始就要實現各種酷炫炸天功能,遇到不會的就在網上查, 現在互聯網這么發達,獲取資源也及其方便。
『捌』 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
1、語法。
2、基礎理論(數學、數據結構、演算法等)。
3、設計方法(編程原則、設計模式、框架設計等)。
4、庫(核心、基礎、UI、擴展、游戲引擎等)。
5、計算機相關(操作系統、網路、圖形學等)。
6、領域知識(游戲設計、網站設計等)。
7、開發工具(編輯器、IDE、自動部署等)。
8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。
最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。
具體方法包括:
1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。
2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。
3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。
4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。
『玖』 c語言編程怎樣入門
相對於其他編程語言,C語言還是比較難的。初學者需要注意一下幾點:
一是學習順序
先從熟悉簡單的C語言語法開始入門,然後再循序漸進,學習C++語法,WIN32、MFC、QT、網路編程,資料庫、數據結構、演算法、COM、STL等。構建一個完整的C語言知識體系。這需要一個比較漫長的學習積累的過程。語法入門部分大概2-3個月,其他部分需要學習和工作中慢慢理解和消化了。
二是學習方法
人的知識80%是通過眼睛獲取的,但是學習編程有所不同,除了看書、看視頻之外,關鍵是要勤動手,勤動腦。通過做大量的練習、項目實戰不斷積累代碼量。只有代碼量足夠多了,項目做的多了,才能算是真正學會了。項目能否完成,就是衡量是否學會的唯一標准。後期就是代碼的質量和優化問題了,這個只能在項目工作中慢慢積累經驗了。
最後強調一點,很多人學不會編程是因為掉坑裡了。就是教程或者書上的知識點之間跨越太大,作為一個初學者很難自己摸索出來,前面的知識點沒有掌握,接著學習後面的知識,肯定是學不會了。目前絕大多數編程書籍和教程或多或少都有這樣的弊端。自學能力比較強的人可以通過各種方法,參考各種網上的資料自己解決。但是大多數自學能力不是很強的人,只能依賴老師、同學、同事或者朋友幫忙指導,或者報名培訓機構,老師指導完成了。學習編程通常需要一些好的學習資料,包括紙質的書籍,視頻教程,課件,項目練習,代碼。零基礎入門的書籍推薦《明解C語言》、《C Primer Plus》,還有一本非常特別的匯編和C語言正向逆向結合的書編程達人內部教材《匯編、C語言基礎教程》也非常不錯,講解匯編和C語言的本質非常透徹,非常細致。視頻資料也是特別多了,各種視頻網站、論壇、自媒體都有,比如網易課堂、騰訊課堂、慕客網這些。還有一些論壇,比如CSDN、編程中國等。最重要的一點就是答疑服務,推薦愛達人的網站也很不錯,從零基礎入門到應用課程,配套的視頻、課件、代碼、項目、答疑服務都有,還可以兼職接單,學以致用。