學(xué)習(xí)編程的有效方法
學(xué)習(xí)編程的有效方法
不論你是想自己設(shè)計(jì)游戲,還是開發(fā)iPhone或安卓手機(jī)上的應(yīng)用,還是僅僅為了娛樂,學(xué)習(xí)編程語言都是一條必經(jīng)之路,那么,想要有效學(xué)習(xí)編程,應(yīng)該怎么做下面是由學(xué)習(xí)啦小編整理的學(xué)習(xí)編程的有效方法,希望對(duì)您有幫助。
學(xué)習(xí)編程的有效方法一
1、確定目標(biāo)
學(xué)習(xí)編程語言既充滿樂趣,又充滿挑戰(zhàn)。有些花費(fèi)多年時(shí)間學(xué)習(xí)一門編程語言的大學(xué)生到最后也無法確定自己的方向到底是什么,所以,在你開始前,最好先想清楚,你是想成為一名程序員,還是游戲開發(fā)者,還是機(jī)器人專家?
2、選擇一種編程語言
初學(xué)者一定要從主流語言開始學(xué)習(xí),比如中級(jí)語言C和C++。這兩種語言是任何一名合格、專業(yè)的程序員都必須掌握的,因?yàn)樗鼈兎Q得上是軟件開發(fā)界的主流。但是最好不要從高級(jí)語言開始學(xué),如Java,因?yàn)檫@些語言對(duì)于初學(xué)者來說難度未免太高(高級(jí)語言可以以后再學(xué),但是C語言和C++應(yīng)該作為你的基礎(chǔ))。然而對(duì)于完完全全的門外漢的來說,可能C和C++都有點(diǎn)困難,那么你也可以從Python開始學(xué),這種語言被大家廣泛認(rèn)為是適合初學(xué)者的。
此外,每一種語言都要學(xué)習(xí)至少一年。要熟悉編程范式,尤其是面向過程及面向?qū)ο筮@兩種;要廣泛閱讀,多用編譯器及IDE(網(wǎng)上有許多免費(fèi)的)練習(xí)編程。
掌握一種語言后,先不要急著運(yùn)用,而要去多買些數(shù)據(jù)結(jié)構(gòu)方面的書來看,學(xué)習(xí)搜索、分類、二叉樹及鏈表創(chuàng)建等概念。因?yàn)闊o論你是要制作游戲還是開發(fā)軟件,數(shù)據(jù)結(jié)構(gòu)都是必須要考慮的。
隨后,你就可以開始學(xué)習(xí)更加高難度的語言,如Java。對(duì)于進(jìn)階學(xué)習(xí)者來說,可能還需要學(xué)習(xí)分而治之(Devide-and-conquer)、貪婪算法(Greedy Method)及回溯(Backtracking)等計(jì)算機(jī)算法,這又要花上至少一年的時(shí)間。
3、熱愛數(shù)學(xué)
許多人都由于這樣那樣的原因而對(duì)數(shù)學(xué)頗不感冒,而作為一名優(yōu)秀的程序員,卻要整天與一籮筐的數(shù)學(xué)問題打交道。正如你所見,學(xué)編程真的是說起來容易做起來難,而它的難并不在于你對(duì)一種語言的了解程度,而在于這種語言牽扯到的數(shù)學(xué)問題。編程中的大多數(shù)問題都能在數(shù)學(xué)模型(如斐波那契數(shù)列、弗洛伊德算法、傅立葉級(jí)數(shù)等等)中找到端倪,更不用說數(shù)學(xué)公式在解決編程問題中的廣泛應(yīng)用了。所以,現(xiàn)在開始,去學(xué)習(xí)各種公式及其特性吧,還要仔細(xì)鉆研算術(shù)及微積分,因?yàn)椴欢當(dāng)?shù)學(xué),就好比巧婦難為無米之炊。
4、要保持內(nèi)在的動(dòng)力
記住,羅馬建成非一日之功,所以不要在短時(shí)間里給自己填壓太多知識(shí)。學(xué)習(xí)編程語言并不容易,因?yàn)檫@是一門需要時(shí)常調(diào)用邏輯思維的知識(shí)。你要做的,就是理解程序背后的邏輯,然后不斷練習(xí),直到熟能生巧為止。如果你只是死記硬背一些程序,那么你就錯(cuò)過了學(xué)習(xí)過程中的樂趣,而且一些概念你也未必真的理解。所以,學(xué)習(xí)編程需要不斷地挑戰(zhàn)自己,但也不要操之過急。
5、要有耐心
有時(shí),即使是卓有成就的程序員也會(huì)被簡(jiǎn)單的小問題難住,所以,遇到問題時(shí),一定要讓自己放松下來。找張草稿紙,想想有什么現(xiàn)成的公式可用,或者自己想一個(gè)公式出來。你看,這就是你為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和數(shù)學(xué)。在成為熟練的程序員以前,一個(gè)人往往需要花費(fèi)大把的時(shí)間來構(gòu)思用于解決特定問題的程序。這一過程中,你可以去Project Euler或者Codecademy這樣的網(wǎng)站上看看,上面有簡(jiǎn)單的編程作業(yè)及教程,可以用以練習(xí)并提高技能。
學(xué)習(xí)編程的有效方法二
1、絕不輕言放棄
如果你在編程過程中經(jīng)常粗心犯錯(cuò),那么整個(gè)過程就會(huì)變成一場(chǎng)曠日持久的折磨,然而一旦問題解決,所有的沮喪都會(huì)煙消云散。在學(xué)習(xí)各種算法(傅立葉級(jí)數(shù)、向量、邊界問題、線性代數(shù)、矩陣)的同時(shí),也要注意休息。在解決特別復(fù)雜的問題時(shí),要按時(shí)放松大腦,讓困擾在心頭的難題暫時(shí)轉(zhuǎn)移到潛意識(shí)中。另外要有合理的工作計(jì)劃,當(dāng)你編程編到倦怠的時(shí)候,就可以小憩一會(huì)兒,或者出去散一會(huì)兒步,但是永遠(yuǎn)不要說放棄。
2、成為高手
學(xué)到這個(gè)階段,你就可以試著去教教別人,并且向別人展示你制作的應(yīng)用。如果你認(rèn)識(shí)比你更厲害的人,就要與他分享你的想法和問題,這樣會(huì)使你積累更多的經(jīng)驗(yàn);你也可以模仿諸如文本編輯器、windows軟件等專業(yè)軟件來進(jìn)行自主開發(fā);積極參加相關(guān)競(jìng)賽來挑戰(zhàn)自我。
懂得一種編程語言是很贊的,但更贊的就是懂得多門語言,這不僅僅意味著你的“工具箱”里有了更多的“工具”,更是意味著你掌握了更多解決問題的方法。因?yàn)椴徽撃銘T用哪種語言,懂得其他語言總是能使你更好地了解常見的抽象概念及問題。所以,有條件的情況下,盡量多學(xué)幾種語言,最好是學(xué)習(xí)兩三種具有不同設(shè)計(jì)原理的語言,如Lisp、Java及Perl。但是每一種都要用心學(xué)。
3、廣泛閱讀
許多高水平的程序員閱讀量也十分驚人,他們也往往會(huì)在輸入第一行代碼前深思熟慮一番。所以,你一定要多閱讀、多思考。每周都要檢查一次自己的作品(平時(shí)要養(yǎng)成保存代碼的習(xí)慣,這樣日后才能復(fù)查、反思);還要多買編程方面的好書。購買的書必須是最值得一看的,而并非是最暢銷的。永遠(yuǎn)不要盲目地追隨某一種資源,因?yàn)槟菢又粫?huì)讓你的眼界變得狹隘。一旦你掌握一種知識(shí),就要仔細(xì)鉆研其用途及改進(jìn)的可能。
4、去培訓(xùn)中心參加培訓(xùn)
如果你覺得自學(xué)效果不理想,就去報(bào)名參加一些初級(jí)的編程班吧。但是報(bào)名前,一定要先向之前在里面學(xué)習(xí)過的人了解一番。
5、勤加練習(xí)
學(xué)習(xí)編程的有效方法三
一開始接觸C語言,老是對(duì)著一個(gè)黑洞洞的框,容易使人喪失興趣。這些黑框和我們常見的QQ、Office等桌面程序相差實(shí)在太遠(yuǎn)了。而且往往在初學(xué)的時(shí)候沒有人告訴我們控制臺(tái)應(yīng)用和圖形界面的應(yīng)用之間的關(guān)系。如果對(duì)Web感興趣可以先學(xué)點(diǎn)基礎(chǔ)的HTML和CSS雖然這在嚴(yán)格意義上不算是編程語言,但是卻可以在一開始讓你做出一個(gè)可以看的到的界面,而且掌握基礎(chǔ)還是很簡(jiǎn)單的,然后在學(xué)點(diǎn)后臺(tái)開發(fā)語言,我推薦PHP或者python。
記住,新手最重要的是保持熱情!
學(xué)習(xí)一段時(shí)間之后可以自己嘗試做一個(gè)簡(jiǎn)單的留言板,別小看這個(gè)老土的小東西,這個(gè)可是能讓你立刻充滿成就感。而如果你一開始就上手C這樣的成就感就需要更久才能獲得,而往往很多新手都躺在了前進(jìn)的路上。然后,可以在留言板的基礎(chǔ)上做出一個(gè)簡(jiǎn)單的博客系統(tǒng)。
記住一定要在每一階段都做出一個(gè)看上去"正常"的東西,而不是一堆代碼一執(zhí)行出來一行行字符那種。這也是我推薦學(xué)習(xí)HTML和CSS的原因,因?yàn)檫@可以讓你簡(jiǎn)單地搭建一個(gè)擁有用戶界面的程序。
當(dāng)你把這些都做完了,如果感到對(duì)編程還是有很大興趣,而且感到自己在漸漸地從心底里喜歡上了編程,那么你再面對(duì)那些黑框的時(shí)候,就會(huì)感覺好很多,而且感到自己真的很酷,你會(huì)喜歡把自己想成電影里的黑客。
至于說算法數(shù)據(jù)結(jié)構(gòu),等有了興趣,需要這些知識(shí)了,再去慢慢學(xué)習(xí),都不會(huì)是障礙,而且會(huì)變得有趣許多。但是一開始沒有任何程序基礎(chǔ),就給你學(xué)這些,只能使你迷糊,根本不了解這又什么用。這也是我討厭現(xiàn)在的大學(xué)教育的一個(gè)方面,完全違背認(rèn)知規(guī)律。先給你講一大堆理論,不告訴你為什么,有什么用,讓人感到厭惡,但當(dāng)后來我們真正需要了,卻也記不得了,只能從頭再學(xué)。
最后,我還是要補(bǔ)充一下,對(duì)于新接觸編程的童鞋,或許保持興趣是最重要的,但是在你對(duì)編程有一定了解之后,你會(huì)發(fā)現(xiàn)自己還有很多困惑,這時(shí)候就需要惡補(bǔ)基礎(chǔ)知識(shí)了,對(duì)底層了解的越清楚越有助于你消除困惑和對(duì)編程更深層的理解。
1、先選一種自己喜歡的語言(C,C++,Java,Python、php等等)
2、買一本關(guān)于這種語言入門的書,一開始不要看太難的,循序漸進(jìn),先看一遍。
3、多練基礎(chǔ)代碼,將各種語句練得非常熟練,可以選一些計(jì)算機(jī)語言初等練習(xí)題做做。
4、再重頭到尾好好看一遍,哪里不懂,可以與他人交流。
5、多看看別人用這種語言寫的程序,借鑒編程方法,對(duì)自己錯(cuò)誤的思想進(jìn)行校正。
6、多多練習(xí),每天都打一些代碼,畢竟熟能生巧!