當前位置:首頁 » 編程軟體 » 編程學習心得

編程學習心得

發布時間: 2022-05-19 22:36:16

java學習心得總結怎麼寫

編程時一項很嚴謹的工作:一定要細心,一點點的不嚴謹,可能會導致整個項目出問題,正所謂:差之毫釐,失之千里;
2/4
編程要良好地邏輯思維和編程技巧:編程首先要有整體架構,再每個模塊去實現;編程技巧主要體現在編程的效率和性能;
3/4
良好地團隊合作精神:任何一個項目都不可能由一個人去完成,一個項目組共同開發,並行開發,最終一起整合;
4/4
編程的規范性:各行各業都有自己的規范,無規矩不成方圓,良好地編程規范有助於他人閱讀、理解,以及後期維護、再開發。

② 學習編程之路心得!!說好了加分!·

我是從高級語言學起的,以前什麼都不懂,就是個電腦盲。開始學C#什麼是面向對象之類的東西,感覺還挺好的,因為這些東西都接近人的語言,學起來很快能上手。然後學了JAVA,學了java後對類、屬性、方法等東西又有了更進一步的了解了,因為學C#的時候時間很短,而學到Windows編程的時候幾乎就是拖控制項,所以對程序的結構沒深入了解。java和C#有很多相似的地方,所以學起來是相互的促進,就像武俠小說里的學功夫樣的,,兩門基礎都學的差不多的時候就出現困惑了。不知道下一步該怎麼走了。就像學功夫,到了一定的時候要在加一層功力就難了。
在迷茫中尋找突破,希望有高人指點。
現在在學習C++了,有高級語言的基礎我覺得也能很快上手的,所以我覺得要學編程應該從高到低學起,這樣能夠有效率點,學了高級的用得著,然後邊實用邊學低級的,提高功力。

③ 創客覓峰機器人編程上課的感受

編程的過程,對於很多孩子來說是非常新奇的,因為這是他們第一次接觸「抽象思維」的過程。在學習編程的過程中,孩子會逐漸掌握抽象的法則。現實生活中把球扔到球框里,只需要用手拋一下就能實現,這是具象的操作;而在屏幕上想實現同樣的結果,就需要用到抽象思維,需要去思考球的運行軌跡。
編程還可以讓孩子掌握項目工程管理能力,簡單的說,就是學會如何做一個小項目經理。學習編程的過程,就是:設定目標——尋找方法——動手操作——解決問題。這個過程與項目管理的過程類似。
隨著科技的進步和發展,智能手機和設備的廣泛使用,人工智慧已經逐步進入到我們的日常生活中。隨著勞動力成本的增加,那些簡單重復性的操作極有可能會被機器人替代,不懂編程,未來可能都找不到工作!
Scratch是美國麻省理工學院開發的一款針對少兒的簡易圖形化編程軟體。操作Scratch軟體,孩子不需要學習任何語言,通過簡單的拖拽模塊即可完成一個程序的編寫,類似於樂高搭積木,操作起來特別簡單,是孩子學習少兒編程入門的不二選擇!Scratch的目的不是為了讓孩子學會具體的編程語言,而是側重培養孩子如何去思考問題,如何去解決問題,從而達到訓練和提高孩子的動手能力、獨立思考能力、邏輯能力。

④ 求學習編程的教程及心得體會

先學C,再學C++後面是WINDOWS編程(之後再怎麼深入就看你自己的了),再後面是JAVA、HEML這些的
心得嘛!別把編程當編程學才學,要把編程當作一門藝術學,這樣才學得好
編程很枯燥,所以需要有點精神的支柱才行...我當初學的時候,支柱是女朋友的鼓勵....嘻嘻
對了
編程切記不能死套...要靈活運用,數學好,這個是很好的資本,所以要多重視演算法方面的,因為演算法是一個程序的精髓,而且呢,你數學好,那麼邏輯思維應該不是很差,對演算法方面的理解也蠻有幫助的
還有就是,編程這東西是水到渠成的,所以呢,剛開始的時候會很幸苦,這個是第一個坎,以前我用了兩個多月才跨過這道坎,在那個時期,建議是多寫點程序,而且是即興創作
在跨過那道坎之後就差不多是一番風順的了
後面的自己摸索了

