浅谈怎么快速学习一门新的编程语言
我从 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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于浅谈怎么快速学习一门新的编程语言的详细内容...