1. 程式人生 > >程式設計師忠告之--我該學什麼開發語言?

程式設計師忠告之--我該學什麼開發語言?

 程式設計師忠告之一--我該學什麼開發語言?
接觸程式設計有多年了,也算積累了一些經驗,希望能給剛入門的朋友一些幫助,文章僅代表本人觀點,如有錯誤之處,還請多多包涵。 
1.我該學什麼語言? 
PB、VB、VC、Delphi、Java……面對各種各樣的程式語言,你是不是被弄昏了頭腦呢?該學什麼?“學VC吧!”許多高手說。並且還舉了很有說服力的例子:“學VB只要兩個月,學VC要一年,如果先學VB再學VC,所用時間仍然是一年,但學了VC再學VB,所用時間將不到兩個月。”這句話沒錯,的確是這樣的。但是剛入門的初學者都能學VC?把每個人都看得這麼高?一些初學者把VC當成自己的入門語言,結果能學到最後的只有少部分人!我們不能奢望所有初學者都是在十分熟悉Windows的情況下才開始接觸程式設計的,實際上,很多人就是在學習程式設計的過程中逐漸深入瞭解系統的,要是所有人都選擇VC作為“入門級語言”…… 
初學者應該根據自身情況來選擇語言,如果你剛開始接觸系統,應該去學VB,因為VB很好學,基礎最重要;當然,還有Delphi,它介於VB與VC之間。除非你比較熟悉Windows,否則別急著學VC,你會因此神經衰弱的。 

2.切忌同時學習多種語言 
有沒有試過同時學英語俄語德語波蘭語法語日語?最後八成會變成鴨子。學程式設計也一樣,如果你才高八斗機敏過人玉樹臨風,那麼隨便你同時學VC、VB、Delphi等等等等,沒人會攔你,但如果是初學者呢?去做鴨子吧。同時學這麼多種語言還不如踏踏實實學好學精一門適合自己的語言!初學者往往什麼語言都要去了解一下,更有甚者連一些概念都不熟悉就什麼都學,面對他們,我都要自愧不如了,但我還是要勸他們一句:一樣一樣的學,沒有人能一步登天!別以為同時學多種語言就很“光彩”,當心最後仍是七竅通了六竅。 
無論學哪門語言,都要把它學好再想其它,別“花心”,如果你是學VB的,至少要熟悉VB程式設計並且能熟練使用API的時候,你才應該去學其它語言,學VC更要注意,否則最後只能“無所不學,而一無所知”,只學一種語言時遇到困難還是好處理的,但是同時學這麼多種,你保證都不遇上問題?小心幾種語言的問題一起來壓你! 

3.要有主見 
許多初學者愛跟著潮流走,外面流行什麼他就跟著做什麼(追“猩”族?)今天流行VB他就學VB,明天流行Delphi他就把VB忘了,再到VB.Net、C#……人云亦云,隨波逐流,“專家”說什麼語言好他就投奔什麼語言,“走在科技前沿”,但是到最後又能學到什麼?不僅丟了西瓜,連個綠豆都沒揀著。這年頭“世界變化快”,我知道,但是它怎麼變就隨它去,總不見得把你變成今天張三明天李四吧?“月亮走,我也走”的思想要不得,別管外面流行什麼,如果不是大眾需要,你只管學好你該學的語言就行。 

4.別看輕其他語言 
經常有人說“XX語言差,學了沒前途!”要是讓我評價一句,恐怕是你沒前途吧?你憑什麼說它差?沒有一種語言是十全十美的,即使它再“差”,只要它還沒有被外界宣佈完全淘汰,它就有存在的理由!曾經有人對我說:“我的老師經常教育我,VB太差了,所以我要把以前學過的忘掉。”且不說這傢伙隨波逐流,單是他老師就夠酷了,呵呵,不知道他的老師是圈子裡的哪位資深專家呢?只怕是個三角貓吧!VB雖然存在一些侷限性,但它的語法很好理解,資料庫程式設計很方便,配合API也能完成一些複雜工作,這就叫差?多少個優秀程式不是用VB這個“沒前途”的語言寫出來的?多少個程式設計師不用VB?你看見他們沒前途了嗎? 

5.不可缺少的教材 
雖然從古到今一直有“盡信書,寧可無書”的遺訓,但是我們可別因此“無書”哦!也許你天資聰明,自學電腦不用教材,但是自學電腦可以憑現象和經驗,學程式設計能憑空摸索?連變數、過程等概念都不知道,還能看懂for(i=1;i<50;i++)的意思?要學程式設計絕對不能少教材資料,如果連這都不捨得買,那麼你最好別學了。還有一點,關於網路教程,我個人認為它太過於零散了,即使是一本完整的電子書也儘量不要看(除非實在買不到),難道你要一邊寫程式碼一邊ALT+TAB?我寧願慢慢翻一本書,也不願盯著螢幕看半天!現在市面上的教材參差不齊,光買一本是明顯不夠的,基礎的、高階的都要買回來慢慢研究,至少也要3本吧?市價低於20元的書最好不要考慮了,看看它的厚度!書本的厚度通常與含金量是成正比的(厚厚一本垃圾?你衰),最好選一些比較常見的出版社出版的書籍,儘量別買少見的,質量沒得保證!我的一個同學就買了一本20元的垃圾,整本書連個完整的例程都沒有,還大言不慚“基本入門”,誤人子弟啊!現在那同學看的是我借給他的清華大學出版社出版的《中文 Visual Basic 6.0 傻瓜書》。 

一個小竅門:如果你不知道該買什麼書,最好找個高手一起去,讓他幫你選本好的,如果你身邊沒有高手,那就找厚點的!或者書名帶有“疑難解答”或“API”,這些書質量一般都可以。 

6.關於英語 
由於大多數語言的母語都是英語,這就導致了一些初學者望而卻步,但是英語對於程式設計很重要嗎?實際上程式設計需要的英語很少,都是比較基礎的詞彙語法,它和一般的英語不一樣,即使你連一篇英語文章都看不下去,但只要有點英語基礎的,你就不用怕“不會”!(當然前提是一些基礎詞彙如If、For、Next、While、include等必須看得懂,否則先去補習一點英語再說)就算英語再好,沒學過程式設計也不會看得懂程式原始碼,難道沒學過程式設計能知道StrComp等於String Compare?學程式設計與英語水平無關,我們學的是程式設計而不是英語! 

7.程式設計大忌——組裝 
VB最大的方便之處是它和ActiveX能很好組合,MS和第三方廠商為VB開發了許多ActiveX控制元件,為初學者提供了很好的學習機會,但是一些初學者卻滿足於此,做一個程式用了一大堆別人的控制元件,加上一點微不足道的程式碼,就以為學會了程式設計,卻不知這樣根本沒有入門!ActiveX是別人做的東西,寫了多少程式碼才到你用的!別幻想ActiveX無所不能,從另一個方面說,它正是VB的累贅!會用ActiveX又有什麼了不起?API會嗎?複雜點的程式碼會寫嗎?會自己開發ActiveX嗎?做一個用到通用對話方塊的程式,只會用comdlg32.ocx的ShowOpen方法,卻不會用GetOpenFileName這個API來開啟,而且使用ActiveX會讓你的程式掛上一大堆OCX,加重程式開銷,更要命的是ActiveX會導致許多不可預料的錯誤,如控制元件過期、控制元件沒有註冊等,任何一個錯誤都會讓你的程式無法執行,許多初學者搞不清ActiveX與程式檔案的關係,釋出軟體時忽略了程式需要的ActiveX,導致程式在其他環境無法執行,我早期釋出的IIS Cracker就因為不得已用了兩個ActiveX而成為我最頭痛的事(有些東西不用ActiveX做不出來,沒辦法)如果一個程式出現控制元件錯誤, 
而作者又沒有提供相應的控制元件,那麼我要做的就是把這個程式刪除!在此提醒各位一句:寫程式不是組裝!別以為用VB畫個窗體,加幾個ActiveX就學會了程式設計,你根本連程式設計的門檻都沒入! 

8.循序漸進 
許多初學者剛開始接觸程式設計就急著寫一些較高階的程式碼,卻忽略了最重要的基礎,他們也許熱情高漲,也許有心學程式設計,但是卻沒能靜下心學程式設計基礎,這將導致付出時間多而收穫少的後果,舉個例子吧,你剛入門,連一個簡單的程式都不會做,就算我給你個木馬程式的全部原始碼(誰要獨裁者的程式碼?呵呵)你又能看懂多少?學習要一步一步來,沒有紮實的基礎,誰都不可能寫出好程式。當然,學習的方法也不能不提,儘管學VB、Delphi不需要專門學Basic、Pascal,但是學VC就不能不學C/C++了,否則你會前進得很辛苦!別信什麼“速成班”、“24小時學會XXX”,那種是餵豬的!經驗要靠練習來積累,不能只學理論,程式設計不是讓你紙上談兵的,平時不多練習,別想寫出什麼好程式!學習時要從簡單做起,先熟練簡單程式設計,在這個基礎上要寫出高階點的程式就不困難了,遇到難題別被嚇著,努力克服它(除非是由於語言的侷限性而做不到的),如果暫時做不出來,可以先擱一段時間,但別把它忘了。等你學到更高一層的技術後,再回頭研究過去的難題,將會事半功倍。 

9.在學好一種語言的基礎上,繼續學習其他語言 
別誤會,這不是讓你同時學習N種語言,而是在學好一種語言後,繼續學其它語言,例如學好VB後,可以改學C、Delphi等,不要守著VB不放,多一種語言就多一條出路,如果你覺得自己學得夠好了,那就別猶豫,馬上改學另一種語言(喂喂,你怎麼把VB的書給燒了?不是讓你放棄已經學會的語言啊)還是那句話,切忌同時學習多種語言!如果你對自己掌握的水平沒信心,最好還是別想其它了! 
多學幾種語言的好處是顯而易見的,一來可以做到幾種語言同時配合,二來對擴大知識面也有很大幫助。 
注意:學VB/Delphi後馬上學VC是錯誤的,你必須先學會C! 

10.用多種語言配合,多利用各種語言的長處 
前面已經提到過,各種語言都有短處,但是它們一般都能互相彌補,VB的侷限性導致一些複雜工作不能實現,VC強大,但是介面難做(個人想法),這時你可以用VB寫介面,VC寫DLL供VB呼叫。例如VB的指標、位運算操作麻煩且執行速度比較慢,在一些特殊應用環境裡,就必須用VC寫DLL了,其實寫個DLL並非難事,甚至比寫個VC的MFC程式還要簡單。 

11.多收集資訊 
學程式設計不能閉門造車,有些知識是書本上沒有的,應該多使用搜索引擎,多蒐集研究前輩們做的原始碼,吸收一些新知識和優秀思路,有助於提高程式設計水平,另外還應該參與一些論壇的討論,積累一些經驗。 

以上是我在學習程式設計的過程中積累的一些方法,僅作參考,希望大家共同進步。 本文由中國風暴論壇提供。