⑤ Java學習心得

我學習java已經有一年的時間了,不過雖然時間長,但是對於現在的我還是一個初學者,懂不了多少的java初學者。期間曾迷茫過,曾困惑過,走了不少的彎路,老師布置的試驗作業每次都是不會做,每次都是要問同學,這個代碼什麼意思啊?為什麼用這條代碼,用別的不行嗎?甚至後來根本沒耐心問,索性就復制同學的作業交上去。但是都是各種0分,害的同學也這樣,不過他能找老師反駁,而我卻沒實力。。。漸漸的,我認識到這樣下去是不行的,我必須改正自己的學習態度和方式。接下提到的就是我這一年來的java學習心得。
JAVA是一門計算機語言,是人類發明的語言,應該比人類語言更容易學習,只要你有一種必勝學習JAVA心態就可以成功。學習JAVA的方法:JAVA學習中,首先要做到課前、課後復習及預習,要時時保持一個清醒的頭腦;多和同學溝通;互相學習;取長補短;在學習中做到幫助他人或他人幫助自己。學習java,的確要學習的東西很多,就像同學提到的。Java不像.net一家獨大,Java的繁盛在於開源社區的龐大,這也帶來了分支太多的問題,怎樣選擇一條好的學習路線,對於初學者來說,的確是一件很迷茫的事。其實不管java東西再多,總有規律可循。對於學習java基礎的經驗就是多做、多思考,基礎知識的學習不能不求甚解,要追本溯源,弄清問題的本質。這樣才能舉一反三,由點及面。java的所有編程思路都是「面向對象」的編程。所以大家在往更高境界發展以前一定要打好基礎,基礎是王道。我們的基礎要扎實扎實再扎實。所謂打好基礎並不是說要熟悉所有的java代碼。要了解java的結構。class,methode,object,各種套用import,extend 讓自己在結構上對java有個立體而且整體的了解。
學Java千萬不要浮躁。說到浮躁,這也是一個很值得我深思的問題。我覺得我自己也有這樣的傾向,不僅是我,估計大多數的人都有這個毛病。總是喜歡討論什麼語言最好,什麼語言功能強大。這種討論倒沒有錯,不過真正學習的時候,浮躁會使你失去很多。在學習過程中,我很努力地使自己保持心理的平靜,從基礎學起,甚至是一些看上去完全沒有必要的基礎。 同學要扎扎實實,一步一個腳印的逐步學習,不要想著一步登天。不然我問他的時候,他跟我講的我也都不懂,這樣對我也沒用。
要多查API,它是Java編程的基本方法,也是編程過程中所不斷利用的資源。Java的學習過程不僅僅是基本語法的學習,更多的是去學習和掌握它所提供的API類庫。對於所接觸到的類,方法,都去仔細去閱讀文檔的說明,再用自己編寫的實例去此時一下。而且不要只看而不練,學好java靠的還是實踐,在一周兩節的實驗課要認真編程,不懂問同學或問李老師。只有理論和實踐相結合才能真正掌握只是和技能。而且還要懂得運用網路和谷歌,遇到問題可以先搜索一下,實在不懂再找同學。理論學習。通過對理論的學習,盡量了解新知識的概念;學習之後只是粗略的了解概念,不能和實際很好的結合。根據理論學習的知識,考慮在什麼場合下可以應用這個新知識,哪些地方已經應用了這個概念,建立對新知識的感性認識。

