學習程序設計語言是程序員的看家功夫。許多程序員邊編邊學,沒有止境,可以說是“活到老學到老”。在語言面前,程序員永遠是學生。然而,程序設計語言是一項不斷發展的技術,從機器語言到匯編語言,從低級語言到高級語言,從面向過程語言到面向對象語言,從C/S語言到B/S語言,從非跨平台語言到跨平台跨系統語言,從純語言到開發平台工具,真的是目不暇接。這些革命性的技術浪潮推動着程序員不斷學習新的語言以適應其發展,否則程序員將被淘汰。
學習新的語言有兩類人員,一類是從來沒有程序設計語言基礎的、沒有編過程序的人;另一類是已經掌握了一門或一門以上語言,正想要學習更高版本語言或新的語言的人。對於第一類的人我且稱為新手。
新手要學習一門程序語言,若是將新手比作一張白紙,可以畫出最新最美的圖畫,同樣也可以畫得亂七八糟沒有美感。新手的第一門語言對其今后的影響是巨大的,如果學得好,則自信心大增,對今后的發展非常有利;如果學得不好,學不下去,則對其職業生涯打擊很大。新手面對眾多的語言往往無從下手,第一,不知道學哪種語言為好;第二,不知道如何學習;第三,不知道能不能學好!
我認為,就目前而言,先學習Java、C#,今后再想學習應用於后台的C語言都是不錯的選擇。
針對第三點,我認為只要想學,有職業壓力,沒有學不好的,只有學不到最好的。
關於第二點,我的建議應特別注重兩個要點:一是基礎,二是動手能力。學語言首先要看書,然后要動手。那些認為光看書就能學會語言的想法是很幼稚的,而那種光注重編程而不注重讀書的人,將來一定是動手能力強而編程水平低的。
1)新手不要急於求成,要把時間放長一點,先把基礎知識學好,基礎越扎實,今后編程水平就越有可能提高。看書至少要花三個月時間。
主要選擇計算機原理、程序設計原理以及所學語言相關(最好是入門類,不要刻意地選擇哪本,對初學者來說,任意一本都是好的)的三類書籍。
2)由於看書過程中肯定會遇到很多不懂的概念,而且各種概念之間的關系也不容易理解和掌握,所以許多新手望而生畏,堅持不下去。這個時候一定要學會堅持,堅持讀下去,反復讀下去,對實在不懂的概念要注意收集,將其牢記在心。這個時候最好不要找人去解答,而是把所有的書籍反復看完3遍之后,再去找人解答,這樣就可以加深對這個問題的理解,而且解答者也願意回答。如果一有問題就去問,一是解答者容易失去耐心,二是自己對問題沒有印象,容易產生依賴性。
3)有了一定基礎知識之后,就要自己想辦法安裝編程環境。安裝編程環境的要點可參照1.2節中有關“流程”的闡述,這里就不再贅述。
4)開發環境安裝完成后,新手就可以編寫顯示“hello
world!”程序了。
編寫這個程序目的主要是學習主程序的作用、主程序的參數入口、簡單的賦值語句、顯示功能調用和退出程序語句。通過完成這個程序,新手就可以對編寫程序流程有一個切身體會。
5)接下來可以學習算術運算編程。試一試算術表達式編寫,可以簡單地編寫一個計算器示例;也可以編寫一個顯示日歷的復雜程序(若輸入年份,則顯示這個年份的日歷)。在這個階段主要是學習函數以及函數的調用、算術運算、條件語句、循環語句、顯示功能等,這些都是編程的基礎。
6)完成算術運算的學習后,可以編寫更復雜的完整的程序了。例如可以編寫一個學生信息管理程序。其功能為:接受一個學生信息(例如,學號、學生姓名、班級、年齡)並把它保存在計算機中,同時提供增加、刪除、修改、查詢功能。信息保存形式可以是文本文件,也可以是數據庫。
這個階段主要是學習變量、數據存放、文件操作、數據庫操作、程序完整性等,這也是編程的基礎。
7)完成上述學習之后,程序員要學會回頭梳理自己編寫的程序,梳理自己已經學過的概念。可以對自己以前的程序進行修改,培養不斷提高自己編程水平的意識。
8)在這些過程中若遇到問題,先看幫助。幫助不行,最好是找懂行的人詢問,不要自己鑽牛角尖,浪費時間。上網查詢也可以,但是不如詢問別人直接。看書是不能解決問題的,切記!
9)在這些都完成之后,程序員可以有目的地針對自己將要開發的內容進行相應的技術學習和准備了。
10)編寫程序的時間估計需要2~3個月。一般而言,一個新手學習一門語言需要半年左右的時間。有的可能要少一點,有的可能會多一點。但是,無論如何,最終的結果是程序員對語言有了初步的了解,可以用語言編寫簡單的程序了。