怎么学编程
計(jì)算機(jī)程序=數(shù)據(jù)結(jié)構(gòu)+算法!
但是你得必須先學(xué)一門語言,C,C++,C#,Java,至于選那種語言把!
按歷史淵源,C最先出現(xiàn),目的是為了編寫Unix操作系統(tǒng)。之后出現(xiàn)C++,即OOP(面向?qū)ο蟮恼Z言),但是他是非常不純的OOP語言,C#,Java,便是很純的面向?qū)ο蟮恼Z言。但是Java可以跨平臺運(yùn)行!他的優(yōu)點(diǎn)也在于此!
初學(xué)者,隨便選一門吧 !個(gè)人覺得,只要學(xué)就好!
數(shù)學(xué)相當(dāng)?shù)闹匾?#xff01;離散數(shù)學(xué)!組合數(shù)學(xué)!等等!
C,C++裝VC++6.0就已經(jīng)足夠了!(C程序可以不加修改可以在VC++上運(yùn)行!可以說,C是C++一個(gè)子集)
java,裝JDK+eclipse,,樓上說的不錯(cuò)!(其實(shí),JDK已足夠)
C#,弄一個(gè)VS2003/VS2005,都可以!
Java國外吃香吧!國內(nèi),說不好,都還可以吧!
其實(shí)你精通一們足矣!語言是相通的,你學(xué)會(huì)一們,另外一門很快舊能掌握。
從目前的趨勢看,C#,Java將會(huì)成為主流!當(dāng)然多學(xué)點(diǎn)東西只有好處!
是過去,現(xiàn)在,將來最有錢途的語言,一起來學(xué)c吧!~
學(xué)c用譚浩強(qiáng)教授的<<c程序設(shè)計(jì)>>或曾怡教授的視頻
視頻教程地址
http://hi.baidu.com/inhale/
1。數(shù)據(jù)結(jié)構(gòu),軟件工程,離散數(shù)學(xué)。。。
2。學(xué)C好了
3。java 裝 JDK+eclipse
C 裝 TC2.0
c++ 裝 vs(vc++);
c# 裝 vs.net
J2EE 和 C#平臺的比較好找工作,但要有一定的編程功底,數(shù)據(jù)結(jié)構(gòu)和軟件工程都很重要。。。其他的看你的愛好了
學(xué)習(xí)編程要學(xué)的東西說多也不多,但是很雜.比如數(shù)學(xué),電路.還有算法,數(shù)據(jù)結(jié)構(gòu),軟件工程,編譯原理,這些都是計(jì)算機(jī)專業(yè)學(xué)習(xí)的東西.如果只為了找工作的話,學(xué)習(xí)JAVA應(yīng)該錯(cuò)不了,現(xiàn)在JAVA已經(jīng)在國內(nèi)漸漸火起來了,雖然還有很多企業(yè)需要C++程序員,但是絕大多數(shù)的企業(yè)也需要JAVA程序員,根據(jù)數(shù)據(jù)顯示,95%的軟件公司需要JAVA程序員,這些公司不是只用JAVA程序員,是多種程序員都需要的.但是這也說明了JAVA的受歡迎度.C#是微軟仿造JAVA作出來的東西,基本上跟JAVA一樣,學(xué)好了JAVA,C#也就會(huì)了.
C語言裝TC或者BORLAND C
C++裝Visual C++
java裝JDK加netbeans或者JCreator,netbeans支持直接拖放.
。可以去學(xué)習(xí)軟件測試 現(xiàn)在的軟件測試人員 薪水很高的
2。一般入門都是從C開始
3。java 裝 JDK+eclipse
C和C++ 裝VC++就可以
另一個(gè)需要強(qiáng)調(diào)的是:
編程是一種技能,就同學(xué)習(xí)外語一樣,絕不可能“速成”!
在有了 10 年自學(xué)計(jì)算機(jī)技術(shù)的經(jīng)歷和近幾年在高校講授程序設(shè)計(jì)系列課程的經(jīng)驗(yàn)之后,我一直在思索以下幾個(gè)問題:
? 軟件到底是怎樣開發(fā)出來的?
? 編程是難還是易?有沒有能讓編程功力“暴長 10 年”的“武功秘笈”?
? 一個(gè)有志于成為優(yōu)秀軟件工程師的人應(yīng)該怎樣學(xué)習(xí)計(jì)算機(jī)技術(shù)?
? 用什么方式才能讓許多學(xué)生很快地學(xué)會(huì)特定的計(jì)算機(jī)技術(shù),而不用重復(fù)我和其他人所走過的彎路?
思索的結(jié)果就是大家所看到的這本書。
在我自己親身的學(xué)習(xí)與開發(fā)實(shí)踐中,逐漸形成了這么一個(gè)觀點(diǎn):
編程其實(shí)并不難!
要編程并不需要到大學(xué)計(jì)算機(jī)系里去學(xué)很多艱深的理論,經(jīng)過適當(dāng)?shù)闹笇?dǎo)與訓(xùn)練,一個(gè)高中生就可以參加到軟件項(xiàng)目團(tuán)隊(duì)中,并寫出具有相當(dāng)質(zhì)量水準(zhǔn)的程序!
為什么會(huì)有那么多的人把編程視為很高深的東西?
為什么我國那么多的軟件企業(yè)深感合格的程序員是如此難找?
與此同時(shí),又有與之完全對立的情況:每年有大批計(jì)算機(jī)及相關(guān)專業(yè)畢業(yè)生四處求職,卻處處碰壁,找工作成了一件很不輕松的事情……
一邊是真正合格的程序員人數(shù)很少,軟件企業(yè)都在喊急缺人才,而另一邊是大量的學(xué)生畢業(yè)找不著理想的工作。這樣一個(gè)怪圈為何會(huì)形成?
我想,造成這個(gè)怪圈有兩個(gè)重要的原因。
一是學(xué)生學(xué)習(xí)方法與態(tài)度的問題。由于對軟件開發(fā)這一工作本身缺乏正確認(rèn)識,許多學(xué)生形成了一種浮躁的功利型學(xué)習(xí)方法,表現(xiàn)為盲目地跟風(fēng)學(xué)習(xí)各種當(dāng)前流行的新技術(shù),但大都只是三個(gè)月熱度,由于欠缺毅力和不具備扎實(shí)的理論與實(shí)踐基礎(chǔ),對這些新技術(shù)無法深入把握,淺嘗輒止,“坐而論道”,討論時(shí)可以“滔滔不絕”,一到動(dòng)手則“原形畢露”。許多人沒有想過:現(xiàn)在流行的“新”技術(shù),難道就會(huì)一直“流行”下去?曾經(jīng)風(fēng)光一時(shí)的 Foxpro 和 PowerBuilder ,國內(nèi)曾有許多人(包括本人在內(nèi))投入大量的時(shí)間去學(xué)習(xí)與掌握,可沒過幾年,還有幾個(gè)項(xiàng)目是用這兩種技術(shù)開發(fā)的呢?所以,如果要“追”新技術(shù),也只能去學(xué)預(yù)計(jì)兩到三年后社會(huì)急需的技術(shù),這就需要學(xué)習(xí)者有超前的眼光。但軟件技術(shù)進(jìn)步實(shí)在太快,很少有人能夠準(zhǔn)確預(yù)測出幾年之后會(huì)流行什么。所以,與其“臨淵羨魚”,不如“退而結(jié)網(wǎng)”,選擇一項(xiàng)自己喜歡的領(lǐng)域,從理論到技術(shù),扎扎實(shí)實(shí)地用兩到三年時(shí)間去學(xué)好它,在學(xué)習(xí)過程中培養(yǎng)出“捕魚”的本事。有了這種自我學(xué)習(xí)的基本能力與素質(zhì),還擔(dān)心出海捕不到魚嗎?
有一些學(xué)生投入相當(dāng)多的時(shí)間與金錢去參加種種有著各種動(dòng)聽承諾的電腦培訓(xùn)班,指望別人能夠幫助自己成為技術(shù)高手,卻不知真正的高手大都是“自學(xué)成才”!
更有太多的尤其是非計(jì)算機(jī)專業(yè)的學(xué)生,盲目地去考各種認(rèn)證,不管是國內(nèi)的還是國外的考試,只要有證,就有大批的人去參加。他們把應(yīng)用計(jì)算機(jī)技術(shù)的能力簡單地等同于一紙證書。當(dāng)前的計(jì)算機(jī)等級考試就大有成為高校中第二個(gè)“英語四六級”的可能性。 事實(shí)上,你向別人展示自己寫的一個(gè)軟件作品,比給別人看一堆各式各樣的證書更能說明你的能力!
造成怪圈的第二個(gè)重要原因就是計(jì)算機(jī)教育問題。目前高校中的計(jì)算機(jī)教育并不能大批量地培養(yǎng)出合格的軟件開發(fā)者,學(xué)生在四年本科期間計(jì)算機(jī)理論學(xué)了不少,對培養(yǎng)編程能力卻重視不夠,缺乏實(shí)踐的結(jié)果是理論也掌握不好,學(xué)生的計(jì)算機(jī)水平被煮成了“夾生飯”。
除了在校的大學(xué)生,社會(huì)上還有大批的軟件開發(fā)愛好者,他們由于沒有機(jī)會(huì)系統(tǒng)地學(xué)習(xí)軟件開發(fā)技術(shù),就采用自學(xué)和自我實(shí)踐的方式,結(jié)合自己的工作來應(yīng)用學(xué)到的計(jì)算機(jī)技術(shù)。雖然他們沒有在校生的優(yōu)越條件,但其中優(yōu)秀人物的真實(shí)開發(fā)能力遠(yuǎn)勝于正規(guī)高校計(jì)算機(jī)專業(yè)“科班”出身的本科生甚至是碩士生。這種例子已經(jīng)很多了。
“職業(yè)選手”不如“業(yè)余選手”!
我自己是走“野路子”出來的,走的是以實(shí)踐為主導(dǎo)的自學(xué)之路,從親身實(shí)踐中深切感受到計(jì)算機(jī)科學(xué)本質(zhì)上是一門實(shí)踐性非常強(qiáng)的科學(xué),不管是在校學(xué)生還是社會(huì)上的軟件開發(fā)愛好者,我的建議是:
我從 2002 年開始接觸 .NET 技術(shù),并一直研究使用至今,前前后后看了近百本國內(nèi)外的 .NET 編程書籍,并寫了幾萬行的 .NET 代碼。在對 .NET 有了一定的了解之后,我認(rèn)為 .NET 技術(shù)是初學(xué)者學(xué)習(xí)軟件技術(shù)非常好的切入點(diǎn),學(xué)習(xí)者可以一步到位,直接學(xué)習(xí)目前主流的面向?qū)ο筌浖_發(fā)技術(shù),而不用按部就班,按傳統(tǒng)的先結(jié)構(gòu)化編程再面向?qū)ο缶幊痰捻樞蛉W(xué)習(xí)。
接著我思考的問題是:這本書該怎么寫?
著名物理學(xué)家愛因斯坦曾經(jīng)表達(dá)過這樣的思想:
學(xué)習(xí)時(shí)只需要掌握那些能讓思維導(dǎo)向深入的東西,而將其他無關(guān)的知識全部拋棄。
軟件技術(shù)本身有一個(gè)龐大而復(fù)雜的體系結(jié)構(gòu),不分巨細(xì)地樣樣都想掌握,那么只能是疲于奔命而終無所得。
為此,基于我自己的理解,在書中我將認(rèn)為是最重要和最基礎(chǔ)的東西突顯出來,這些東西是必須掌握的,一旦理解并掌握它們之后,讀者就掌握了“捕魚”的方法,自己就可以進(jìn)一步探索某一領(lǐng)域內(nèi)的其他技術(shù)點(diǎn)了。因此在書中不需對每個(gè)技術(shù)領(lǐng)域的每個(gè)技術(shù)點(diǎn)都“面面俱到”。
編程是有規(guī)律的,讀者能不能迅速成為一名具備相當(dāng)水平的程序員,關(guān)鍵在于對編程規(guī)律與必備知識基礎(chǔ)的把握程度。
最重要的是要掌握原理。在開發(fā)過程中所進(jìn)行的各項(xiàng)具體活動(dòng)與工作步驟,其背后都是有道理的,理解清楚了這些道理,在整個(gè)軟件開發(fā)過程中該做什么,不該做什么,先做什么,后做什么,也就心中有數(shù)了。
編了這么多年的程序,我意識到其實(shí)學(xué)習(xí)軟件開發(fā)技術(shù)的過程就是一個(gè)學(xué)會(huì)做事方法的過程。例如,在開發(fā)軟件時(shí),要“分而治之”、“步步為營”、“先局部后整體”、“合理安排開發(fā)次序”、“養(yǎng)成良好的編程習(xí)慣”等,這不僅僅是程序設(shè)計(jì)的技巧,也是做好編程之外許多其他工作所需要的。
在學(xué)習(xí)與掌握軟件技術(shù)這一過程中,可以鍛煉一個(gè)人的許多基本素質(zhì),如思維周密、意志堅(jiān)強(qiáng)、學(xué)習(xí)能力、創(chuàng)新精神等。如果一個(gè)人能在競爭空前激烈的 IT 業(yè)憑借著高素質(zhì)站穩(wěn)腳跟,那么,可以很有把握地說,如果他轉(zhuǎn)向其他行業(yè),同樣是一個(gè)優(yōu)秀的人才,也會(huì)闖出自己的一番天地!
在許多計(jì)算機(jī)技術(shù)書籍中,出現(xiàn)了大量的技術(shù)術(shù)語,對于不熟悉這些術(shù)語的讀者而言,這無疑加大了閱讀的難度。對于這些計(jì)算機(jī)術(shù)語的表述,如果強(qiáng)調(diào)其在理論上的科學(xué)性與嚴(yán)謹(jǐn)性,則往往不易于理解,這在很大程度上限制了這些知識的傳播、普及和應(yīng)用。因此,本書對這些術(shù)語大都采用了一種通俗易懂的方式來表達(dá),甚至使用了不少比喻手法來闡明其內(nèi)涵。這種表達(dá)方式雖易于理解,但不免在科學(xué)性和嚴(yán)謹(jǐn)性上有所不足,讀者如果需要科學(xué)而精確的定義,請自行查閱相關(guān)的科技文獻(xiàn)。強(qiáng)調(diào)一下,本書是一本志在普及軟件開發(fā)技術(shù)的專業(yè)書籍,與傳統(tǒng)的工程技術(shù)專著和計(jì)算機(jī)科學(xué)理論教材不同,閱讀時(shí)不要像中學(xué)學(xué)習(xí)數(shù)學(xué)一樣,每個(gè)字都不放過,而應(yīng)將重點(diǎn)放在形成對軟件開發(fā)過程的直觀理解和感性認(rèn)識上。
對于一個(gè)具體的軟件開發(fā)者而言,只有被理解了的知識才是真正有用的知識,無法理解的知識是毫無用處的。筆者寫書的主要目的是讓讀者能迅速地汲取書中所提供的知識,盡量做到 “用大白話講述復(fù)雜的技術(shù)” ,因此在文字上追求深入淺出,但是否真的做到了這一點(diǎn),還得由讀者來做出評價(jià)。
知識的獲取與掌握是有其客觀規(guī)律的,一般而言,具體的知識易于理解,而抽象的知識則難于把握,在學(xué)習(xí)過程中,應(yīng)遵循“具體 → 抽象 → 具體 → ……”這樣一個(gè)無限循環(huán)的過程。
如果某人對一門學(xué)科所知不多,卻指望他能通過理論學(xué)習(xí)迅速地把握這門學(xué)科,這就違反了人類認(rèn)識世界的客觀規(guī)律??上У氖?#xff0c;目前中國教育體制中普遍采用的讓學(xué)生重點(diǎn)學(xué)習(xí)抽象理論而忽視具體實(shí)踐的做法,造成了大批的學(xué)生既沒學(xué)好理論,也沒打好必要的實(shí)踐基礎(chǔ)。
我認(rèn)為,只有建立在實(shí)踐基礎(chǔ)之上的理論學(xué)習(xí)才是真正有效的學(xué)習(xí)。因此在整個(gè)計(jì)算機(jī)技術(shù)的學(xué)習(xí)過程中,應(yīng)該把開發(fā)實(shí)踐作為一條主線,由它串起所有的計(jì)算機(jī)理論。如果把計(jì)算機(jī)技術(shù)中的各個(gè)子領(lǐng)域看做是一個(gè)個(gè)珍珠,開發(fā)實(shí)踐就是那根把所有珍珠串成項(xiàng)鏈的絲線。沒有這根線,學(xué)習(xí)各門計(jì)算機(jī)課程得到的不過是一顆顆零散的珠子,價(jià)值有限。 回答者:ml3341304 - 見習(xí)魔法師 二級 7-16 22:26 編程
這是每個(gè)游戲編程FAQ里都有的問題。這個(gè)問題每星期都會(huì)在游戲開發(fā)論壇上被問上好幾次。這是個(gè)很好的問題,但是,沒人能給出簡單的答案。在某些應(yīng)用程序中,總有一些計(jì)算機(jī)語言優(yōu)于其他語言。下面是幾種用于編寫游戲的主要編程語言的介紹及其優(yōu)缺點(diǎn)。希望這篇文章能幫助你做出決定。
1、C語言
如果說FORTRAN和COBOL是第一代高級編譯語言,那么C語言就是它們的孫子輩。C語言是Dennis Ritchie在七十年代創(chuàng)建的,它功能更強(qiáng)大且與ALGOL保持更連續(xù)的繼承性,而ALGOL則是COBOL和FORTRAN的結(jié)構(gòu)化繼承者。C語言被設(shè)計(jì)成一個(gè)比它的前輩更精巧、更簡單的版本,它適于編寫系統(tǒng)級的程序,比如操作系統(tǒng)。在此之前,操作系統(tǒng)是使用匯編語言編寫的,而且不可移植。C語言是第一個(gè)使得系統(tǒng)級代碼移植成為可能的編程語言。
C語言支持結(jié)構(gòu)化編程,也就是說C的程序被編寫成一些分離的函數(shù)呼叫(調(diào)用)的集合,這些呼叫是自上而下運(yùn)行,而不像一個(gè)單獨(dú)的集成塊的代碼使用GOTO語句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的“空心粉式代碼”代碼要簡單得多。事實(shí)上,C仍然具有GOTO語句,不過它的功能被限制了,僅當(dāng)結(jié)構(gòu)化方案非常復(fù)雜時(shí)才建議使用。
正由于它的系統(tǒng)編程根源,將C和匯編語言進(jìn)行結(jié)合是相當(dāng)容易的。函數(shù)調(diào)用接口非常簡單,而且匯編語言指令還能內(nèi)嵌到C代碼中,所以,不需要連接獨(dú)立的匯編模塊。
優(yōu)點(diǎn):有益于編寫小而快的程序。很容易與匯編語言結(jié)合。具有很高的標(biāo)準(zhǔn)化,因此其他平臺上的各版本非常相似。
缺點(diǎn):不容易支持面向?qū)ο蠹夹g(shù)。語法有時(shí)會(huì)非常難以理解,并造成濫用。
移植性:C語言的核心以及ANSI函數(shù)調(diào)用都具有移植性,但僅限于流程控制、內(nèi)存管理和簡單的文件處理。其他的東西都跟平臺有關(guān)。比如說,為Windows和Mac開發(fā)可移植的程序,用戶界面部分就需要用到與系統(tǒng)相關(guān)的函數(shù)調(diào)用。這一般意味著你必須寫兩次用戶界面代碼,不過還好有一些庫可以減輕工作量。
用C語言編寫的游戲:非常非常多。
資料:C語言的經(jīng)典著作是《The C Programming Language》,它經(jīng)過多次修改,已經(jīng)擴(kuò)展到最初的三倍大,但它仍然是介紹C的優(yōu)秀書本。一本極好的教程是《The Waite Group's C Primer Plus》。
2、C++
C++語言是具有面向?qū)ο筇匦缘腃語言的繼承者。面向?qū)ο缶幊?#xff0c;或稱OOP是結(jié)構(gòu)化編程的下一步。OO程序由對象組成,其中的對象是數(shù)據(jù)和函數(shù)離散集合。有許多可用的對象庫存在,這使得編程簡單得只需要將一些程序“建筑材料”堆在一起(至少理論上是這樣)。比如說,有很多的GUI和數(shù)據(jù)庫的庫實(shí)現(xiàn)為對象的集合。
C++總是辯論的主題,尤其是在游戲開發(fā)論壇里。有幾項(xiàng)C++的功能,比如虛擬函數(shù),為函數(shù)呼叫的決策制定增加了一個(gè)額外層次,批評家很快指出C++程序?qū)⒆兊帽认嗤δ艿腃程序來得大和慢。C++的擁護(hù)者則認(rèn)為,用C寫出與虛擬函數(shù)等價(jià)的代碼同樣會(huì)增加開支。這將是一個(gè)還在進(jìn)行,而且不可能很快得出結(jié)論的爭論。
我認(rèn)為,C++的額外開支只是使用更好的語言的小付出。同樣的爭論發(fā)生在六十年代高級程序語言如COBOL和FORTRAN開始取代匯編成為語言所選的時(shí)候。批評家正確的指出使用高級語言編寫的程序天生就比手寫的匯編語言來得慢,而且必然如此。而高級語言支持者認(rèn)為這么點(diǎn)小小的性能損失是值得的,因?yàn)镃OBOL和FORTRAN程序更容易編寫和維護(hù)。
優(yōu)點(diǎn):組織大型程序時(shí)比C語言好得多。很好的支持面向?qū)ο髾C(jī)制。通用數(shù)據(jù)結(jié)構(gòu),如鏈表和可增長的陣列組成的庫減輕了由于處理低層細(xì)節(jié)的負(fù)擔(dān)。
缺點(diǎn):非常大而復(fù)雜。與C語言一樣存在語法濫用問題。比C慢。大多數(shù)編譯器沒有把整個(gè)語言正確的實(shí)現(xiàn)。
移植性:比C語言好多了,但依然不是很樂觀。因?yàn)樗哂信cC語言相同的缺點(diǎn),大多數(shù)可移植性用戶界面庫都使用C++對象實(shí)現(xiàn)。
使用C++編寫的游戲:非常非常多。大多數(shù)的商業(yè)游戲是使用C或C++編寫的。
資料:最新版的《The C++ Programming Language》非常好。作為教程,有兩個(gè)陣營,一個(gè)假定你知道C,另外一個(gè)假定你不知道。到目前為止,最好的C++教程是《Who's Afraid of C++》,如果你已經(jīng)熟知C,那么試一下《Teach Yourself C++》。
3、我該學(xué)習(xí)C++或是該從C開始
我不喜歡這種說法,但它是繼“我該使用哪門語言”之后最經(jīng)常被問及的問題。很不幸,不存在標(biāo)準(zhǔn)答案。你可以自學(xué)C并使用它來寫程序,從而節(jié)省一大堆的時(shí)間,不過使用這種方法有兩個(gè)弊端:
你將錯(cuò)過那些面向?qū)ο蟮闹R,因?yàn)樗赡茉谀愕挠螒蛑惺沟脭?shù)據(jù)建模更有效率的東西。
最大的商業(yè)游戲,包括第一人稱射擊游戲很多并沒有使用C++。但是,這些程序的作者即使使用老的C的格式,他們通常堅(jiān)持使用面向?qū)ο缶幊碳夹g(shù)。如果你只想學(xué)C,至少要自學(xué)OO(面向?qū)ο?#xff09;編程技術(shù)。OO是仿真(游戲)的完美方法,如果你不學(xué)習(xí)OO,你將不得不“辛苦”的工作。
4、匯編語言
顯然,匯編是第一個(gè)計(jì)算機(jī)語言。匯編語言實(shí)際上是你計(jì)算機(jī)處理器實(shí)際運(yùn)行的指令的命令形式表示法。這意味著你將與處理器的底層打交道,比如寄存器和堆棧。如果你要找的是類英語且有相關(guān)的自我說明的語言,這不是你想要的。
確切的說,任何你能在其他語言里做到的事情,匯編都能做,只是不那么簡單 — 這是當(dāng)然,就像說你既可以開車到某個(gè)地方,也可以走路去,只是難易之分。話雖不錯(cuò),但是新技術(shù)讓東西變得更易于使用。
總的來說,匯編語言不會(huì)在游戲中單獨(dú)應(yīng)用。游戲使用匯編主要是使用它那些能提高性能的零零碎碎的部分。比如說,毀滅戰(zhàn)士整體使用C來編寫,有幾段繪圖程序使用匯編。這些程序每秒鐘要調(diào)用數(shù)千次,因此,盡可能的簡潔將有助于提高游戲的性能。而從C里調(diào)用匯編寫的函數(shù)是相當(dāng)簡單的,因此同時(shí)使用兩種語言不成問題。
特別注意:語言的名字叫“匯編”。把匯編語言翻譯成真實(shí)的機(jī)器碼的工具叫“匯編程序”。把這門語言叫做“匯編程序”這種用詞不當(dāng)相當(dāng)普遍,因此,請從這門語言的正確稱呼作為起點(diǎn)出發(fā)。
優(yōu)點(diǎn):最小、最快的語言。匯編高手能編寫出比任何其他語言能實(shí)現(xiàn)的快得多的程序。你將是利用處理器最新功能的第一人,因?yàn)槟隳苤苯邮褂盟鼈儭?
缺點(diǎn):難學(xué)、語法晦澀、堅(jiān)持效率,造成大量額外代碼 — 不適于心臟虛弱者。
移植性:接近零。因?yàn)檫@門語言是為一種單獨(dú)的處理器設(shè)計(jì)的,根本沒移植性可言。如果使用了某個(gè)特殊處理器的擴(kuò)展功能,你的代碼甚至無法移植到其他同類型的處理器上(比如,AMD的3DNow指令是無法移植到其它奔騰系列的處理器上的)。
使用匯編編寫的游戲:我不知道有什么商業(yè)游戲是完全用匯編開發(fā)的。不過有些游戲使用匯編完成多數(shù)對時(shí)間要求苛刻的部分。
資料:如果你正在找一門匯編語言的文檔,你主要要找芯片的文檔。網(wǎng)絡(luò)上如Intel、AMD、Motorola等有一些關(guān)于它們的處理器的資料。對于書籍而言,《Assembly Language: Step-By-Step》是很值得學(xué)習(xí)的。
5、Pascal語言
Pascal語言是由Nicolas Wirth在七十年代早期設(shè)計(jì)的,因?yàn)樗麑τ贔ORTRAN和COBOL沒有強(qiáng)制訓(xùn)練學(xué)生的結(jié)構(gòu)化編程感到很失望,“空心粉式代碼”變成了規(guī)范,而當(dāng)時(shí)的語言又不反對它。Pascal被設(shè)計(jì)來強(qiáng)行使用結(jié)構(gòu)化編程。最初的Pascal被嚴(yán)格設(shè)計(jì)成教學(xué)之用,最終,大量的擁護(hù)者促使它闖入了商業(yè)編程中。當(dāng)Borland發(fā)布IBM PC上的 Turbo Pascal時(shí),Pascal輝煌一時(shí)。集成的編輯器,閃電般的編譯器加上低廉的價(jià)格使之變得不可抵抗,Pascal編程了為MS-DOS編寫小程序的首選語言。
然而時(shí)日不久,C編譯器變得更快,并具有優(yōu)秀的內(nèi)置編輯器和調(diào)試器。Pascal在1990年Windows開始流行時(shí)走到了盡頭,Borland放棄了Pascal而把目光轉(zhuǎn)向了為Windows 編寫程序的C++。Turbo Pascal很快被人遺忘。
最后,在1996年,Borland發(fā)布了它的“Visual Basic殺手”— Delphi。它是一種快速的帶華麗用戶界面的 Pascal編譯器。由于不懈努力,它很快贏得了一大群愛好者。
基本上,Pascal比C簡單。雖然語法類似,它缺乏很多C有的簡潔操作符。這既是好事又是壞事。雖然很難寫出難以理解的“聰明”代碼,它同時(shí)也使得一些低級操作,如位操作變得困難起來。
優(yōu)點(diǎn):易學(xué)、平臺相關(guān)的運(yùn)行(Dephi)非常好。
缺點(diǎn):“世界潮流”面向?qū)ο蟮腜ascal繼承者(Modula、Oberon)尚未成功。語言標(biāo)準(zhǔn)不被編譯器開發(fā)者認(rèn)同。專利權(quán)。
移植性:很差。語言的功能由于平臺的轉(zhuǎn)變而轉(zhuǎn)變,沒有移植性工具包來處理平臺相關(guān)的功能。
使用Pascal編寫的游戲:幾個(gè)。DirectX的Delphi組件使得游戲場所變大了。
資料:查找跟Delphi有關(guān)的資料,請?jiān)L問:Inprise Delphi page。
6、Visual Basic
哈,BASIC?;氐桨耸甏氖鲿r(shí)代,它是程序初學(xué)者的第一個(gè)語言。最初的BASIC形式,雖然易于學(xué)習(xí),卻是可怕的無組織化,它義無返顧的使用了GOTO充斥的“空心粉式代碼”。當(dāng)回憶起B(yǎng)ASIC的行號和GOSUB命令,沒有幾個(gè)人能止住眼角的淚水。
快速前進(jìn)到九十年代早期,雖然不是蘋果公司所希望的巨人,HyperCard仍然是一個(gè)在Windows下無法比擬的吸引人的小型編程環(huán)境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂貴。為了與HyperCard一決高下,微軟取得了一個(gè)小巧的名為Thunder編程環(huán)境的許可權(quán),并把它作為Visual Basci 1.0發(fā)布,其用戶界面在當(dāng)時(shí)非常具有新意。這門語言雖然還叫做Basic(不再是全部大寫),但更加結(jié)構(gòu)化了,行號也被去除。實(shí)際上,這門語言與那些內(nèi)置于TRS-80、Apple II及Atari里的舊的ROM BASIC相比,更像是帶Basic風(fēng)格動(dòng)詞的Pascal。
經(jīng)過六個(gè)版本,Visual Basic變得非常漂亮。用戶界面發(fā)生了許多變化,但依然保留著“把代碼關(guān)聯(lián)到用戶界面”的主旨。這使得它在與即時(shí)編譯結(jié)合時(shí)變成了一個(gè)快速原型的優(yōu)異環(huán)境。
優(yōu)點(diǎn):整潔的編輯環(huán)境。易學(xué)、即時(shí)編譯導(dǎo)致簡單、迅速的原型。大量可用的插件。雖然有第三方的DirectX插件,DirectX 7已準(zhǔn)備提供Visual Basic的支持。
缺點(diǎn):程序很大,而且運(yùn)行時(shí)需要幾個(gè)巨大的運(yùn)行時(shí)動(dòng)態(tài)連接庫。雖然表單型和對話框型的程序很容易完成,要編寫好的圖形程序卻比較難。調(diào)用Windows的API程序非常笨拙,因?yàn)閂B的數(shù)據(jù)結(jié)構(gòu)沒能很好的映射到C中。有OO功能,但卻不是完全的面向?qū)ο?。專利?quán)。
移植性:非常差。因?yàn)閂isual Basic是微軟的產(chǎn)品,你自然就被局限在他們實(shí)現(xiàn)它的平臺上。也就是說,你能得到的選擇是:Windows,Windows或Widnows。當(dāng)然,有一些工具能將VB程序轉(zhuǎn)變成Java。
使用Visual Basic編寫的游戲:一些。有很多使用VB編寫的共享游戲,還有一些是商業(yè)性的。
資料:微軟的VB頁面有一些信息。
7、Java
Java是由Sun最初設(shè)計(jì)用于嵌入程序的可移植性“小C++”。在網(wǎng)頁上運(yùn)行小程序的想法著實(shí)吸引了不少人的目光,于是,這門語言迅速崛起。事實(shí)證明,Java不僅僅適于在網(wǎng)頁上內(nèi)嵌動(dòng)畫 — 它是一門極好的完全的軟件編程的小語言?!疤摂M機(jī)”機(jī)制、垃圾回收以及沒有指針等使它很容易實(shí)現(xiàn)不易崩潰且不會(huì)泄漏資源的可靠程序。
雖然不是C++的正式續(xù)篇,Java從C++ 中借用了大量的語法。它丟棄了很多C++的復(fù)雜功能,從而形成一門緊湊而易學(xué)的語言。不像C++,Java強(qiáng)制面向?qū)ο缶幊?#xff0c;要在Java里寫非面向?qū)ο蟮某绦蚓拖褚赑ascal里寫“空心粉式代碼”一樣困難。
優(yōu)點(diǎn):二進(jìn)制碼可移植到其他平臺。程序可以在網(wǎng)頁中運(yùn)行。內(nèi)含的類庫非常標(biāo)準(zhǔn)且極其健壯。自動(dòng)分配合垃圾回收避免程序中資源泄漏。網(wǎng)上數(shù)量巨大的代碼例程。
缺點(diǎn):使用一個(gè)“虛擬機(jī)”來運(yùn)行可移植的字節(jié)碼而非本地機(jī)器碼,程序?qū)⒈日嬲幾g器慢。有很多技術(shù)(例如“即時(shí)”編譯器)很大的提高了Java的速度,不過速度永遠(yuǎn)比不過機(jī)器碼方案。早期的功能,如AWT沒經(jīng)過慎重考慮,雖然被正式廢除,但為了保持向后兼容不得不保留。越高級的技術(shù),造成處理低級的機(jī)器功能越困難,Sun為這門語言增加新的“受祝?!惫δ艿乃俣葘?shí)在太慢。
移植性:最好的,但仍未達(dá)到它本應(yīng)達(dá)到的水平。低級代碼具有非常高的可移植性,但是,很多UI及新功能在某些平臺上不穩(wěn)定。
使用Java編寫的游戲:網(wǎng)頁上有大量小的Applet,但僅有一些是商業(yè)性的。有幾個(gè)商業(yè)游戲使用Java作為內(nèi)部腳本語言。
資料:Sun的官方Java頁面有一些好的信息。IBM也有一個(gè)非常好的Java頁面。JavaLobby是一個(gè)關(guān)于Java新聞的最好去處。
8、創(chuàng)作工具
上面所提及的編程語言涵蓋了大多數(shù)的商業(yè)游戲。但是也有一個(gè)例外,這個(gè)大游戲由于它的缺席而變得突出。
“神秘島”。沒錯(cuò),賣得最好的商業(yè)游戲不是使用以上任何一門語言編的,雖然有人說“神秘島”99%是使用 3D建模工具制作的,其根本的編程邏輯是在HyperCard里完成的。
多數(shù)創(chuàng)作工具有點(diǎn)像Visual Basic,只是它們工作在更高的層次上。大多數(shù)工具使用一些拖拉式的流程圖來模擬流程控制。很多內(nèi)置解釋的程序語言,但是這些語言都無法像上面所說的單獨(dú)的語言那樣健壯。
優(yōu)點(diǎn):快速原型 — 如果你的游戲符合工具制作的主旨,你或許能使你的游戲跑得比使用其他語言快。在很多情況下,你可以創(chuàng)造一個(gè)不需要任何代碼的簡單游戲。使用插件程序,如Shockware及IconAuthor播放器,你可以在網(wǎng)頁上發(fā)布很多創(chuàng)作工具生成的程序。
缺點(diǎn):專利權(quán),至于將增加什么功能,你將受到工具制造者的支配。你必須考慮這些工具是否能滿足你游戲的需要,因?yàn)橛泻芏嗍虑槭悄切﹦?chuàng)作工具無法完成的。某些工具會(huì)產(chǎn)生臃腫得可怕的程序。
移植性:因?yàn)閯?chuàng)作工具是具有專利權(quán)的,你的移植性以他們提供的功能息息相關(guān)。有些系統(tǒng),如Director可以在幾種平臺上創(chuàng)作和運(yùn)行,有些工具則在某一平臺上創(chuàng)作,在多種平臺上運(yùn)行,還有的是僅能在單一平臺上創(chuàng)作和運(yùn)行。
使用創(chuàng)作工具編寫的游戲:“神秘島”和其他一些同類型的探險(xiǎn)游戲。所有的Shockwave游戲都在網(wǎng)絡(luò)上。
資料:Director、HyperCard、SuperCard、IconAuthor、Authorware。
9、結(jié)論
你可能希望得到一個(gè)關(guān)于“我該使用哪種語言”這個(gè)問題的更標(biāo)準(zhǔn)的結(jié)論。非常不幸,沒有一個(gè)對所有應(yīng)用程序都最佳的解決方案。C適于快而小的程序,但不支持面向?qū)ο蟮木幊?。C++完全支持面向?qū)ο?#xff0c;但是非常復(fù)雜。Visual Basic與Delphi易學(xué),但不可移植且有專利權(quán)。Java有很多簡潔的功能,但是慢。創(chuàng)作工具可以以最快的速度產(chǎn)生你的程序,但是僅對某一些類型的程序起作用。最好的方法是決定你要寫什么樣的游戲,并選擇對你的游戲支持最好的語言?!霸囉萌臁钡淖龇ǔ蔀楣I(yè)標(biāo)準(zhǔn)是件好事情。 回答者: 1〉學(xué)計(jì)算機(jī)專業(yè),除了學(xué)編程語言,先得學(xué)大學(xué)計(jì)算機(jī)專業(yè)課程.那些都是基礎(chǔ)基礎(chǔ)不學(xué)好,就算你學(xué)會(huì)了寫程序,也成不了優(yōu)秀軟件工程師的,而且沒基礎(chǔ)學(xué)會(huì)比較吃力.以后搞軟件開發(fā).象各種網(wǎng)站都是軟件開發(fā)WEB應(yīng)用方向.象各種殺毒軟件,辦公軟件,財(cái)務(wù)軟件都是軟件開發(fā)商業(yè)應(yīng)用方向? 這兩個(gè)方向都很有前途.
現(xiàn)在學(xué)java或者.net比較實(shí)用.
各種軟件用什么工具開發(fā)書上都有.都給了下載地址.
?
佳斯 - 江湖新秀 四級 7-17 18:36總結(jié)
- 上一篇: 从“富客户端”(RIA)说到 Flex
- 下一篇: 致敬柳传志三网合一的佳沃品牌之路