編程之道

編程之道

作者:鄒彥傧

前些日子在CSDN看到一篇文章,雖然是寫筆者的人生經曆,但裏面提及的技術讓我目瞪口呆(呆了半天說不出話來),(高中生的寫尼姆達病毒源代碼分析,清華研究生寫了Linux服務器集群系統,Lion

是四年制中專生.....),嗨,想想這些,再看看自己,都20來歲了,想想在這方面不可能有多大建樹了,真是有些傷感。靜下心來,參考了一些資料,總結了一些專家點評再加上一點個人的感悟,寫了這篇文章希望能對後來者有些幫助使後來者少走些彎路

曾幾何時,爲了一段程序的通過,翻閱了不知多少本冊子,設置了不知多少個斷點,耗費了不知多少個時辰,流了不知多少的汗水,哦,忘記了吃飯,忘記了睡覺。累乎?

曾幾何時,當調試窗口出現 0 Error 0 Warning

,程序按照意圖通過,一切的一切,全然不在話下,征服的快感頓生,哦,忘記了吃飯,忘記了睡覺。樂乎?

要學習編程是要有很大恒心和毅力的,首先你要明確自己的目標,想好自己編程是爲了幹什麽。如果你學習僅僅只是一時想編出QUAKE和成爲比爾蓋次的沖動,那麽我勸你還是應該不要開始學習,因爲這樣的目標很難支持你日後大量的學習。而且你的年齡不能太大(最好是中學或者大學生)。

無論學習編程還是計算機的其它方面,首先是培養興趣,這點非常重要,如果有興趣,編程會使你有強烈的興奮感,你自然就有了強烈的求知欲。不然它就會是一份枯燥的工作,你也不可能深入學習下去。一開始可以看一些計算機軟硬件雜志比如說<<電腦報,對于裏面提及的計算機操作技巧盡量動手試試,這樣會使你有些成就感,這很好,要的就是這個。其實學習一些「Crack技術」也是培養興趣的一條捷徑,上網看看,或去書店找找《黑客,就這麽幾招》之類的東東看看(想想這些"漫畫書":-的作用這就于限此吧),當你發現開始對計算機産生興趣後,那麽就開始學習專業知識吧,上面提及的東東可以不用再看了,你可能覺得從中學了不少知識,但要清楚的是這些都是一些三流的非專業知識。你還有很長的路要走,得趕快上路,不要在上面浪費時間了!

一開始你可以學習BASIC語言,這個語言並不會耽誤你太多的時間,學習它完全是爲了入門,讓你對電腦編程有一個比較初步的認識。,知道一些最基本每條語句的功能,搞清楚一些基本的數據結構(尤其是數組)對于一些其余用途的函數最好不要做任何學習,因爲這樣只會分散你的注意力,並天馬行空地多寫些小程序自娛自樂,當你能夠可以熟練的運用BASIC編出猴子選大王,以及電腦出題考試之類的程序時,你就可以開始後面的學習了。(之所以選擇BASIC也是爲了培養興趣,選擇C就顯得有點不適合了,就教材而言BASIC教材上的的屏控制比C教材上來得豐富得多,而一般的C教材上基本上沒有這方面的介紹,這對于自己想些小程序來做很有利)。

接下來是可以看C了,學C主要是學過程化的程序設計,學會把自己的程序分成許多的函數(或過程),養成良好的編程習慣。這時可以多看一下高人的程序,不一定要懂意思,主要是學會別人程序的格式(比如變量如何起名,怎麽劃分函數)。除開掌握基本的控制流語句外,應該學習一些很簡單的I/O函數和數學函數。C的學習主要是你舍棄原來BASIC程序那種把所有語句積成一大堆的風格,要學會使用函數,提高代碼重用性。對于指針之類的東西如果實在看不懂可以先不去管,到後面會有辦法。當你能夠比較自如的用C編寫一些小的計算程序時,你就可以開始你的數據結構的學習了(數學的學習主要是在學校,自己要多用心)。數據結構你可以一點一點慢慢看,並不需要專門空出一段時間來專門研究,這樣的目的是讓你能夠很好的掌握它,要學會用數據結構的知識來規範自己的程序設計和提高程序的效率。對數據結構引起足夠的重視。如果說計算機專業的學生與非計算機專業的最根本的差別絕對是數據結構(數學大家都一樣學了,主要看你自己學得好壞)。對數據結構的掌握與運用能力是衡量你編程能力的一個很重要的指標。有的人對于看了鏈表,棧,樹,廣義表這些東西就頭痛。然而這些東西往往能使你的程序的效率比別人高出百倍。

學完C我認爲接著最好學習彙編。從最基本的DOS彙編開始,買本《IBM