java是一種面向對象的操作語言,必須要明白這點,才能從總體上把握java。學習編程,首先要從分析別人的代碼開始,明白他們的思路,認真分析,在學習的過程中一定要動手做、寫代碼,九比如說老師布置的試驗作業,一定要自己做,不能抄同學的,首先不是為了應付老師,而是要讓自己真正懂得java,這樣慢慢的,以後的試驗自己就又實力去做。學習java不是抱一本書看看就行。很多東西和體會必須自己動手才能真正屬於自己,實踐失最重要的。而且還可以從實驗中,體會到編程的樂趣,感受到自己做好一個程序,然後運行出結果,失很有成就感的!
而對於J2EE,首先要先學JSP。要明白JSP的工作原理,在一個JSP文件第一次被請求時,JSP引擎把該JSP文件轉換成為一個servlet,而這個引擎本身也是一個servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把該JSP文件轉換成一個Java源文件,在轉換時如果發現jsp文件有任何語法錯誤,轉換過程將中斷,並向服務端和客戶端輸出出錯信息JSP的調試比較麻煩,特別是當bean是在一個session中存在時,更加困難。得從好幾個頁面開始往裡面走才行。通常是用out.println()或System.out.print()來打一大堆的信息來查問題。如果是用jbuilder做開發,它能直接調試JSP.不過更重要的是知道錯誤產生的原因及解決方法。JSP是用JAVA寫的,所以它是大小寫敏感的,用過其他編程語言的人最容易犯這個錯誤。另外在瀏覽器的地址欄中輸入的訪問JSP的地址也是區分大小寫的. 在jsp中判斷字元串要使用compareTo方法,不要用==,因為在java中String變數不是一個簡單的變數而是一個類實。所以JSP的知識不能欠缺,理解什麼是servlet,什麼是java bean,熟悉jsp常使用的標簽
對於學習java基礎的經驗就是多做、多思考,基礎知識的學習不能不求甚解,要追本溯源,弄清問題的本質。這樣才能舉一反三,由點及面。對於抽象的東西要能具體化,對於具體的東西要能抽象化。現在我學習java基礎一直使用的是《Java核心技術》這本書,這本書失同學推薦我看的,感覺挺不錯的,很基礎很全面。這本書強調重視基礎,如果java基礎打的牢,在學習那些java框架就是非常輕松的事了。
在這一年的學習過程中,通過同學的幫助和李旺老師的教導,我對java有了初步的認識和了解。學習java首先主要是學習了Java的程序結構,包括了循環、數組、類和方法以及字元串處理等內容。在學習期間,上課認真聽老師的講解,特別是課後練習和上機的題目,以及老師提供給我們的有關學習編程語言的方法和技巧,對於我鞏固所學的理論知識有很大的幫助。現在我也只是剛剛開始學習Java語言,所以想真正掌握Java技術,以後還會有很長的一段過程需要我們更加努力地去學習。畢竟,知識需要靠積累才能真正掌握。

⑥ 在學習編程的過程中有什麼體會,覺得要提醒別人別再入坑

有很多學習過編程的同學其實在學習了以後都覺得自己選擇的專業不夠好,因為自己對於編程這個行業一竅不通。在當今這個社會上大數據已經成了非常受人關注的一個領域,如果大家都選擇了這個領域的話,那麼這個領域的競爭力就會變得更大一些,除此之外對於大家的要求也會更高一些。所以說編程這個行業的競爭力其實是特別大的,想要學了編程就能夠找到好工作簡直就是不可能的事情,因此大家在選擇這個專業之前一定要好好地了解一下這個行業的現狀。

想要在學習編程的時候畢業就找到好工作,那麼在學習的過程當中就一定要積累相應的知識。如果說自己在學習的時候沒有積累到足夠的知識的話,那麼今後很有可能還會遇到各種各樣的麻煩,甚至在進入到了社會以後也會受到工作的刁難。因此在學習編程的時候一定要注意,除了上課非常用心之外,下課也要進行相應的練習,只有這樣才能夠更專業的掌握編程的知識。

⑦ 0基礎學python,聊聊這半年我是如何自學編程

很多人在遇到事業瓶頸,或者從事一份自己不喜歡工作,又或者對未來迷茫的時候,總能看到很多人說,轉碼農,當程序員。
誠然,轉行當程序員不僅是政治正確還是事實正確,但是這個過程其實並不容易,倒不是因為程序員門檻高,而是很多人認為學編程很難,並且拒絕嘗試。
其實掌握方法後,並且拉近自己與編程的距離,你會發現,你完全可以做到。
剛好這半年,自己一直在學習Python,根據自己這半年自學編程的經歷,班門弄斧,分享一下自己自學編程上的一些學習心得。
另外這邊大神較多,本篇文章只是拋磚引玉,肯定有不靠譜地方,麻煩到時候輕拍,先謝過。

⑧ 求c/c++編程心得,就是自己感覺比較好的地方和技巧

編程,就是把復雜的問題簡單化,簡化到每個動作都是1+1=2那麼簡單,然後計算機照做就好了。這就是我理解編程的真諦。我師姐聽到了,也若有所悟,這個話題就沒有再說了。

我們來分析一下計算機的特點,准確的講,目前我們這個社會的計算技術,還很原始,說它是計算機,正確,它確實只能計算,說它是電腦,太抬舉它了,它不可能有思考能力。

在馮諾依曼體系架構中,計算設備就是具有一定計算能力,有能力和外界做出IO互動,並且能高速重復動作的這么一種設備,這可能和大家在教科書裡面學到的不太一樣啊,不過,我是這么理解的。

因此,我從一開始,就沒有把計算機作為一個夥伴,一個可以幫助我出主意,或者代替我思考的夥伴,僅僅是看做一種工具,這種工具有什麼用呢?我認為它最重要的,有兩個作用:

1、無限可重復性,一個動作序列,一旦編訂程序,計算機就可以無數次重復這個序列,不會感到累。這特別適合於那些乏味的,不斷重復的勞動,比如,我們一個學校每天要敲鍾,打上課鈴,如果讓人來做,這個人會很乏味,做久了,就可能出錯,但是讓計算機來做,它可沒有什麼思想,不會覺得累,而且做的很好。計算機特別適合做重復性工作。

2、服務品質的穩定性。計算機適合做重復工作,還有個有點,就是每次執行結果都是一樣的。這體現了工業化時代最重要的一個思想:量產思維,大家可以看到,現在的社會,不可重復的藝術固然很好,但公眾需要的是量產的產品,因為質量穩定,產量穩定,能滿足大眾需求。勞斯萊斯雖然很美,但絕大多數人在開大眾、豐田等低端車。就是這個道理。還是打鈴那個例子,如果是人,可能會生病,可能會請假,或者乾脆搞忘了,但計算機不會,只要有電在正確工作,打鈴就不會出錯。

這樣,我就慢慢理解到了,計算機其實就是能以恆定品質不斷重復輸出服務的機器而已。

ok了,這我們是不是可以理解到,計算機編程,其實首先是人的工作,當我們遇到一個服務需求,我們人來做一次,嗯,獲得一個比較滿意的結果,然後我們覺得這個動作可以重復,下次遇到類似的問題,照做就好了。於是,我們就安排計算機來做這件事了。是不是這樣?

這是不是說明,程序,其實是在講一件事應該怎麼做,這個做的過程,以及這個過程的含義,其實是人定義出來的,然後通過編程,教給計算機來做而已。

我以前經常有種感覺,計算機編程,是兩層意思,一層,是程序本身的含義,就是怎麼做事,另一層,是隱含在程序下面的邏輯含義,就是做事的意義,程序只是字面上的意思,而邏輯,是程序段落組合起來,共同表述的一層意思。現在想想,其實就是這個道理。

嗯,既然我們知道,編程,就是把做一件事情的步驟,分拆開來,教計算機去做,但,分拆到什麼粒度呢?這個很重要。如果分拆的粒度太細,白白浪費程序員的時間和精力,這些都是成本。而分拆得太粗,計算機還是弄不明白,做事不對,就是bug了。

這說明,編程有個很重要的概念,就是粒度,也就是我們對問題描述的精細程度。

最開始的計算機是最笨的,學過計算機組成原理的同學大概知道,只要有個累加器,其實已經可以算一台計算機了,只會做加法計算。因為從數學上,我們可以知道,任何計算,最終都可以演化成加法計算,事實上,現在的CPU,在最底層核心的部分,也還是這個加法邏輯。

