對于廣大編程初學(xué)者來說,存在著這樣普遍的認識:學(xué)習(xí)程序設(shè)計選擇編程語言很重要,開口閉口就是VisualBasic、Visual C++、Delphi、Power Builder等一些現(xiàn)在比較流行的開發(fā)工具。
經(jīng)??匆娪谐鯇W(xué)者問:我學(xué)C/C++,究竟是學(xué)VisualC++好,還是學(xué)Borland C++ Builder好呢?或者就是要求在Visual Basic和Delphi之間作出選擇。學(xué)習(xí)程序設(shè)計和學(xué)習(xí)程序設(shè)計語言究竟是怎么一個關(guān)系?初學(xué)者究竟應(yīng)該如何取舍呢?就此我們打個簡單的比方:學(xué)習(xí)程序設(shè)計就好比學(xué)習(xí)射擊,而程序設(shè)計語言就對應(yīng)射擊中的氣槍、手槍、步槍等各種槍械。學(xué)習(xí)射擊必須要選擇一種槍械,不可能沒有槍還能學(xué)好射擊的,也不可能同時學(xué)會使用所有的槍械。但是,如果掌握一種槍械的射擊,再學(xué)別的也就觸類旁通了。因為在熟悉一種槍械的同時,也學(xué)習(xí)了射擊技術(shù)本身。再學(xué)其他的,自然事半功倍。學(xué)習(xí)程序設(shè)計也是一樣,必然要從學(xué)習(xí)一門程序設(shè)計語言開始入手。同時在學(xué)習(xí)的過程中 建議:學(xué)習(xí)程序設(shè)計不必苛求一定要從某一種語言入手,可以在Visual Basic、Delphi、Borland C++ Builder或者DOS下的Pascal、Turbo C(或Borland C)中間選擇自己比較容易接受的一種進行學(xué)習(xí)。從中主要學(xué)習(xí)的是編程本身的思想,學(xué)習(xí)的是用程序設(shè)計的眼光來看待問題?;蛟S,學(xué)習(xí)的效果不能馬上看到,但是可以學(xué)到扎實的基本功,而這對于將來的進一步發(fā)展是有很大好處的。這些基本功包括:
一、強化邏輯分析和建立數(shù)學(xué)模型的能力編程的目的是什么?是要解決現(xiàn)實中的問題。而現(xiàn)實中的問題是用自然語言描述的,目前的計算機對其無法理解。我們要做的就是必須用計算機能理解的方式將問題“告訴”計算機。也就需要我們對現(xiàn)實問題進行邏輯分析,建立合理的數(shù)學(xué)模型,然后以程序和數(shù)據(jù)的形式輸入計算機,R、G、B三色份量來各表示一種顏色,對于顏色的處理被轉(zhuǎn)化為對R、G、B三個整數(shù)的處理。我們只要改變這三個整數(shù),就可以將其改變成另外一種顏色。對于其它的現(xiàn)實問題,我們也要像這樣使其可以被計二、數(shù)據(jù)結(jié)構(gòu)和算法知識程序設(shè)計發(fā)展到現(xiàn)在,已經(jīng)有了一套比較普遍、完整的數(shù)學(xué)模型(我們稱之為數(shù)據(jù)結(jié)構(gòu))和對應(yīng)這些數(shù)學(xué)模型的處理方法(也就是算法)。目前的程序就是以此為基礎(chǔ)的。在程序員中間流傳著一句經(jīng)驗之談:“好的數(shù)據(jù)結(jié)構(gòu)是程序的一半?!逼渲匾钥梢娨话?。作為一個程序員三、豐富的實踐經(jīng)驗程序設(shè)計本身就是一門實踐性很強的學(xué)科。一個只存在于紙上的程序如同沒有翅膀的鳥永遠不能飛翔在現(xiàn)實的天空。任由代碼寫得再巧妙,風(fēng)格再優(yōu)美,也只是一張紙上的一連串字符而已。就好比是一份作文練習(xí),或許寫得很好,但是不交給老師去批閱,和一張白紙又有什么區(qū)別呢 !最后,作為一個程序員還有一點小要求:那就是身體素質(zhì)要好,能熬夜才行。Top of Form 1選其器與善其事——縱談編程工具的選擇選其器相同主題的文章“工欲善其事,必先利其器”——《論語》。很多人在學(xué)習(xí)軟件編程時,都希望選擇一款優(yōu)秀的編程工具。到書店逛逛,可以看到各種琳瑯滿目的編程書籍,可是你還沒有想好選擇學(xué)習(xí)什么編程語言,也就無所適從,不知道該買什么書看。要想學(xué)好編程,必須認真了解各種語言的特點,找準自己的學(xué)習(xí)方向。那么你首先必須明確你想要做什么,你所感興趣的是什么?進一步說就是:你現(xiàn)在想要完成哪一方面的程序設(shè)計,你的程序主要完成的功能是什么?由此在眾多軟件中,選擇出適合自己的開發(fā)工具。一、基礎(chǔ)語言開發(fā)工具諸如Delphi、VC++、VB等語言都是一種面向?qū)ο蟮某绦蛟O(shè)計語言,雖然每種語言在對面向?qū)ο蟮闹С植槐M相同,但它們始終貫穿整個程序設(shè)計的思維方式的主線。因此,要學(xué)好這些語言最開始不應(yīng)該將重點放在某種語言的具體語法格式上,而應(yīng)該注重學(xué)習(xí)面向?qū)ο蟮幕纠碚撟钊菀椎娜腴T語言——Visual Basic在掌握面向?qū)ο缶幊痰幕靖拍畹幕A(chǔ)上,相對來講,VB是比較容易入門的一門語言。在學(xué)習(xí)VB時,應(yīng)該注意抓住對象的精髓,避免凌亂和繁雜,注意掌握對象和控件的屬性和事件以及它們的功能和用法、主要函數(shù)的簡單功能。最有效的方法就是自己組織一個由簡到繁的學(xué)習(xí)步驟,比如:在學(xué)習(xí)VB簡單繪圖功能時,學(xué)著自己繪制正弦曲線;學(xué)習(xí)使用picturecl控件來制作一個液晶效果顯示時間;在學(xué)習(xí)API函數(shù)時,制作自己的任務(wù)欄圖標(biāo)。這種方法能夠很好的幫助你掌握VB中常用對象、事件的使用。最靈活的語言——Delphi對于Delphi來講,如果你曾經(jīng)學(xué)過PASCAL的話,你會發(fā)現(xiàn)很多東西都是“似曾相識”的。確實如此,Delphi本身就是由和PASCAL結(jié)構(gòu)類似的ObjectPascal編寫而成。如果你有一定的PASCAL基礎(chǔ),學(xué)習(xí)起來當(dāng)然更輕松一些。另外,還應(yīng)注意對Delphi中包的理解和應(yīng)用。比如,對運行期包、設(shè)計期包以及自己建立包應(yīng)該注意的事項。在熟練掌握Object Pascal語言的基礎(chǔ)上,可以把學(xué)習(xí)Delphi時的重點放到如何使用Delphi編寫Windows應(yīng)用程序,Delphi數(shù)據(jù)庫編程和創(chuàng)建控件以及程序開發(fā)上面。最強大的語言——Visual C++VC++中由于有較完整的微軟基本類庫,使開發(fā)Windows應(yīng)用程序變得簡單而高效。它提供的復(fù)雜的資源編輯器,可以很方便地編輯對話框、菜單、工具欄以及其他組成元素,因此它的功能強大,使用方便,但是和VB、Delphi相比,入門較難、不容易掌握。學(xué)習(xí)VC++,應(yīng)該首先把重點方在基本數(shù)據(jù)類型、輸入/輸出、循環(huán)和數(shù)組、模板以及如何創(chuàng)建C++應(yīng)用程序上面。在此之后,才應(yīng)該進一步學(xué)習(xí)VC++中資源編輯器的使用、ActiveX控件的使用以及編輯器優(yōu)化等內(nèi)容。目前很多關(guān)于VC++的書籍中大部份都是對使用VC++各個版本開發(fā)應(yīng)用程序的介紹,而忽略了C++的基本知識,實際上,對于初學(xué)者來講,直接從具體應(yīng)用程序設(shè)計入手而忽略基本知識,反而會在很大程度上加大學(xué)習(xí)難度,很容易喪失學(xué)習(xí)的信心 !---->當(dāng)然在上述這些語言中,都提供有自己的數(shù)據(jù)庫編程和Internet編□'7b。在對程序本身熟練掌握的基礎(chǔ)上,你還可根據(jù)自己的需要選擇學(xué)習(xí)。當(dāng)你已具有一定程序設(shè)計能力時,不妨自己設(shè)計一個現(xiàn)實、有興趣的課題,自行開發(fā)、自行設(shè)計。這樣可以幫你很好地熟練二、數(shù)據(jù)庫編程如果你主要是想完成數(shù)據(jù)庫方面的設(shè)計,那么應(yīng)該選擇專門的數(shù)據(jù)庫開發(fā)工具,常見的有:SQLServer、PowerBulider等。假如只是需要完成相對簡單的數(shù)據(jù)庫功能,那就仔細看看Access吧。花不多的時間,也能讓你有很大的收獲,另外,還有一些專門用于大型數(shù)據(jù)庫開發(fā)的工具如:DB2、Sysbase以及Oracle,這一類的軟件一般都需要有較扎實的數(shù)據(jù)庫基礎(chǔ)知識和一定的軟件開發(fā)能力。如果你是從頭開始的話,建議不要一開始就去學(xué)習(xí)這一類軟件。PB和SQLServer主要是用于完成數(shù)據(jù)處理和數(shù)據(jù)庫的訪問。由于SQLServer和操作系統(tǒng)兼容性較好以及在網(wǎng)絡(luò)中的廣泛應(yīng)用,目前很多業(yè)余愛好者都選擇學(xué)習(xí)它,在學(xué)習(xí)SQLServer時,應(yīng)把重點放在SQL語言的組成、SQL的事務(wù)管理以及SQL的查詢和優(yōu)化上面。而PB則一直都是很多從事數(shù)人來講,在學(xué)習(xí)數(shù)據(jù)庫基本使用技巧的同時,還應(yīng)注意到在PB中,對于需要訪問Windows特殊功能的應(yīng)用程序需要調(diào)用API函數(shù),比如:控制鼠標(biāo)、創(chuàng)建目錄以及閃□'7b窗口等。在學(xué)習(xí)數(shù)據(jù)庫編程時,可以嘗試著完成一個完整的軟件開發(fā)周期。從需求分析隍7d始,親身經(jīng)歷設(shè)計數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫前端、創(chuàng)建表格、完成常見查詢以及輸出報表等全部過程。
三、網(wǎng)絡(luò)編程目前較為流行的網(wǎng)絡(luò)編程工具可謂“風(fēng)格迥異,百花齊放”。每一種工具都有其獨特的特點,在互聯(lián)網(wǎng)實現(xiàn)上都有各自的優(yōu)勢。在學(xué)習(xí)Java時,應(yīng)該明確其中對象、繼承等面向?qū)ο蟮幕纠碚摚瑥母旧险莆認ava的運行機制。在學(xué)習(xí)中應(yīng)把重點放在其語言基礎(chǔ)、Java與ActiveX以及JavaBeans等組件之間的編程技術(shù)以及應(yīng)用上來。你可以自己編一些較為經(jīng)典的小程序來加深基本技能的掌握:用Java的圖形處理能力編寫紙牌游戲,用AWT編寫掃雷或者俄羅斯方塊、用Java的網(wǎng)絡(luò)功能編寫網(wǎng)絡(luò)聊天室等等。相對來講,ASP編輯方式簡單、容易上手、功能強大,早已被廣泛采用。在學(xué)習(xí)ASP時,應(yīng)該首先對ASP相關(guān)的網(wǎng)絡(luò)知識、Web Server設(shè)置、HTML語言等方面有一定了解,在此基礎(chǔ)上,注重ASP的主要編程語言VBScript、ASP的常用對象和組件的學(xué)習(xí)。如果想對ASP有較深入的了解的話,還必須對其常用的數(shù)據(jù)庫SQLServer、Acess等具有基本的使用技能。你可以自己嘗試編一個簡單的網(wǎng)上投票、網(wǎng)上超市等程序來加深對上述知識的掌握。另外,值得一提的還有網(wǎng)絡(luò)編程語言的“新秀”——PHP。它□'5c脫了ASP只能使用NT或者Windows 2000為服務(wù)器操作系統(tǒng)的限制,對于數(shù)據(jù)庫的訪問較ASP更快、更直接。但是目前對于初學(xué)者來講,其語言比較難理解,安裝相對復(fù)雜、可供參考和學(xué)習(xí)的資料遠不及ASP。同時在Windows中使用PHP,并不能夠很好地體現(xiàn)其優(yōu)越性。因此,我們建議對于沒有Linux/Uninx基礎(chǔ)的初學(xué)者,最好不要從PHP學(xué)起。網(wǎng)絡(luò)編程還有一個很大的特點:處處留心皆學(xué)問。時常留意互聯(lián)網(wǎng)上各個網(wǎng)站的設(shè)計,留心他人的設(shè)計思想和創(chuàng)意,會使你的網(wǎng)絡(luò)編程技巧進步很快??偟膩碇v,網(wǎng)絡(luò)編答7b本身難度并不大,但是由于其在具體項目設(shè)計上涉及范圍較廣,比如涉及到與各種各樣的數(shù)據(jù)庫直接的接口、 學(xué)習(xí)語言的過程,是自己創(chuàng)造、自己編程的過程,也是逐漸掌握、逐漸應(yīng)用的過程。在學(xué)習(xí)過程中逐漸培養(yǎng)起良好的編程思維、經(jīng)驗,逐步提高程序設(shè)計能力、找到更好的設(shè)計方案才是編程開發(fā)的真正精髓和樂趣所在!懂?dāng)?shù)據(jù)結(jié)構(gòu)怕不行,我說的高手,不是在會不會的界限上,而是在能不能的界限上