好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

浅谈怎么快速学习一门新的编程语言

浅谈怎么快速学习一门新的编程语言

我从 2002 年到现在,学习了好几种编程语言。有一些,早已不用并且忘光了,有一些尽管不用但还会惦记着,还有一些,朝九晚五地用着。

我回顾过去 9 年的学习经历,差不多每年会学习一门新的语言,现在把它记录如下:

语言

学习时间

状况

C

学习时候在 TC 上编了一些玩具程序,还曾记得,迁移到 VC 的时候,找不到 graphics.h 时的不知所措。读 C 程序的时间远远多于写 C 程序。

C++

整天抱着 TCppPL ,混迹于 CSDN C++ 版。 2005-2008 年,一直用 C++ 写代码

Java

想了解一些 Web 方面的知识,于是开始学习 Java 。 05 年后一直没碰到,直到 08 年转做网页游戏,又重新拾起。

Python

我第一份工作的第一个任务就是做游戏服务器的任务系统,用的脚本正是 Python 。后来几年也会用 Python 写一些小工具。

Lua

魔兽世界让 Lua 火起来了,随波逐流地开始学习,后来喜欢上了。现在 Lua 是我游戏开发的御用脚本。

Perl/Erlang

为了读懂一些 mysql 管理工具,决定学习 Perl 。黄金国度的大部分工具都是用 Perl 开发。 Perl 带给我最大的麻烦是,一段时间后,读自己的代码都很晦涩。 07 年的时候就听大家讨论 Erlang 了,但一直没碰,借着国内出了第一本 Erlang 技术书的东风,开始学习起来。真的很喜欢,但也很清楚,短时间不会在商用项目里面使用,所以暂且搁置,但总会惦记着。

Scala

因为 Erlang 的原因,开始接触 Scala ,尝试了一段时间后,会觉得,既然我已经有 Erlang ,又何必要 Scala 呢。

ActionScript/Ruby

一直很少关注客户端的技术,为了弥补这个缺陷,学习了 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.  对应 Array 和 Hash

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

d . ruby 的迭代 / 枚举功能很强大

文件操作

File/Dir/FileTest

XML 文件

rexml/document 足够用了

正则表达式

=~ / /

数据库

Mysql/Ruby 据说不错

杂项

a.  puts/print/printf

b.  ` 外部命令 `

c.  Time.now

d.  srand/rand

e.  ARGV

怎么样?是不是对于 Ruby 有一个大概的认识?是不是想尝试一下这种淘金式的学习方法?那就开始吧。

参考:

1. 学会提问

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

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于浅谈怎么快速学习一门新的编程语言的详细内容...

  阅读:32次