2005年3月26日 晴 于 北京交通大學(xué)16號宿舍樓

編程是很累的,這是我在日記中第二次提到,但如果你選擇了,那請你一定要堅持。這些話,既寫給那些我深深佩服的程序高手,也寫給現(xiàn)在對編程僅僅是興趣,還未成為職業(yè)的同學(xué)們。

如果你學(xué)習(xí)Java的目的只是想把它作為一種炫耀的資本,或者作為以后找工作時簡歷上一個華麗的字眼,那我勸你還是放棄Java吧,你承受不了學(xué)習(xí)過程中的種種挫折和苦惱。你可以有更好的選擇,你可以選擇VB,或者再簡單一些,你可以選擇JavaScript,或者我建議你不如學(xué)習(xí)一下Flash、Html。我在這里并沒有貶低這些語言的意思,我只是覺得,這些是相當(dāng)實用的,也許更加適合你。買本書,比如《21天學(xué)會XX》或者《XX快速教程》,你會很快地掌握這門技巧,再花點時間,你會成為朋友中的高手。

但是對于Java來說,你沒有捷徑可以走,還是一步步地來吧。從哪里入手?先從思想上入手。解決了腦子里面的錯誤認(rèn)識后,其他一切都好辦了,剩下的,不就是買上一兩本好書,堅持下來,花時間研究研究嗎?具體怎么做,書要看,這個大家都知道,但是很多時候,他們可能忘記了另外一點,要親手實踐。

我原來寫過文章,說我很不喜歡在計算機領(lǐng)域里面實行其他領(lǐng)域中慣用的考試制度。原因很簡單,我有很多本校和外校的同學(xué)或者學(xué)長,他們的C,Cpp考試分?jǐn)?shù)很高,高到令人吃驚的地步,但是卻沒有寫過超過100行的代碼,編個簡單的循環(huán)還要查書,程序調(diào)試錯漏百出。這樣的學(xué)習(xí)還能稱之為學(xué)習(xí)嗎?的確,動手能力的前提是理論知識,但是不能光有理論知識卻忽視了動手能力。也許有人會在這里鄙視我了,認(rèn)為我吃不到葡萄說葡萄酸,批判現(xiàn)在的考試制度什么的。我可以把我的專業(yè)課成績告訴大家,現(xiàn)在大二,編程學(xué)完3門,pascal,C,Cpp,分?jǐn)?shù)分別為99,98,90。相信這些都是不低的分?jǐn)?shù)了吧?但是我可以說,我沒有一門科目在考試前突擊,當(dāng)他們挑燈夜背的時候,我已經(jīng)在平時的積累中獲得了足夠用于考試的信息,而且考完試后不會忘記。

只有親手實踐才能做到這一點。我也許要在這里,強調(diào)一下實踐的重要性。已經(jīng)學(xué)習(xí)了一年的Java,我想我是有那么一丁點資格發(fā)言的。我很深刻地記得高中老師說的一句話,“一看就懂,一學(xué)就會,一做就錯”。她是教語文的,但是這句話完全可以引用到現(xiàn)在我學(xué)的這個計算機領(lǐng)域里面。那怎么才能算懂了?我給自己下的定義是:基本語法可以脫離書本,隨手拈來;各種結(jié)構(gòu)、思想能夠正確理解,在別人問到的時候能夠清晰解釋;編程的時候遇到問題可以知道怎樣去找到合適的答案。我不知道下這樣的定義是否正確,但我一直是這樣做。書本說到的,即使很全,也只能涵蓋某一個方面。在編程的時候,會出現(xiàn)這樣或者那樣的種種問題,沒有親身的實踐,是永遠(yuǎn)無法得到答案的。也許有時為了查一個簡單的錯誤而花費了大量的時間,但是當(dāng)你知道如何解決這個問題之后,你也就永遠(yuǎn)地把它記住了。各種語法、各種結(jié)構(gòu),靠背是沒有用的,背的結(jié)果只能是忘記,否則為什么那么多人考試之后還是不會寫程序?要記住,只能靠實踐,多敲鍵盤,寫多了,感覺就自然來了。很多人喜歡聊QQ,開始打字的時候速度很慢吧?你們是怎么提高的,靠背漢語拼音嗎?打字多了,自然也就熟練了。熟能生巧,道理都一樣。

不過我相信,如果你是真正地想學(xué)好一門語言,那么你是會堅持下去的。也許就像你當(dāng)年對某事的執(zhí)著追求一樣,或者像你高三時候奮力拼搏高考那樣,或者再差一點,像我一樣堅持一年,然后在這一年中努力實踐,我相信你是會有所收獲的。

。。。(待續(xù))