這樣做當然沒什麼不好,不過,有個小小的問題,就是粒度太細了。如果每件事情,都要程序員去拆解成很細的加法計算,這個工作就幾乎不是人乾的事情了。難道就無解了嗎?

呵呵,前面我們說過,計算機的特點是什麼?無限重復,大家就發現,一個事情,比如7*24,這是乘法計算,但是,我們最終要拆解為加法計算去實現,但是,不是說我們每次都要這么拆解,乘法計算也是一個工作,有規律的,因此,當我們拆解一次之後,我們當然可以把這次拆解過程本身,編訂為程序,下次遇到類似問題,讓計算機把這個程序再跑一遍就ok了。呵呵,大家以為Intel的CPU裡面的乘法計算指令是怎麼實現的?大家又以為AMD的CPU內部的微代碼體系是怎麼實現的?

就是這么一個思維,解決了所有的問題,遇到需求,首先拆分,然後不斷檢索我們以前是不是以前拆分過了,遇到能套用的程序段落,就直接用,不用每次都拆分那麼細,減少工作量,當然,遇到新問題,還是需要自己拆解的,不過,拆解後,最好把拆解本身,也寫成程序,下次重用。

大家玩各種語言,一般都提供基本庫,這個基本庫,其實就是前人已經拆解過的結果,軟體公司覺得有代表性,可以滿足大多數應用場合,就編訂到基本庫裡面,以後程序員直接用,不用自己重復了,大家說是不是這樣?

現在,大家知道怎麼看待C的stdio.h,stdlib.h這些基本庫了吧?C++的iostream是什麼含義,知道了不?MFC知道了不?Java的運行時庫是什麼意思,也知道了吧?

不過呢,這個世界的需求總是很多的,並且,計算機的能力也是不斷在進步,以前不適合計算機做的事情,現在也慢慢變得適合了。因此,大家總能遇到一些新問題,需要自己重新拆解,基本庫中沒有提供,這就是程序員這個職業存在的真實含義。幫助用戶不斷拆解新需求,解決新問題。當然,庫本身也在進步,不斷把已經被證明拆解成功的問題,修補到庫中,避免以後的程序員做重復工作。就這么簡單。

呵呵,啰嗦了這么多,可能很多同學看的一頭霧水,肖舸老師你到底想說啥?

我想說的,其實很簡單,編程序,就是拆解問題,但講究個拆解的技巧和方法,以前人做過的,別做,盡量用,沒有的,做過一次,盡量保留下來,供下次使用,就這么簡單。

那,這和本文的題目「修煉編程的內功」有啥關系呢?

當然有關系了,什麼叫編程的內功?我的理解,就是對這個世界的抽象化理解能力以及描述能力。一個工作,能迅速從中提煉出下次可以重復的套路,並且能以一定的規則,就是計算機語言規范,描述出來,擁有這兩個能力,就能保證遇到任何問題,都有辦法寫出程序來。

所以,大家學校中學了很多數學,語言,演算法,數據結構,甚至編譯原理,操作系統,其實這些統統是工具,不是寫程序的目的。

寫程序,就是遇到需求,能迅速抽象,理解其共性,並能以清晰的語言描述出來。上述學科,不是幫助提升你的抽象能力,就是幫助提升你的描述能力,大家看是不是這個道理?

所以,我在帶徒弟的時候,有時候喜歡說一句話,其實作為程序員,學習一點語文有好處,因為最能培養描述能力的,其實還是語文。英語不算啊,英語雖然也是一門語言,但中國的教育,一般是能看懂,很少從一個英文文學家的角度培養學生用英文的描述能力。只有我們的語文課,這不但是教語言,而且通過無數次造句和作文,在教大家描述問題的組織能力,這個能力在寫程序的時候,很有用。

