學習啦 > 學習方法 > 通用學習方法 > 學習方法指導 > 程序設計學習方法

程序設計學習方法

時間: 方琪1092 分享

程序設計學習方法

  程序設計就是讓計算機為解決某個問題而使用某種程序設計語言編寫程序代碼,并最終得到相應結(jié)果的過程。那么,程序設計學習方法有哪些?下面是學習啦小編為你搜集到的相關內(nèi)容,希望可以幫助到你。

  程序設計學習方法

  1學習目的

  要學習程序設計,必須明確學習的目的,也就是學習程序設計是為了什么。是為了了解計算機,還是為了自己的發(fā)展或者是因為個人愛好。程序的實現(xiàn)不是一時愛好就可以完成的。一般來說在學習程序設計方法和語言時掌握基本理論及語法時比較容易,但是在實際應用時卻覺得無從下手。如何編寫符合要求的程序、如何編寫高質(zhì)量的程序更是程序設計人員所面臨的難題。這就要求學習者仔細體會,在反復實踐的過程中掌握程序設計技巧,通過不斷的克服困難來提高自己的程序設計能力。這是一個長期的過程,所以必須有堅定的恒心才能開始學習。

  2基礎知識

  在學習程序設計之前必須有一定的基礎。作為一個優(yōu)秀的程序設計人員,數(shù)學是十分重要的。數(shù)學是自然科學的基礎,計算機科學實際上是數(shù)學的一個分支。數(shù)學主要能讓人懂得一種分析問題的方法,然后再通過程序設計去實現(xiàn)它。計算機內(nèi)部的許多原理也都牽涉到比較復雜的數(shù)學知識,它是用來解決現(xiàn)實問題的最高效的工具。很多程序設計的初學者對數(shù)學覺得不屑一顧,覺得對于程序設計沒有什么關系,實際上優(yōu)秀程序設計人員和一般程序設計人員拉開檔次在很大程度上就取決于數(shù)學能力的強弱。一些項目有時需要很復雜的數(shù)學建模和利用數(shù)學對于系統(tǒng)效率進行分析,而這些項目對于一般的程序員是很困難的。正確應用數(shù)學知識有時候能使程序的效率產(chǎn)生質(zhì)的飛躍。如果一個程序設計人員在數(shù)學上很薄弱,這點必須引起足夠重視,有了一定的數(shù)學基礎,當別人對于某些項目感到無從下手時,而自己卻能夠完成,這個時候自己的價值也就體現(xiàn)出來了。真正優(yōu)秀的程序設計人員最基本的一點就是要能夠通過自己的知識來解決一般程序設計人員所無法完成的問題,而數(shù)學能力就是一個很重要的因素。

  3語言的學習

  3.1 語言學習的基礎

  程序設計語言五花八門,究竟該如何學習,應該學習哪一門。首先,從C開始學習。當然這里要提醒一下,千萬不要一開始就學VB、VC之類的東西,一開始就學這些東西,有可能把自己引入一個錯誤的學習方向而忽略了真正應該掌握的東西。不要被VC、BCB、BC、MC、TC等詞匯所迷惑,這些都是集成開發(fā)環(huán)境,而程序設計人員要學的是一門語言。學C主要是學過程化的程序設計,學會把自己的程序分成許多的函數(shù),養(yǎng)成良好的程序設計習慣,培養(yǎng)一種程序設計思想。學習程序設計最好的方法之一就是閱讀源代碼,可以多看一下專家的程序,不一定要懂意思,主要是學習別人程序的格式,比如變量如何起名,怎么劃分函數(shù)。除了掌握基本的控制語句外,還應該學習一些很簡單的I/O函數(shù)和數(shù)學函數(shù)。C的學習主要就是學會使用函數(shù),提高代碼重用性,認識面向過程的程序設計方法,對結(jié)構(gòu)化程序設計有一定的認識。對于指針之類的東西如果實在看不懂可以先不去管,有的問題反過來看也許會感覺容易很多。

  3.2 語言學習的鞏固

  當自己能夠比較自如的用C編寫一些小的計算程序時,就可以開始數(shù)據(jù)結(jié)構(gòu)的學習了。數(shù)據(jù)結(jié)構(gòu)可以一點一點慢慢看,并不需要專門空出一段時間來專門研究,這樣的目的是讓自己能夠很好地掌握它。要學會用數(shù)據(jù)結(jié)構(gòu)的知識來規(guī)范自己的程序設計和提高程序的效率。這主要是因為程序設計者必須足夠的重視數(shù)據(jù)結(jié)構(gòu)。如果說計算機專業(yè)的學生與非計算機專業(yè)的最根本的差別是什么,那絕對是數(shù)據(jù)結(jié)構(gòu)。數(shù)學大家都一樣學了,主要看自己學得好壞。對數(shù)據(jù)結(jié)構(gòu)的掌握與運用能力是衡量程序設計能力的一個很重要的指標。有的人對于看了鏈表、堆棧、樹、廣義表這些東西就頭痛,然而這些東西往往能使程序的效率比別人高出百倍,所以硬著頭皮也要學習。當然,看第一遍書是不能記住和掌握全部知識的,必須看第二遍、第三遍,甚至更多。如果覺得對樹、鏈表、堆棧之類的東西和排序,遞歸之類的算法已經(jīng)十分清楚,就可以開始學習C++了。

  3.3 語言學習的提高

  學習前一定要有個正確的認識,那就是C和C++是兩個不同的東西,不要因為C++是從C發(fā)展來的,更不要因為C和C++中有一些語法和關鍵字看上去相同,就認為它們的意義和作用完全一樣,C++絕不是所謂的C的單純的“擴充”,如果C++一開始就起名叫Z語言,程序設計者一定不會把C和Z語言聯(lián)系得那么緊密,其實主要學習的正是C++和C不同的地方。學習C++是為了學習面向?qū)ο蟮某绦蛟O計。這個時候要求對于指針應該有一定程度的掌握,當然如果有匯編的基礎更好,主要抓住C++和C相比的一些新特性,對于封裝、繼承和多態(tài)之類的特性要注意理解掌握,而且要通過具體的實例來便于理解,如果沒有搞懂就堅決不要往下學習,直到理解為止。這些基本的概念掌握以后就可以看一些別人設計的程序,學習別人怎么利用面向?qū)ο蟮姆椒▉碓O計程序,這個也是與別人之間拉開檔次的一個環(huán)節(jié),可以和數(shù)據(jù)結(jié)構(gòu)放在同等重要的地位。

  從C到C++是從面向過程的程序設計轉(zhuǎn)化到了面向?qū)ο蟮某绦蛟O計,應該說是一種提高,通過封裝、繼承和多態(tài)之類的特性,更高程度上提高了程序設計的效率,但是對于程序設計來說,語言主要就是指語法結(jié)構(gòu),而真正重要的是程序設計的步驟。

  4 程序設計步驟

  很多人無論學習什么,都有一種習慣,就是找訣竅。有的秘訣可以讓自己事半功倍,而有的秘訣則就是沒有秘訣。學習程序設計的秘訣就是:程序設計,程序設計,再程序設計。在程序設計的過程中,任何時刻都不要認為自己手中的書已經(jīng)足夠了,看得懂的書,要仔細看,看不懂的書,也要仔細看,也正是這些看不懂的東西才有它們所特有的價值,每個人都看得懂的內(nèi)容是沒有辦法拉開檔次的。

  4.1程序設計的思想

  編寫程序的時候,開始的想法是非常重要的,也就是程序設計的思想。前邊討論的是對于語言的學習,其實學習一門語言或者開發(fā)工具,語法結(jié)構(gòu)功能調(diào)用是次要的,最主要的是學習它的思想。譬如學習VC,就是要學習WINDOWS的內(nèi)在機理如何,什么是消息循環(huán),如何進行消息影射,什么是窗口注冊,什么是Callback,什么是線成;學習Java是要知道什么是面向?qū)ο?,什么是繼承,什么是封裝,什么是多態(tài);學習DELPHI,VB就要知道如何快速開發(fā),如何模塊重用,如何統(tǒng)一界面和數(shù)據(jù)。關鍵是一個思想,有了這些思想,那么程序設計者就可以觸類旁通。譬如有了C/C++的知識,PASCAL、VB就可以基本上掌握了要領,這也讓大家知道學習C++原來也不是在浪費時間。有了C++的基礎,其它什么都能應變自如,DELPHI可以很快地學完,JAVA也可以邊做邊學,就連剛剛發(fā)布或者以后將會出現(xiàn)的的程序設計語言也可以理解。

  語法是不同的,但算法是相同的。在寫程序之前,一定要想好這個程序如何來實現(xiàn),對于程序設計人員來說思路是非常重要。

  曾經(jīng)有一個人參加計算機展覽,每天他進門時都對門衛(wèi)說:

  “先警告你,我是偷盜高手,我入室偷盜的本領聞名遐邇。這次展覽會也在劫難逃。”

  警衛(wèi)因此大動干戈,因為里面有價值百萬的計算機設備,所以他牢牢盯緊了這個人,但是這個人只是從一個攤位逛到另一個攤位,一邊平靜地喃喃自語。

  當這個人離開時,警衛(wèi)搜了他的身,但是什么也沒有發(fā)現(xiàn)。

  展覽會的第二天,這個人又對警衛(wèi)說:“昨天我滿載而歸,但是今天我會收獲更大。”所以警衛(wèi)更加小心地盯緊他,但是這樣做完全于事無補。

  展覽會的最后一天,警衛(wèi)再也不能忍住他的好奇心了。“小偷先生,”他說,“你說我驚慌不安,請告訴我,你到底偷了什么?”。

  這個人笑笑說:“我在偷展覽會上各個軟件高手的程序設計思路。”

  這雖然是個笑話,但是程序設計思路確實是相當?shù)闹匾?,必須在剛開始的時候有個實現(xiàn)程序的思路,才能夠保證程序正常的編寫,一個好的思路更是一個好的程序的開始。

  4.2程序的質(zhì)量

  有了好的思路后,可以規(guī)范程序設計的格式和提高程序的效率,達到事半功倍的效果。

  最好的程序當然是最大限度地節(jié)省時間和空間,也以此來評價一個程序的質(zhì)量。那么有了好的想法后,如何提高程序的質(zhì)量呢?下面舉一個我國古代的例子。

  有一家三兄弟全是郎中。其中有一人是名醫(yī),人們問他:“你們兄弟三人誰的醫(yī)術最高?”

  他回答說:“我常用猛藥給病危者醫(yī)治,偶爾有些病危者被我救活,于是我的醫(yī)術遠近聞名,成了名醫(yī)。我二哥通常在人們剛剛生病的時候馬上就治愈他們,臨近村莊的人都知道他的醫(yī)術。我大哥深知人們生病的原因,所以能夠防止家里人生病,他的醫(yī)術只有我們家里才知道。”

  編寫程序有的時候就如郎中治病,治病就是讓人身體健康,給程序治病就是提高程序質(zhì)量,消除程序的缺陷,不斷補充程序的功能。與上述三個郎中很相似,消除程序缺陷也有三種基本方式,那究竟該使用哪種方法呢?第一種方法就是等程序?qū)懞煤?,發(fā)現(xiàn)缺陷再一個一個修改,有的時候一個程序也會因為無法修改或者無法添加某個功能而不得不重頭開始設計并實現(xiàn);第二種方法則是在實現(xiàn)過程中一發(fā)現(xiàn)問題就立刻修改擴充,采用中庸之道,這種方法應該說是一種比較可行的方法;第三種則是比較理想的一種方法,科技發(fā)展的速度之快,很難在設計之前就想到將來要添加什么功能,所以對于一個程序設計人員來講第二種方法應該說是最可行的,也是最普遍的。

  4.3程序的維護

  《程序設計之道》中有這樣一段話:

  項目經(jīng)理去拜訪一個程序設計大師時看到:程序設計大師編寫軟件時,手指在鍵盤上快速飛舞。程序編譯時沒有一條錯誤信息,程序運行起來就象一陣微風吹過。

  “太精彩了!你的技巧已經(jīng)無可挑剔了。”項目經(jīng)理夸道。

  “技巧?”,大師轉(zhuǎn)過身說,“我所遵循的是道——它超乎所有的技巧。當我開始程序設計時我看到的是整個一大塊的程序,三年后我看到的是子過程。現(xiàn)在我什么也看不到了。我的整個存在是沒有任何形式的虛無。我感覺很悠閑,總之,事實上是我的程序自己在寫,有時我看到一些問題,我看到它們,就停下來靜靜地觀察它們,然后我改變了一行代碼,難題就象一陣輕煙一樣化為烏有。然后我編譯程序。坐在那里享受工作的喜悅。閉了一會眼睛然后退出系統(tǒng)。”

  項目經(jīng)理說:“什么時候我的程序員才能都達到這樣的境界!”

  程序設計大師如是說:

  “既使一個程序只有三行長,也總有一天需要去維護它”。

  《程序設計之道》[James]是一本在全世界流傳的關于程序員的寓言,講的是早期程序員的故事,風趣而富有哲理。當然書中很多觀點現(xiàn)在看來明顯是錯誤的甚至是荒.唐的,但是有的觀點還是有那么一些道理的。一個程序即使功能再小,代碼再短,也必須在不斷的維護和更新中,才能成為一個程序。一個程序設計人員要經(jīng)?;仡欁约阂郧皩戇^的程序,并嘗試重寫,把自己學到的新知識運用進去,而且要不斷地對自己寫的程序提出更高的要求,哪怕程序版本號不斷地提高。

  5 結(jié)論

  總之,程序設計能力的高低主要還是由以下幾點決定:①程序設計的習慣;②數(shù)學應用能力,其中包括邏輯思維,分析問題的能力;③對數(shù)據(jù)結(jié)構(gòu)的認識能力;④經(jīng)驗的多少,包括各種語言的掌握能力。

  其實,最主要的一點還是要認真勤奮,為自己的目標而不怕困難不斷前進,這不只是對程序設計而言,學習其他所有的東西都應如此。

3622345