您的位置:首页 > 编程语言

44. 精通多于二种的编程语言

2013-10-06 16:54 99 查看

精通多于二种的编程语言

程序开发心理学为人熟知已经很长一段时间了,现在编程专业程度与程序员掌握的不同编程范式的数量直接相关。不仅仅是听说过,或者知道一点点,而是真正可以使用它编写程序。

每个程序员都从一种编程语言开始,那种语言对程序员思考软件的方式有着决定性的影响。不管程序员使用那种语言有了多少年的经验,如果一直只使用那种语言的话,他们也就只知道那种语言。只会一种语言的程序员的思维会受到该种语言的限制。

程序员学习第二语言是一种挑战,特别是当第二种语言和第一种的计算模型完全不同时。C,Pascal,Fortran,都有着相同的基本计算模型。从Fortran转到C会遇到一些挑战,但不多。从C或者Fortran转换到C++或者Ada则会面对程序运行方式的本质上的挑战。从C++转换到Haskell也是一个重大的变化,因而也会有一个重大的挑战。从C到Prolog无疑是非常大的挑战。

我们可以熬煎出一些计算范式:过程式,面向对象,函数式,逻辑,数据流等。在不同的范式之间转换时面对的挑战最大。

为什么这些挑战会很有好处呢?它们影响我们考虑算法实现以及这些实现中应用的习语和模式的方法。特别地,这些交叉是专业技能的核心。一种语言中解决某个问题的惯用答案在其它语言中可能就不可行。尝试一种语言的习语到另一种习语的过程中,既可以学习两种语言,又能学习到要解决的问题。

交叉地使用编程语言有着巨大的好处,其中最明显的可能就是在命令式语言实现的系统中不断增加地使用声明式表达模型。任何精通函数式编程的程序员可以轻松地使用声明式的方法,即使是使用C语言。使用声明式的方法一般会产生更短的、更易理解的程序。比如C++,就全力支持泛型编程,这几乎是声明式表达模型的必需。

这样的结果就是每个程序员都会熟练掌握至少两种编程语言,理想状况下掌握上面提到的里面的至少五种。程序员应该一直保持学习新语言的兴趣,优先考虑采用不同范式的。即使在日常工作中只用到一种语言,交叉范式给这咱语言带来的经验是不可低估的。老板们应该吸引这种思想,并且给员工学习当前未使用的新语言提供预算,作用增加员工使用该语言的老练程度的一种方法。

一周的培训是不足学好一门新语言的,它只是一个开始:一般需要好几个月的使用,就算是兼职的,才能获得该语言的正确的工作知识。重要的是学习使用的习语,而不是语法和计算模型。
愿文:Know
Well More than Two Programming Languages by
Russel Winder
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: