1.該學(xué)什么語言? VB,、VC,、Delphi、Java……面對各種各樣的編程語言,,你是不是被弄昏了頭腦呢,?該學(xué)什么?“學(xué)VC吧,!”許多高手說,。并且還舉了很有說服力的例子:“學(xué)VB只要兩個月,,學(xué)VC要一年,如果先學(xué)VB再學(xué)VC,,所用時間仍然是一年,,但學(xué)了VC再學(xué)VB,所用時間將不到兩個月,。”這句話沒錯,,的確是這樣的。但是剛?cè)腴T的初學(xué)者都能學(xué)VC,?把每個人都看得這么高,?一些初學(xué)者把VC當成自己的入門語言,結(jié)果能學(xué)到最后的只有少部分人,!我們不能奢望所有初學(xué)者都是在十分熟悉Windows的情況下才開始接觸編程的,,實際上,很多人就是在學(xué)習編程的過程中逐漸深入了解系統(tǒng)的,,要是所有人都選擇VC作為“入門級語言”…… 初學(xué)者應(yīng)該根據(jù)自身情況來選擇語言,,如果你剛開始接觸系統(tǒng),應(yīng)該去學(xué)VB,,因為VB很好學(xué),,基礎(chǔ)最重要;當然,,還有Delphi,,它介于VB與VC之間。除非你比較熟悉Windows,,否則別急著學(xué)VC,你會因此神經(jīng)衰弱的,。 2.切忌同時學(xué)習多種語言 有沒有試過同時學(xué)英語俄語德語波蘭語法語日語,?最后八成會變成鴨子。學(xué)編程也一樣,,如果你才高八斗機敏過人玉樹臨風,,那么隨便你同時學(xué)VC、VB,、Delphi等等等等,,沒人會攔你,但如果是初學(xué)者呢,?去做鴨子吧,。同時學(xué)這么多種語言還不如踏踏實實學(xué)好學(xué)精一門適合自己的語言!初學(xué)者往往什么語言都要去了解一下,,更有甚者連一些概念都不熟悉就什么都學(xué),,面對他們,,我都要自愧不如了,但我還是要勸他們一句:一樣一樣的學(xué),,沒有人能一步登天,!別以為同時學(xué)多種語言就很“光彩”,當心最后仍是七竅通了六竅,。 無論學(xué)哪門語言,,都要把它學(xué)好再想其它,別“花心”,,如果你是學(xué)VB的,,至少要熟悉VB編程并且能熟練使用API的時候,你才應(yīng)該去學(xué)其它語言,,學(xué)VC更要注意,,否則最后只能“無所不學(xué),而一無所知”,,只學(xué)一種語言時遇到困難還是好處理的,,但是同時學(xué)這么多種,你保證都不遇上問題,?小心幾種語言的問題一起來壓你,! 3.要有主見 許多初學(xué)者愛跟著潮流走,外面流行什么他就跟著做什么(追“猩”族,?)今天流行VB他就學(xué)VB,,明天流行Delphi他就把VB忘了,再到VB.Net,、C#……人云亦云,,隨波逐流,“專家”說什么語言好他就投奔什么語言,,“走在科技前沿”,,但是到最后又能學(xué)到什么?不僅丟了西瓜,,連個綠豆都沒揀著,。這年頭“世界變化快”,我知道,,但是它怎么變就隨它去,,總不見得把你變成今天張三明天李四吧?“月亮走,,我也走”的思想要不得,,別管外面流行什么,如果不是大眾需要,,你只管學(xué)好你該學(xué)的語言就行,。 4.別看輕其他語言 經(jīng)常有人說“XX語言差,,學(xué)了沒前途!”要是讓我評價一句,,恐怕是你沒前途吧,?你憑什么說它差?沒有一種語言是十全十美的,,即使它再“差”,,只要它還沒有被外界宣布完全淘汰,它就有存在的理由,!曾經(jīng)有人對我說:“我的老師經(jīng)常教育我,,VB太差了,所以我要把以前學(xué)過的忘掉,。”且不說這家伙隨波逐流,,單是他老師就夠酷了,呵呵,,不知道他的老師是圈子里的哪位資深專家呢,?只怕是個三角貓吧!VB雖然存在一些局限性,,但它的語法很好理解,,數(shù)據(jù)庫編程很方便,配合API也能完成一些復(fù)雜工作,,這就叫差,?多少個優(yōu)秀程序不是用VB這個“沒前途”的語言寫出來的?多少個程序員不用VB,?你看見他們沒前途了嗎,? 5.不可缺少的教材 雖然從古到今一直有“盡信書,寧可無書”的遺訓(xùn),,但是我們可別因此“無書”哦,!也許你天資聰明,自學(xué)電腦不用教材,,但是自學(xué)電腦可以憑現(xiàn)象和經(jīng)驗,,學(xué)編程能憑空摸索,?連變量,、過程等概念都不知道,還能看懂for(i=1;i<50;i++)的意思,?要學(xué)編程絕對不能少教材資料,,如果連這都不舍得買,那么你最好別學(xué)了,。還有一點,,關(guān)于網(wǎng)絡(luò)教程,,我個人認為它太過于零散了,即使是一本完整的電子書也盡量不要看(除非實在買不到),,難道你要一邊寫代碼一邊ALT+TAB,?我寧愿慢慢翻一本書,也不愿盯著屏幕看半天,!現(xiàn)在市面上的教材參差不齊,,光買一本是明顯不夠的,基礎(chǔ)的,、高級的都要買回來慢慢研究,,至少也要3本吧?市價低于20元的書最好不要考慮了,,看看它的厚度,!書本的厚度通常與含金量是成正比的(厚厚一本垃圾?你衰),,最好選一些比較常見的出版社出版的書籍,,盡量別買少見的,質(zhì)量沒得保證,!我的一個同學(xué)就買了一本20元的垃圾,,整本書連個完整的例程都沒有,還大言不慚“基本入門”,,誤人子弟?。‖F(xiàn)在那同學(xué)看的是我借給他的清華大學(xué)出版社出版的《中文 Visual Basic 6.0 傻瓜書》,。 一個小竅門:如果你不知道該買什么書,,最好找個高手一起去,讓他幫你選本好的,,如果你身邊沒有高手,,那就找厚點的!或者書名帶有“疑難解答”或“API”,,這些書質(zhì)量一般都可以. 6.關(guān)于英語 由于大多數(shù)語言的母語都是英語,,這就導(dǎo)致了一些初學(xué)者望而卻步,但是英語對于編程很重要嗎,?實際上編程需要的英語很少,,都是比較基礎(chǔ)的詞匯語法,它和一般的英語不一樣,,即使你連一篇英語文章都看不下去,,但只要有點英語基礎(chǔ)的,你就不用怕“不會”!(當然前提是一些基礎(chǔ)詞匯如If,、For,、Next、While,、include等必須看得懂,,否則先去補習一點英語再說)就算英語再好,沒學(xué)過編程也不會看得懂程序源碼,,難道沒學(xué)過編程能知道StrComp等于String Compare,?學(xué)編程與英語水平無關(guān),我們學(xué)的是編程而不是英語,! 7.編程大忌——組裝 VB最大的方便之處是它和ActiveX能很好組合,,MS和第三方廠商為VB開發(fā)了許多ActiveX控件,為初學(xué)者提供了很好的學(xué)習機會,,但是一些初學(xué)者卻滿足于此,,做一個程序用了一大堆別人的控件,加上一點微不足道的代碼,,就以為學(xué)會了編程,,卻不知這樣根本沒有入門!ActiveX是別人做的東西,,寫了多少代碼才到你用的,!別幻想ActiveX無所不能,從另一個方面說,,它正是VB的累贅,!會用ActiveX又有什么了不起?API會嗎,?復(fù)雜點的代碼會寫嗎,?會自己開發(fā)ActiveX嗎?做一個用到通用對話框的程序,,只會用comdlg32.ocx的ShowOpen方法,,卻不會用GetOpenFileName這個API來打開,而且使用ActiveX會讓你的程序掛上一大堆OCX,,加重程序開銷,,更要命的是ActiveX會導(dǎo)致許多不可預(yù)料的錯誤,如控件過期,、控件沒有注冊等,,任何一個錯誤都會讓你的程序無法運行,許多初學(xué)者搞不清ActiveX與程序文件的關(guān)系,,發(fā)布軟件時忽略了程序需要的ActiveX,,導(dǎo)致程序在其他環(huán)境無法運行,,我早期發(fā)布的IIS Cracker就因為不得已用了兩個ActiveX而成為我最頭痛的事(有些東西不用ActiveX做不出來,,沒辦法)如果一個程序出現(xiàn)控件錯誤,, 而作者又沒有提供相應(yīng)的控件,那么我要做的就是把這個程序刪除,!在此提醒各位一句:寫程序不是組裝,!別以為用VB畫個窗體,加幾個ActiveX就學(xué)會了編程,,你根本連編程的門檻都沒入,! 8.循序漸進 許多初學(xué)者剛開始接觸編程就急著寫一些較高級的代碼,卻忽略了最重要的基礎(chǔ),,他們也許熱情高漲,,也許有心學(xué)編程,但是卻沒能靜下心學(xué)編程基礎(chǔ),,這將導(dǎo)致付出時間多而收獲少的后果,,舉個例子吧,你剛?cè)腴T,,連一個簡單的程序都不會做,,就算我給你個木馬程序的全部源代碼(誰要獨裁者的代碼?呵呵)你又能看懂多少,?學(xué)習要一步一步來,,沒有扎實的基礎(chǔ),誰都不可能寫出好程序,。當然,,學(xué)習的方法也不能不提,盡管學(xué)VB,、Delphi不需要專門學(xué)Basic,、Pascal,但是學(xué)VC就不能不學(xué)C/C++了,,否則你會前進得很辛苦,!別信什么“速成班”、“24小時學(xué)會XXX”,,那種是喂豬的,!經(jīng)驗要靠練習來積累,不能只學(xué)理論,,編程不是讓你紙上談兵的,,平時不多練習,別想寫出什么好程序,!學(xué)習時要從簡單做起,,先熟練簡單編程,在這個基礎(chǔ)上要寫出高級點的程序就不困難了,遇到難題別被嚇著,,努力克服它(除非是由于語言的局限性而做不到的),,如果暫時做不出來,可以先擱一段時間,,但別把它忘了,。等你學(xué)到更高一層的技術(shù)后,再回頭研究過去的難題,,將會事半功倍,。 9.在學(xué)好一種語言的基礎(chǔ)上,繼續(xù)學(xué)習其他語言 別誤會,,這不是讓你同時學(xué)習N種語言,,而是在學(xué)好一種語言后,繼續(xù)學(xué)其它語言,,例如學(xué)好VB后,,可以改學(xué)C、Delphi等,,不要守著VB不放,,多一種語言就多一條出路,如果你覺得自己學(xué)得夠好了,,那就別猶豫,,馬上改學(xué)另一種語言(喂喂,你怎么把VB的書給燒了,?不是讓你放棄已經(jīng)學(xué)會的語言?。┻€是那句話,切忌同時學(xué)習多種語言,!如果你對自己掌握的水平?jīng)]信心,,最好還是別想其它了! 多學(xué)幾種語言的好處是顯而易見的,,一來可以做到幾種語言同時配合,,二來對擴大知識面也有很大幫助。 注意:學(xué)VB/Delphi后馬上學(xué)VC是錯誤的,,你必須先學(xué)會C,! 10.用多種語言配合,多利用各種語言的長處 前面已經(jīng)提到過,,各種語言都有短處,,但是它們一般都能互相彌補,VB的局限性導(dǎo)致一些復(fù)雜工作不能實現(xiàn),,VC強大,,但是界面難做(個人想法),,這時你可以用VB寫界面,VC寫DLL供VB調(diào)用,。例如VB的指針,、位運算操作麻煩且執(zhí)行速度比較慢,在一些特殊應(yīng)用環(huán)境里,,就必須用VC寫DLL了,其實寫個DLL并非難事,,甚至比寫個VC的MFC程序還要簡單,。 11.多收集信息 學(xué)編程不能閉門造車,有些知識是書本上沒有的,,應(yīng)該多使用搜索引擎,,多搜集研究前輩們做的源代碼,吸收一些新知識和優(yōu)秀思路,,有助于提高編程水平,,另外還應(yīng)該參與一些論壇的討論,積累一些經(jīng)驗,。 以上是我在學(xué)習編程的過程中積累的一些方法,,僅作參考,希望大家共同進步,。 12編程與數(shù)學(xué)的聯(lián)系 離散數(shù)學(xué)是在大學(xué)開設(shè)的,,其實初中生也能看得懂,主要是因為它的描述過于嚴謹,,所以看起來有點神圣,。但只要明白其本質(zhì),也沒有什么難的,,不過是比較煩,。 你不用專門地從頭研究數(shù)學(xué)。如果你學(xué)過一點編程,,那么建議你學(xué)習數(shù)據(jù)結(jié)構(gòu),,從中你可以了解到學(xué)習哪些數(shù)學(xué)知識能幫你更好地前進;而且在學(xué)習過數(shù)據(jù)結(jié)構(gòu)之后,你的編程水平將大大提高,。 掌握一門語言的語法并不需要太多的數(shù)學(xué)知識,。只有在遇到具體問題時,要用到數(shù)學(xué)上的相關(guān)理論,,數(shù)學(xué)才發(fā)揮作用,,此時完全可以通過查資料來解決。當然,,有數(shù)學(xué)基礎(chǔ)自然可以事半功倍,。不過通過應(yīng)用時的臨時學(xué)習將使你對該理論有更深該的認識也形成了你的實踐積累,。 最后給你一條武林秘決(今天你可能無法領(lǐng)悟,到你功力倍進的時候,,你就會心領(lǐng)神會了) 程序=算法+數(shù)據(jù)結(jié)構(gòu)
|