編程總結
㈠ 學習編程的基本知識
學編程要具備一定的基礎,總結之有以下幾方面:
(1)數學基礎 必須喜歡數學! 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,初學者有高中水平就差不多了。
(2)邏輯思維能力的培養 學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
(3)選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發 應用軟體開發的工具有:VS、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發 開發工具如 java 等。 3)網路開發 對客戶端開發工具如:Java Script 等;對伺服器開發工具如:ASPX 、PHP、ASP 、 JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的環境下幾種開發工具C#中 法簡單並容易理解,界面設計是可設化的,易學、易用。選 C#作為入門的方向對出學者是較為適合的。
(4)注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
本人自己學的是C#,現在感覺了自己也在不斷成長,的確編程是一條「不歸路」,既然選擇了就勇敢走下去!慢慢地語言差異的概念越來越模糊。走上設計居上的路。只有不斷學習,不斷充實才能走的更遠!
㈡ 學習編程
如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
方案一 Basic語言 & Visual Basic
方案二 Pascal語言 & Delphi
方案三 C語言 & Visual C++
方案四 C++語言 & C++ Builder
方案五 SQL語言 & Power Builder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
方案一 Basic語言 & Visual Basic
優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。
(個人意見:其實我認為學VB之前不需要BASIC的基礎,而且學起來非常容易上手,一般通過短時間的學習就能有所成就,如果在勤加練習的話,很容易就可以達到一個比較高的層次,但是起對指針的不支持使之靈活性不夠,還有由於其是高級語言的原因,直接對硬體操作的能力也是有限的)
方案二 Pascal語言 & Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。
(個人意見:Delphi是最近幾年很流行的一種語言,雖然我沒有用過,但是我早就聽說了它的嚴謹性,也許是由於學校中對這種語言的教育不夠吧,導致掌握這種語言的認輸似乎不是很多。。。)
方案三 C語言 & Visual C++
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。
綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。
(個人意見:這個其實很多高*最終都會走這條路,它無論在功能上還是靈活性,還是對硬體的操作上都是非常強大的,但是由於學習起來需要很大的毅力,所以這條路有些難走,不過我相信如果你學好了是絕對不會後悔的!!!!!)
方案四 C++語言 & C++ Builder
優點
(1)C++語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。
(個人意見:由於對這條路的了解不多,所以不敢妄自評論)
方案五 SQL語言 & Power Builder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。
(個人意見:對於資料庫的運用非常的專業:)
(個人意見:其實還有很多編程語言可以學習的,比如ASP/PHP+SQL,JAVA等,都是不錯的語言呀,呵呵)
***轉帖***
㈢ 《java程序設計》 課程總結怎麼寫
1、課程收獲與不足
自己的收獲
經過一個學期的JAVA課程學習,現在雖說算不上什麼專業的JAVA程序員,但我還是很有收獲。了解了這門語言,探索了這門語言,認知了這門語言。我從一個什麼都不懂的菜鳥,到現在能夠自己編一個簡單的程序並使其跑起來,在本學期末還與小組成員成功編譯運行了一個JAVA游戲,感覺十分有成就感呢!回首之前的學習歷程,要想真正有所學,有所得,必須持之以恆,踏踏實實的跟著婁老師的「方針政策」走,不要有排斥心理。剛開始學習JAVA的時候的確不習慣,覺得很累,每周的java學習與博客總結都會佔用周末業余時間。不過心態一定要好,反正要做,還不如把它做好,不要敷衍自己。萬事開頭難,習慣成自然!哈哈哈,雖然已經學了一學期JAVA了,但其實還有好多好多東西是需要自己去探索的。學習JAVA應該是循環漸進,按部就班,腳踏實地的。對了,JAVA課程是我第一次接觸翻轉課堂,翻轉課堂講究的是自己主動學習,主動探索,然後把問題反饋給老師,老師在課堂上解答。不過由於c語言學的不是很好,所以剛開始看到JAVA的時候,看著源代碼,都不知道是什麼意思,看書的時候一看到源代碼就頭疼,因為根本看不懂,那段時間挺挫敗的。不過幸好每周都要考試!所以這也是驅動我學習的一個主要原因,想要拿高分,就得花時間看,把不懂的想盡辦法弄懂。於是最開始最艱難的那段時間,我大部分課下時間都花在JAVA上,不懂的問高其和周正一,再加上翻書,網上查閱資料。三周下來,效果也挺明顯的,並且我覺得JAVA這門語言雖然很高級但並不復雜,很多功能都是可以直接調用的,不需要自己親手去編。世上無難事,只怕有心人。對於任何新生事物,我們首先不要排斥,如果可以,帶著興趣去探索,必定其樂無窮!受益匪淺!這學期也是我第一次接觸到博客園。我感覺博客園真的是一個集思廣益的地方,大家可以把自己的學習心得體會都通過博客的形式發表出來,然後其他人就可以去閱讀、去參考別人成功的方法,有什麼問題也可以建立一個小組,然後博主會和大家互動,共同探討,解決問題。一學期的博客園生涯讓我逐漸喜歡上了這里。記住,學JAVA,一定要做到課前預習與課後復習,書上的概念要理解透徹,代碼一定要過手;多和同學溝通,互相學習,取長補短。婁老師說過,知識是學不完的,重要的是要找到一種適合自己的高效的學習方法,這將受益終生。
2、自己需要改進的地方
我覺得應該多看別人的博客,多與別人進行交流,但是本學期學習壓力較大,這方面做得不夠好,所以這是我的一大遺憾!其次,對JAVA的不同庫的掌握需要增進,一旦對JAVA各種庫的引用融會貫通,對較大程序的編寫就能事半功倍,效率遠超C語言,這也是JAVA最吸引我的一個地方。還有就是學JAVA千萬不要浮躁,不要趕進度。說到浮躁,這也是一個很值得我深思的問題,我覺得我剛開始還沒完全接受JAVA的時候,就比較浮躁。做事停留在表面,敷衍。經過後來逐漸調整,才慢慢改變。真正學習的時候,浮躁會使你失去很多。
如果有結對,寫一下你提供的幫助或接受了什麼幫助,並對老師提供參考意見
在實驗三和實驗五階段都有結對的部分。通過結對,我深刻地明白了團隊合作的重要性。團隊精神能推動團隊運作和發展。在團隊精神的作用下,團隊成員產生了互相關心、互相幫助的交互行為,顯示出關心團隊的責任感,並努力自覺地維護團隊的集體榮譽。我覺得結對編程這一環節很好,不僅讓大家能夠明確分工,合作的編寫出程序,而且能培養大家的默契,讓我們能夠在實際操作過程中更好的編寫代碼。要想成功編寫程序,這一過程是很復雜的,而團隊方式可以使其簡單許多,遇到問題的時候可以大家一起想,集思廣益,而且團隊操作在很大程度上還可以實現優勢的互補(比如git代碼,然後共享)。
3、給學弟學妹們的意見
如果重新學習這門課,怎麼做才可以學得更好?
如果可以重新學習這門課的話,我想我會做的更好。首先我會找一本好的書本教材,然後輔助看教學視頻。因為翻轉課堂更強調的是自己主動學習,主動探索,主動發現問題。一本好的教材,可以讓你更快更好的進入 Java的世界,然後看視頻是一種比較直觀的輔助學習方式。建議先看課本,發現不懂的地方,再結合視頻,這樣效果更好,如果視頻上沒有講到的,就通過其他方式解決。老師之前會發視頻鏈接,那裡面講的內容(畢向東老師主講)都很不錯。書上概念與代碼搞懂了後,自己一定要主動動手敲代碼!因為看懂和學懂完全是兩回事,一定要學好基本語法,弄清 Java語言的特點。剛開始學習時,有些知識可能有些難懂,自己也不會敲代碼。不過這沒關系,這很正常。多看多問,多實踐,慢慢的你就入門了。千萬不要投機取巧!主動敲代碼真的是學JAVA的精髓!JAVA和其他的編程語言一樣,在學懂理論後,一定要實踐。只有多動手編程,哪怕是簡單的小程序,重復實現書上簡單的例子,也是在積累和提高。
4、問卷調查
你覺得這門課老師應該繼續做哪一件事情?
老師應該繼續要求扇貝打卡與五筆打字練習,然後期末加分。這種方法很值得提倡,希望能夠繼續做下去。這不僅可以調動大家學習的積極性,而且還讓我們的英語水平提高了很多,對於四六級以及以後在工作中打字速度等其他的方面都有很大的幫助。在博客園里發表博客也是很好的一種總結心得體會的方法,值得提倡。博客園是一個集思廣益的地方,大家把自己的學習心得體會都通過博客的形式發表出來,然後大家可以交流意見,有什麼不懂的也可以直接在問題小組里提出來,共同探討,共同解決問題。這種感覺很棒。對了,每周一考我也覺得這必不可少,可以敦促學生的學習進度。
你覺得這門課老師應該停止做哪一件事情?
感覺每周的學習任務還是偏重了,幾乎要佔據半個周末的時間來搞JAVA。老師應根據每周學習內容的難易程度,合理調配學習任務量。
你覺得這門課老師應該開始做什麼新的事情?
希望老師在課上多講一點關於教材知識的內容(包括實驗),讓我們能夠更高效更有針對性的去學習JAVA。因為教材的內容太多,盲目的去看就會浪費很多時間。如果因為趕進度,只是囫圇吞棗的看一遍教材的話,我們就不能很好的去理解java的相關知識。
㈣ 軟體編程學習心得
我也建意從C入門,主要是學思想.你都以經能看懂程序了我想寫門題也應該不大吧.現在市面上的編程語言是多但有的也的確太過時.現在主流的就JAVA和.NET建意在有了面向過程編程思想的基礎上向面向對像的編程思想轉變.JAVA和.NET選一門來學別一門思想都差不多有個了解就行一定不能學在主雜了,會把自己弄亂的.另外SQL和正則表達試一定要掌握
㈤ plc編程小結怎麼寫
寫你對PLC的整體認知以及你在PLC編程過程中的收獲。
㈥ 程序設計總結
通過本次課程設計,使我對《數據結構》這門課程有了更深入的理解。《數據結構》是一門實踐性較強的課程,為了學好這門課程,必須在掌握理論知識的同時,加強上機實踐。一個人的力量是有限的,要想把課程設計做的更好,就要學會參考一定的資料,吸取別人的經驗,讓自己和別人的思想有機的結合起來,得出屬於你自己的靈感。
程序的編寫需要有耐心,有些事情看起來很復雜,但問題需要一點一點去解決,分析問題,把問題一個一個劃分,劃分成小塊以後就逐個去解決。再總體解決大的問題。這樣做起來不僅有條理也使問題得到了輕松的解決。
在這個過程中,我也曾經因為實踐經驗的缺乏失落過,也曾經模擬成功而熱情高漲。生活就是這樣,汗水預示著結果也見證著收獲。勞動是人類生存生活永恆不變的話題。雖然這只是一次的極簡單的課程製作,可是平心而論,也耗費了我不少的心血,這就讓我不得不佩服開發技術的前輩,才意識到老一輩對我們社會的付出,為了人們的生活更美好,他們為我們社會所付出多少心血啊!
對我而言,知識上的收獲重要,精神上的豐收更加可喜。讓我知道了學無止境的道理。我們每一個人永遠不能滿足於現有的成就,人生就像在爬山,一座山峰的後面還有更高的山峰在等著你。挫折是一份財富,經歷是一份擁有。這次課程設計必將成為我人生旅途上一個非常美好的回憶!
通過這次的課程設計我對於專業課的學習有了更加深刻的認識,以為現在學的知識用不上就加以怠慢,等到想用的時候卻發現自己的學習原來是那麼的不扎實。以後努力學好每門專業課,讓自己擁有更多的知識,才能解決更多的問題!
㈦ 請問一下編程題的總結該怎麼寫
總結的一般寫法:
1、描述你解決了什麼問題
2、該問題的難點,解決問題時遇到的困難
3、你是怎麼解決問題的,用了什麼演算法
4、你用的演算法的不足,有什麼改進的方法
5、你的收獲
㈧ 初學編程
首先,學這個,不能急,慢慢來
編寫程序是一項系統而繁瑣的工作,它不僅需要程序設計人員具有一定的功底,更需要有良好的編程習慣和風格。良好的編程習慣和風格不僅可以使程序代碼更易於讀懂和修改,更重要的是,它可以使程序的結構更加合理,有助於提高程序的執行效率。下面是我在程序設計中總結的一些經驗,供大家參考。
設計順序
在我們剛開始學習程序設計的時候,要編寫一個程序,總是先進行一番構思,然後就一邊寫代碼一邊調試。這種方法一般只適用於非常小的程序,根據軟體工程的特點,如果對所有程序都還按這種方法進行設計,是不合理的。
其實,設計程序就像我們蓋高樓大廈,首先要設計圖紙,然後動工。所以,對於個人編寫程序來說,應遵循以下步驟:
1、問題分析:對我們要使用程序設計手段去解決的問題進行系統地分析,了解程序是做什麼的,要達到一種什麼樣的效果等。
2、結構設計:也就是對程序的整體框架進行設計,設計出我們需要使用的模塊等等,並畫出流程圖。
3、用戶界面設計:在此,我們要設計出用於與用戶交互的輸入輸出界面。
4、代碼設計:在這個步驟中,我們要進行代碼的編寫。
5、調試:對程序中正在發生或可能發生的各種錯誤進行處理。
6、維護:通俗地說,維護就是對程序進行升級,對原有錯誤進行修改。
對於以上幾個步驟,我想大多數人會認為代碼設計最為重要,但如果程序的結構尚未清楚,我們在編寫代碼的時候就會發生混亂,一個程序性能的好壞,主要還是取決於它的結構是否合理。因此,在程序設計中,我們要盡可能注意這一點,這樣才能使我們的程序更加完善。
設計環境
一個良好的編程環境可以使我們在編寫程序時,不至於造成各種資源的紊亂,還可以避免資源的丟失。建議大家要在放源程序的目錄下建立「Programs」文件夾;然後再以你要編寫的程序名和版本為名建立一個文件夾,用於存放整個源程序以及各種資源;最後,分別建立幾個文件夾,「Documents」:用於存放程序文檔,包括流程圖等;「Resource」:用於存放圖片,聲音,影片等資源;「Debug」:用於存放調試的程序。「Release」:用於存放最終釋放的程序。
例如:我們要製作一個英語學習軟體,名為「English」,版本為1.0,那麼我們的編程環境中應存在以下文件夾:
[DRIVE]:\\…\\Programs\\English1\\Debug\\
[DRIVE]:\\…\\Programs\\English1\\Documents\\
[DRIVE]:\\…\\Programs\\English1\\Resource\\
[DRIVE]:\\…\\Programs\\English1\\Release\\
另外,最好再建立一個專門的文件夾,用於存放各種模塊,以便能實現代碼的重用,這樣,我們就不用在每次寫程序時,都重寫所有的模塊,編程速度會有很大的提高。
設計技巧
代碼如果寫得很亂,程序便不易被閱讀與修改,所以,在編寫代碼時要注意以下幾點:
(1)注釋:寫注釋雖然要佔用一定的時間,但在閱讀和修改代碼時卻會節省很多的時間。所以,建議大家在定義一個函數時,在函數的第一行寫出函數的作用,再用一行解釋函數的參數,並在每個變數的定義語句後注釋出其作用。
(2)變數和函數的命名:每個程序都會使用很多的變數和函數,如果隨意命名變數與函數,每次使用時還得在變數或函數的定義語句處查出它的數據類型及名稱,而且隨意命名還會造成變數與函數重復定義。
建議大家使用匈牙利命名法,方法是:每個變數或函數的開頭都以其數據類型的縮寫命名,然後再加上代表這個變數或函數的作用的英文單詞簡寫共同組成變數或函數的名稱。例如:要定義用於計數的整型變數count,其定義語句為C\\C++:int icount; Basic:Dim icount as Integer。以這種方法定義,不僅可以有效地避免變數與函數的混亂與重復定義,還可以保證數據類型的匹配。
(3)控制項命名:如果在Windows下編程,你有可能會大量地使用控制項,如果不對控制項名嚴加管理,會造成很大程度的混亂,因此,建議在給控制項命名時,以控制項類型縮寫再加上代表這個控制項作用的英文單詞的簡寫共同組成此控制項的名稱。例如:你要命名一個按鈕控制項,作用是進行刪除操作,那麼控制項名可以命名為cmdDel。
並不是每個人都能成為頂級程序員,但我們都在程序員之路上不斷進步,追求更完美、更專業化的程序。不妨好好改造一下你的程序,你會從中感受到很多好處
/////////////////////////////////////////////////////////////////////
、《計算機組成原理》(熟悉)
2、《數據結構》(掌握)
3、《操作系統》(了解->熟悉)
4、《The C language》(掌握)
5、《編譯原理》(了解原理)
6、《匯編語言》(了解)
7、《計算機網路》(了解)
8、《軟體工程》(了解)
9、《關系資料庫》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向對象設計》(掌握;結合C++學習)
1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向對象高效編程》
8、《設計模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推薦)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技術內幕》
14、《MFC 深入淺出》
15、《軟體需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序員參考手冊》
19、《用TCP/IP進行網際互連》
20、《COM 本質論》
都是些學習編程的好書
㈨ 編程心得
編程
這是每個游戲編程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有很多簡潔的功能,但是慢。創作工具可以以最快的速度產生你的程序,但是僅對某一些類型的程序起作用。最好的方法是決定你要寫什麼樣的游戲,並選擇對你的游戲支持最好的語言。「試用三十天」的做法成為工業標準是件好事情。
㈩ 求學習編程的教程及心得體會
先學C,再學C++後面是WINDOWS編程(之後再怎麼深入就看你自己的了),再後面是JAVA、HEML這些的
心得嘛!別把編程當編程學才學,要把編程當作一門藝術學,這樣才學得好
編程很枯燥,所以需要有點精神的支柱才行...我當初學的時候,支柱是女朋友的鼓勵....嘻嘻
對了
編程切記不能死套...要靈活運用,數學好,這個是很好的資本,所以要多重視演算法方面的,因為演算法是一個程序的精髓,而且呢,你數學好,那麼邏輯思維應該不是很差,對演算法方面的理解也蠻有幫助的
還有就是,編程這東西是水到渠成的,所以呢,剛開始的時候會很幸苦,這個是第一個坎,以前我用了兩個多月才跨過這道坎,在那個時期,建議是多寫點程序,而且是即興創作
在跨過那道坎之後就差不多是一番風順的了
後面的自己摸索了