ivaneye.com

如何学习一门编程语言

简介

未来的应用必然是异构的,绝对不会限定在一门语言上,这就要求我们能根据需要快速的掌握一门语言。

本文就个人经历谈一谈如何快速的学习一门编程语言。主要面向已经掌握了一门语言的人。

学习目的

当你决定要学习一门语言的时候,请先问问自己为什么要学习这门语言? 如果答案是这门语言现在很火,那么可以洗洗睡了。生命苦短,好好玩乐吧,少年!

个人认为需要学习一门语言的动机有如下几个:

而第一种目的和第二,三中目的所要学习的程度则有差别。工作需要当然是越深入越好。提高效率则更偏向实用。拓宽思路则理解其思想即可。

确立了目标后才能更好的学习语言,比如你只是想拓宽思路,那么没必要死抠语法,理解其思想即可,语法忘了就忘了。如果是使用,那么后期需要频繁的使用,在使用的过程中反馈学习,才能有更好的效果。编程嘛,无他,唯手熟尔!

无论什么目的,都需要从基础开始!

环境与语法

首先是要摸清你要学习的语言的环境和基本语法。这个耗时不会很长,一般半天左右即可。

目前大部分语言都提供了傻瓜式的安装包,所以环境基本不是问题了。

语法的话,基本语法其实很简单。只要你有一门编程语言的基础,基本语法的学习也就是分分钟的事。无外乎:

等等,这些最基本的东西,只是各个语言在语法表达层面上的差异罢了!

语言的思想

基本语法只能说达到了Hello World的级别。而语言的思想则是核心重点。

当然,如果你会过程式语言,再学一门过程式语言,这个坎就比较小了(只涉及到一些小的语法层面的学习, 比如Java使用接口来实现多重继承,而ruby使用的是mixin)。但是如果你学过过程式语言,现在要学面向对象语言, 或者你会面向对象语言,要学习函数式语言,则需要重点越过这个坎。

比如:

每种语言思想的不同也就导致了在使用语言解决问题时的思考重心的不同。就像上面说的:

这一部分算是比较难搞定的地方,需要一定的时间去学习与思考。

语言思想这一部分搞定后(如果一时搞不定,可以结合此部分反馈学习 ),后面其实就是对库的学习了。几个比较重要的库:

在学习库的过程中,可以进一步体会所学习的语言的思想!

代码组织

学习了思想,学习了库,其实你已经可以编写功能完善的代码了。但是如何编写出最适合该语言特性的代码呢?

这里就相当于是最佳实践了。

打包,部署及三方库

编写完代码就是打包部署了,这里就涉及到了语言的生态环境了。即如何管理自己编写的库。

比如:

以及对需要使用的第三方库的学习。

总结

经过如上过程,基本上就能将一门语言应用到实际使用中了!

后续将针对Java,Groovy,Scala,Clojure,Shell等语言做详细的教程!