如今躋身軟件行業的人不少,然而中國如今依然十分缺少軟件人才,到底是爲何呢?那是由於 程序員
你雖然在學校學了軟件開發技術,可學校的學習時間畢竟有限,離開了學校,你就不知道如何再 算法
繼續學習下去了,因而就慢慢地荒廢了你的技術,或者你就原地踏步,只能作一些簡單的小項目. 數據庫
由此看來,軟件開發這一行重要的不是看有什麼名師,而是要看你會不會本身去學習.
1.該學什麼語言?
VB、VC、Delphi、Java……面對各類各樣的編程語言,你是否是被弄昏了頭腦呢?該學什麼? 編程
「學VC吧!」許多高手說。而且還舉了頗有說服力的例子:「學VB只要兩個月,學VC要一年, 網絡
若是先學VB再學VC,所用時間仍然是一年,但學了VC再學VB,所用時間將不到兩個月。」這句 數據結構
話沒錯,的確是這樣的。可是剛入門的初學者都能學VC?把每一個人都看得這麼高?一些初學者 編程語言
把VC當成本身的入門語言,結果能學到最後的只有少部分人!咱們不能奢望全部初學者都是在 學習
十分熟悉Windows的狀況下才開始接觸編程的,實際上,不少人就是在學習編程的過程當中逐漸 搜索引擎
深刻了解系統的,要是全部人都選擇VC做爲「入門級語言」…… 初學者應該根據自身狀況來 spa
選擇語言,若是你剛開始接觸系統,應該去學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.多收集信息
學編程不能閉門造車,有些知識是書本上沒有的,應該多使用搜索引擎,多蒐集研究前輩們作
的源代碼,吸取一些新知識和優秀思路,有助於提升編程水平,另外還應該參與一些論壇的討
論,積累一些經驗。
以上是我在學習編程的過程當中積累的一些方法,僅做參考,但願你們共同進步。
12編程與數學的聯繫
離散數學是在大學開設的,其實初中生也能看得懂,主要是由於它的描述過於嚴謹,因此看起
來有點神聖。但只要明白其本質,也沒有什麼難的,不過是比較煩。
你不用專門地從頭研究數學。若是你學過一點編程,那麼建議你學習數據結構,從中你能夠了
解到學習哪些數學知識能幫你更好地前進;並且在學習過數據結構以後,你的編程水平將大大
提升。
掌握一門語言的語法並不須要太多的數學知識。只有在遇到具體問題時,要用到數學上的相關
理論,數學才發揮做用,此時徹底能夠經過查資料來解決。固然,有數學基礎天然能夠事半功
倍。不過經過應用時的臨時學習將使你對該理論有更深該的認識也造成了你的實踐積累。
最後給你一條武林祕決(今天你可能沒法領悟,到你功力倍進的時候,你就會心照不宣了)
程序=算法+數據結構