這個時候,話題就出來了。中國的語文,先是甲骨文,然後古文,然後白話文,大家發現沒有,總體是越來越簡單,這是發展的趨勢。為什麼呢?因為大家覺得,語文就是讓人懂的,太深奧的東東,不太適合普及,就沒有生命力,反而越簡單的東東,普及越快。

因此,請大家注意,寫程序時拆解,是把問題簡單化,不是說把一個問題描述得晦澀難懂,才叫本事。真正的程序高手,都是簡化問題的大師。

當然,從這個話題,我們是不是可以得出一個結論,其實寫程序的方法本身,編程的內功本身,其實是沒有什麼語言特性的,C、C++、Java、PHP、Python。。。是不是都用的同一種方法在做事情?

因此,我這里提出,修煉編程的內功,是學習抽象能力和描述能力,與語言無關,換而言之,從任何一門語言入門,都可以修煉到內功的極致,關鍵看你用不用心。

因此,學習期間,我的建議,不要好高騖遠,不要去評價語言的好壞,平台的好壞,沒有多大意義的,你並不能確定這輩子最終能在哪個平台下用哪種語言開發。撿著手邊有的書,老師教的課程,埋進去學扎實,出來後,換語言比吃盤菜也難不倒哪去,呵呵。這算是正式回答傑傑同學的問題。

再說一下郭曉同學的問題。他列了一個很偏的題目,就是有兩個變數a和b,不用if、?:、switch或其他判斷語句,找出兩個數中比較大的那個。

這個問題,我不認為是個好問題,因此提出異議。主要的原因就是基於上述的討論,我認為評價一個程序員好壞的標准,應該是考察其簡化描述問題的能力,而不是把問題復雜化的本事。

這在學院派裡面很多,這里大家可不要生氣啊,我知道大家現在基本上都是大學學計算機專業的,算是學院派,但肖老師我的實戰出來的,看法很多都和大家不一樣。

學校裡面,老師的任務是把盡可能多的東東教給大家,因為他不知道以後你做什麼工作,哪些知識沒用,因此,學校老師會盡量培養大家描述復雜問題的能力,這就造成了,學校裡面的考試,是盡量把問題復雜化,多考察大家幾個項目。學校裡面的風氣,也認為能解決復雜問題算高手,甚至問題本身不復雜,大家把它造復雜,來考核自己的能力。

但實際工作中不是這樣的,實際工作中,大家最看重的是能用最簡單的辦法解決問題的能力,因為這樣成本最低,無形中,大家賺錢最多。所以,對問題的抽象拆解和清晰描述非常看重。

很多同學剛剛上班,會很不適應,其實就是這個思路的轉換。學院里,以復雜為美,而商業公司中,以簡單為美。這應該是一個很大的思想轉變,甚至是世界觀的改變,很難的。一般轉的比較快的同學,在公司裡面進步就比較快,但我也見過工作幾十年了,還是沒有轉過來的程序員,一般在公司裡面活的就比較累一點。

建議大家好好思考一下我今天的提法,看問題抓本質,只要能及時理解商業公司的開發思路,理解簡單這個要素,我不敢說大家一定能找到工作,但只要找到了,在公司裡面,基本都能快速融入公司。

⑨ 軟體編程學習心得

我也建意從C入門,主要是學思想.你都以經能看懂程序了我想寫門題也應該不大吧.現在市面上的編程語言是多但有的也的確太過時.現在主流的就JAVA和.NET建意在有了面向過程編程思想的基礎上向面向對像的編程思想轉變.JAVA和.NET選一門來學別一門思想都差不多有個了解就行一定不能學在主雜了,會把自己弄亂的.另外SQL和正則表達試一定要掌握

⑩ 編程心得

編程
這是每個游戲編程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有很多簡潔的功能,但是慢。創作工具可以以最快的速度產生你的程序,但是僅對某一些類型的程序起作用。最好的方法是決定你要寫什麼樣的游戲,並選擇對你的游戲支持最好的語言。「試用三十天」的做法成為工業標準是件好事情。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:645
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:936
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:632
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:821
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:731
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1066
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:299
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:160
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:850
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:763