PC彙編程序設計》(清華黃皮)一定要一點一點吃透,實在看不懂就跳,反複的嚴讀是一定可以看懂的。彙編是一定要掌握的,因爲它涉及到很多最基本的知識。掌握了彙編和對I/O有了個很徹底的認識後,應該去學編譯原理。這個東西並不要精通,但是一定要知道,在大腦裏要有一個這樣的概念,這對你對程序語言的控制能力都有很大的幫助。這樣最基本的學習就算完成了。一般智力正常的人前一段東西應該都是可以掌握的。接著後面的學習就要看你自身的造化了。這個時候你應該研究一下數據結構,不要分散自己學習的注意力,要知道數據結構是異常重要的如果你覺得自己已經對于樹,連表,堆棧之類的東西和排序,遞歸之類的算法已經十分清楚,就可以開始學習Window程序設計了(Microsoft畢竟是老大)。

對于SDK的學習非常重要,寫Windows程序的人對API不了解是不可想象的,它就相當于計算機專業的學生得學操作系統和組成原理這兩門基礎課一樣(當然SDK可比這兩門課來得有趣和重要得多)搞清windows基本消息機制和系統原理,爲以後的編程打下基礎,以後學RAD也就快得多得多,對于API沒有必要去硬記,只要理解了有個印象就行。千萬不要一開始就學VB,DELPHI,BCB之類的東西(這是一個很多人都容易犯的錯誤,而且很多人犯了這樣的錯誤,自己都沒覺得,如果你有作職業選手的心,一開始學這些東西是絕對的錯,我也犯過這樣的錯,好痛),這些東西

在一開始學會對你造成很壞的影響。有可能會把 你引入另外一個錯誤的學習方向而忽略了真正應該掌握的東西。

對Windows程序設計有一定掌握後,就開始學習C++了,學習前一定要有個正確的認識,那就是C和C++是兩個不同的東西(很多垃圾書會使你覺得C++只是帶類的C)。學習C++是爲了學習面向對象的程序設計,這個時候你對于指針應該也能夠掌握了(有彙編的基礎),主要抓住C++和C相比的一些新特性,對于多態之類的特性要注意理解掌握,如果沒有搞懂就堅決不要往下學習。一些基本的概念掌握以後可以看一些別人設計的程序,學習別人怎麽利用面向對象的方法來設計程序的。這個東西也是人之間拉開檔次的一個環節,可以和數據結構在同等重要的地位。

對于C++有了一定掌握後,你就可以學習VC 或 BCB,DELPHI了(建議是VC)

之類的開發工具了,當然學之前先學它們的語言和類庫,比如MFC或VCL。如果你在第四階段就上VB DELPHI 或BCB並發現有問題而倒回來重新學習,到了這裏你就會深切地感受到你寫程序時遊韌有余,運用自如得多了。

以後的OLE(ActiveX),.NET,數據庫就要看自己的發展方向而定了,在以後的學習上同樣要注意的是原理的學習,就好象學習數據庫或網絡編程一樣,千萬別一開始就用BCB或DELPHI這樣的RAD。

最後引以候老師的一就話:省下一個浪漫的夜晚吧,人生還很長,你可能因此獲得無數個愉快的工作天。

以上只是本人一些愚見(也未提及相關學習書籍),希望大家指出不正確的地方並與我多多交流:

QQ:46898363

 
編程之道-The Tao Of Programming(II)
The Tao Of Programming(II)編程之道Book 5 -- MaintenanceBook 6 -- ManagementBook 7 -- Corporate WisdomBook 8 -- Hardware and SoftwareBook 9 -- Epilogue MainteanceBook FiveThus spake the master program...查看完整版>>編程之道-The Tao Of Programming(II)
 
編程之道-The Tao of Programming(I)
The Tao Of Programming編程之道Book 1 -- The Silent VoidBook 2 -- The Ancient MastersBook 3 -- DesignBook 4 -- CodingThe Silent VoidBook OneThus spake the master programmer:編程大師如是說:"When you ha...查看完整版>>編程之道-The Tao of Programming(I)
 
編程之道[轉]
編程之道作者 傑弗雷.詹姆斯1The Silent VoidBook OneThus spake the master programmer: 編程大師如是說: "When you have learned to snatch the error code from the trap frame, it will be time for you to lea...查看完整版>>編程之道[轉]
 
The Tao Of Programming —— 編程之道
說明:  本文是<<編程之道>> <<編程之禅>><<計算機時代的寓言>>其中的一冊, 由小趙翻譯整理, 另外, 這三冊書的完整電子文檔由小趙根據市面上的<< 編程之道>>一書(...查看完整版>>The Tao Of Programming —— 編程之道
 
《編程之道》
《編程之道》(小趙譯版) 藍森林 2001年1月1日 21:39 The Tao Of Programming —— 編程之道Translated By Geoffrey James[小趙]翻譯整理說明:  本文是<<編程之道>> <<編程之禅>><<...查看完整版>>《編程之道》