作者:最近看到很多朋友問到如何學(xué)習(xí)編程這個問題,我想這個問題應(yīng)該是所有初學(xué)者都非常關(guān)注的問題了,在論壇上回答了很多也講了很多,但是總是無法讓所有朋友得到一個解答,所以我想寫一下自己的經(jīng)驗,希望對大家有所幫助,不過在此先聲明,我并非什么高手,我也只是剛剛?cè)腴T而已,也只是希望通過寫一點個人的體會幫助一些和我遇到相同問題的朋友,高手就免看了,以免班門弄斧。
在學(xué)習(xí)程序之前,我想大家首先應(yīng)該對程序員這個行業(yè)熟悉一下,更加要對編程的語言以及所涉及到的工具有所了解。因為如何了解這些是很難去給自己一個明確的目標的。所以首先我想在這里先為大家介紹一下這個行業(yè)以及一些相關(guān)的內(nèi)容。
程序員,相信在很多人眼中是一個非常神秘,非常特別又或者說非常有趣的職業(yè)。因為在這個行業(yè)里面實在出現(xiàn)了太多的英雄,每一個英雄的事跡都足以讓我們熱血沸騰。但是,又有誰知道在這些英雄的背后,藏著多少辛酸,藏著多少的努力。程序員這個行業(yè)并非如大家所想象的那樣美好。程序員是一個沒有白天黑夜概念的行業(yè),程序員是一個讓人筋疲力盡的行業(yè)。你們看到的是一些英雄的光輝歷史,但是卻忽略了大多數(shù)程序員的艱辛。所以在這里我奉勸各位,如果你是為了這個行業(yè)充滿傳奇色彩而想加入,如果你是為了這個行業(yè)薪水高而想加入,那么請你現(xiàn)在退出吧,因為它不適合你。這個行業(yè)需要的是擁有努力、認真、堅持等品質(zhì)的人。
講到如何學(xué)習(xí)編程,那么必不可少的就要講到編程語言了,相信大家都知道編程語言有很多種,包括C、C++、BASIC、PASIC、ASP、PHP等等,當中還分為很多不同的領(lǐng)域,所以在學(xué)習(xí)編程之前一定要為自己定下一個目標,一個自己即將要進入的領(lǐng)域。有些人想進行底層開發(fā),有些人想做網(wǎng)站開發(fā),有些人想做商業(yè)軟件開發(fā)等等,由于計算機的普及,軟件行業(yè)所涉及的領(lǐng)域也就越來越多,一個人是不可能涉及所有的領(lǐng)域的,所以必須在學(xué)習(xí)之前給自己一個定位,這個是很重要的,如果沒有這個定位的話在未來學(xué)習(xí)編程的日子里將會很迷茫。
目標的定位當然不能少了工具的因素,因為不同的領(lǐng)域使用的開發(fā)工具也不同,在這里想重新再次鄭重的向所有朋友聲明一次,不要把開發(fā)工具和開發(fā)語言混為一談,語言是編程的基礎(chǔ),而工具是用來輔助開發(fā)的,例如VC、VB、DELPHI、BCB等等。每種工具都有各自的優(yōu)勢和缺點,至于每種工具的特點我就不再講了,如果大家是有心學(xué)編程的話,我相信你一定會去看看關(guān)于這些工具的具體內(nèi)容的,呵呵,讓我偷個懶。還有在這里重要提醒一下大家,不要被現(xiàn)在的流行工具所迷惑,學(xué)好根本才是最重要。
前面大概的準備工作已經(jīng)做完了,對這個行業(yè)了解了,給自己定了一個目標后,接下來當然是全力向這個目標進發(fā)了。那該怎么做呢?看了很多朋友的帖子,都講到C語言是程序員必學(xué)的語言,如果程序員不學(xué)C就不算是真正的程序員,我個人認為這種說法有點偏激,當然,我承認學(xué)C是會對你有很大的幫助,但是并非一定要學(xué)C,大家之所以這樣說,可能是因為C語言的影響太大了。但是你總不能要那些去學(xué)網(wǎng)站開發(fā)的人一定要去學(xué)C吧,呵呵。其實我個人認為,一開始學(xué)什么都無所謂,但是無論學(xué)什么,一定要努力和堅持,做不到這兩點,你就注定會是個失敗者。在這里我想講一下學(xué)編程最關(guān)鍵的問題,就是思想。也許這是個很抽象的概念,但是沒有辦法,編程本身就是個很抽象的東西,呵呵。等你真正領(lǐng)悟到這一點的時候,恭喜你,你已經(jīng)站在編程的門口了,呵呵,只是門口哦。那么編程的思想又該如何去領(lǐng)悟呢?要領(lǐng)悟其思想,那首先學(xué)習(xí)語言是必然的,語言是思想的一種體現(xiàn)形式,就像一個人的思想需要語言來表達一樣,所以如果連一門語言都無法掌握的人是無法領(lǐng)悟其思想的。但是對于一個人,如果不經(jīng)常說話,不經(jīng)常使用語言,他又如何去使用語言來表達自己的思想呢?編程也一樣,要領(lǐng)悟其精髓,必須先不斷地看,不斷地使用,才能在這種過程中慢慢有所體驗,當然有的人可能快些,有的人可能慢些,但是不管快慢,能夠達到就是進步。
我記得在我仍然迷茫的時候,不知道自己該如何去學(xué),每天就是機械式的看書寫代碼,根本都不知道自己是不是真的懂,但是就是這樣不斷的看不斷的照著書寫,終于有一天,好象突然開竅一樣,一下子就把所有不明白的東西全都弄明白了,這個有點像佛家所說的頓悟,呵呵。我最初以C語言開始學(xué)習(xí)的,在我開始學(xué)C語言到頓悟這一刻,我可以告訴大家,我看C語言的書我一共看了5本不同的版本(不過都是像走馬觀花一樣的看,千萬不要學(xué)我),直到第5本看到指針那里,我才真正有種明白的感覺,也許我太笨了,相信大家看一本就夠了,HOHO。自從那一次后,我接著看C++,學(xué)習(xí)pascal、basic、匯編這些東西,自己感覺都非常容易看懂,可能這就是所謂的一理通百理通的道理吧。呵呵,不過在這里要講一下,上面所說的幾種語言雖然看書都看過了,也看明白了,但是由于很少使用,現(xiàn)在大部分都還給書本了,呵呵。
看到這里,包括我在內(nèi),我都感覺到自己很了不起,很厲害了。可惜,只有我自己知道,雖然看了那么多,學(xué)得也多,寫得也不少,可是我卻不知道如何運用。來來去去就是寫一些書本上的題目,自己卻感覺像windows那些程序卻不知道如何去寫,不知道該怎么辦,相信很多人都有和我一樣的體會吧,把C語言學(xué)了,題目也做了,而且都沒有問題,可是卻不知道如何去做開發(fā),感覺自己學(xué)的東西一點用處都沒有。這又是為什么呢?
在這之前,我一直為這個問題煩惱,后來我終于找到了答案,那就是我所學(xué)的,所寫的都是DOS應(yīng)用程序,而我們現(xiàn)在所使用的是windows操作系統(tǒng),當然也有使用linux系統(tǒng)的。后來看了一篇別人寫的文章后,我才知道我所學(xué)的和實際運用相差太遠了,F(xiàn)在大部分學(xué)習(xí)編程語言的書籍上的例題都是基于DOS系統(tǒng)開發(fā)的,所以我們所寫的程序和windows上所運行的不一樣,這就是造成我們迷茫的主要原因。那該怎么辦呢?那還用問嗎,當然就是去學(xué)習(xí)windows開發(fā)啦。在第一次接觸windows開發(fā)的時候,我真的是大吃一驚,這完全和我以前所學(xué)的很不一樣,但是又息息相關(guān),如果沒有以前所學(xué)的,我根本就看不懂windows開發(fā)的內(nèi)容。
在這里給大家簡單介紹一下,windows開發(fā)和DOS開發(fā)的區(qū)別吧。大家都知道,DOS是一個單任務(wù)執(zhí)行系統(tǒng),也就是說在DOS下只能在一個程序運行完成或者中斷后才能運行其他的程序,而windows是個多任務(wù)系統(tǒng),當然在本質(zhì)上windows也只能一個時間內(nèi)執(zhí)行一個程序,但是由于其利用CPU的運算能力,讓這些微妙的時間讓人無法感覺到,再就是windows是一個圖形界面系統(tǒng),擁有著良好的用戶界面,不像DOS是個指令界面。所有這一切的區(qū)別導(dǎo)致DOS和windows開發(fā)上也存在很大的區(qū)別。所以現(xiàn)在的程序員首要的任務(wù)除了學(xué)習(xí)語言以外,就是要去學(xué)習(xí)windows開發(fā)機制。如果連這個都不懂,那是肯定開發(fā)不出一個好的windows軟件的。在這里向所有朋友重點推薦美國人Charles Perzold所寫的《windows程序設(shè)計》第五版,這本書可以說是經(jīng)典中的經(jīng)典,學(xué)習(xí)windows開發(fā)必看的書,適合有C語言基礎(chǔ)的朋友看,它有多經(jīng)典我就不想細講了,總之就是絕對不會讓你失望,呵呵。這本書市場價是160元整,分上下兩冊,如果有的朋友覺得太貴的話,我這里有他的電子版,需要的就找我要吧,隨時歡迎大家找我要這本書,呵呵。
說實話寫到這里,我自己都不知道自己寫了些什么,好象很亂,呵呵,希望大家能夠看得懂吧?赐晡医榻B的這本書后,而且看懂的話,那么接下來自己該如何走,我相信我就不用再多說了,到那個時候你一定知道自己該如何去學(xué)習(xí)編程了。上面講了下我個人是如何學(xué)習(xí)的,當然還有很多細節(jié)地方?jīng)]有涉及到,不過隨時歡迎朋友們跟我一起交流。而且我現(xiàn)在才發(fā)現(xiàn)上面所寫的是從C語言開始學(xué)習(xí)的,呵呵,其實我并非要大家向我一樣學(xué)習(xí),我只是把自己學(xué)習(xí)的經(jīng)過大概講了下,當然還有以后該怎么辦沒有寫,其實我也在摸索中,嘿嘿,我寫了那么多廢話,無非是想要大家明白幾個道理:
第一、首先要給自己定一個明確的目標。
第二、分清楚語言和工具的區(qū)別。
第三、把思想放在首位,語言在精不在多,學(xué)好了一門語言再去學(xué)其他的,就易如反掌了。
第四、工具是經(jīng)常被淘汰的,不要被工具所迷惑,堅定自己的信念。
第五、無論選擇做什么系統(tǒng)開發(fā),首先要去了解這個系統(tǒng),只有了解了這個系統(tǒng)才能在上面為所欲為。
大概也就差不多了,不全或者寫得不好的地方請指正,呵呵,就這么多了吧,歡迎大家跟我一起學(xué)習(xí),一起進步,一起交流。當然最后仍然是那句:
努力+堅持=成功
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |