我的編程回顧 - 淺談怎么快速學習一門新的編程語言

碼頭工人 13年前發布 | 26K 次閱讀 編程語言

我從2002年到現在,學習了好幾種編程語言。有一些,早已不用并且忘光了,有一些盡管不用但還會惦記著,還有一些,朝九晚五地用著。

 

我回顧過去9年的學習經歷,差不多每年會學習一門新的語言,現在把它記錄如下:

 

語言

學習時間

狀況

C

2002

學習時候在TC上編了一些玩具程序,還曾記得,遷移到VC的時候,找不到graphics.h時的不知所措。讀C程序的時間遠遠多于寫C程序。

C++

2003

整天抱著TCppPL,混跡于CSDN C++版。2005-2008年,一直用C++寫代碼

Java

2004

想了解一些Web方面的知識,于是開始學習Java05年后一直沒碰到,直到08年轉做網頁游戲,又重新拾起。

Python

2005

我第一份工作的第一個任務就是做游戲服務器的任務系統,用的腳本正是Python。后來幾年也會用Python寫一些小工具。

Lua

2006

魔獸世界讓Lua火起來了,隨波逐流地開始學習,后來喜歡上了。現在Lua是我游戲開發的御用腳本。

Perl/Erlang

2009

為了讀懂一些mysql管理工具,決定學習Perl。黃金國度的大部分工具都是用Perl開發。Perl帶給我最大的麻煩是,一段時間后,讀自己的代碼都很晦澀。07年的時候就聽大家討論Erlang了,但一直沒碰,借著國內出了第一本Erlang技術書的東風,開始學習起來。真的很喜歡,但也很清楚,短時間不會在商用項目里面使用,所以暫且擱置,但總會惦記著。

Scala

2010

因為Erlang的原因,開始接觸Scala,嘗試了一段時間后,會覺得,既然我已經有Erlang,又何必要Scala呢。

ActionScript/Ruby

2011

一直很少關注客戶端的技術,為了彌補這個缺陷,學習了AS。快樂編程是我追求的目標,于是開始嘗試Ruby

 

每次開始學習一門新的語言,都會很興奮,如同進入一個嶄新的奇妙世界。興奮之后,會發現,每次的學習過程大同小異: 安裝編譯環境,測試Hello World,按照Tutorial一步一步的嘗試,訂閱郵件列表,看相關書籍,研讀源代碼,不斷寫代碼。不斷寫代碼是最重要的,其它步驟都是為它服務。

 

我竟然學了那么多語言,而且還在不斷學習新的。論語道“學而不思則罔,思而不學則殆”。所以,我要總結。我把學習一門新的語言分成3個階段: 會用、熟練用和舉一反三揚長避短用。因為精力有限,大部分時候,我們只是淺嘗則止,也就是我說的“會用”——能借助google和幫助文檔,完成功能開發,對代碼質量無要求。

 

我發現,“淘金式”的學習方法能幫助我們快速“會用”。我把要淘的金子總結如下:

1.       數據類型:數值、字符串和布爾

2.       數據結構:數組和哈希字典

3.       變量聲明與定義

4.       函數聲明與調用

5.       程序結構:條件和循環

6.       文件操作:打開文件、讀寫文件、遍歷目錄

7.       XML文件

8.       正則表達式

9.       數據庫

10.   雜項:格式化輸出、調用外部命令、時間日期、隨機數和程序輸入參數

 

具體的例子,對于Ruby來說,知識點又是這樣的:

知識點

內容

數據類型

a.       支持整數、浮點數

b.       字符串是mutable的,可以設置編碼,對應String類,什么index/start_with/end_with/split應有盡有

c.       字符串判斷相等== ?eql都可以

d.       True/False/Nil

數據結構

a. 對應ArrayHash

b. 初始化分別是[1, 2, 3]{“one”=>1, “two”=>2, “three”=>3}

c. 遍歷方式: xx.each{|x| print x}

d.  

變量聲明與定義

a. 支持全局變量、局部變量、類變量和實例變量。Ruby對于不同變量的命名有契約規則

b. 不需要提前聲明,也不需要指定類型,也沒有var等修飾符

函數聲明與調用

a.       def  foo()

puts “hello world”  

end

b.        foo()

c. 語句可以不要終止符’;’,有時函數調用中的圓括號可以被省略

程序結構

a. 條件式 if/elsif/else/end

b. 循環 while/do/end

c. 循環 for var in collection do end

druby的迭代/枚舉功能很強大

文件操作

File/Dir/FileTest

XML文件

rexml/document足夠用了

正則表達式

=~ / /

數據庫

Mysql/Ruby據說不錯

雜項

a. puts/print/printf

b. `外部命令`

c. Time.now

d. srand/rand

e. ARGV

 

怎么樣?是不是對于Ruby有一個大概的認識?是不是想嘗試一下這種淘金式的學習方法?那就開始吧。

轉自:http://www.cnblogs.com/ro4tub/archive/2011/08/21/how_to_learn_a_new_computer_language.html

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!