新的一年开始了,先祝大家猪年诸事顺利。过年期间文章停更几周,今天正式回归。今天的文章可能是一个老生常谈的问题,软件工程师到底是否需要掌握多种编程语言?

如果一直看我博文的人应该了解,我掌握的编程语言就不少,系统编程的C/C++,Web开发的Java和JavaScript,脚本语言Python和Shell,最近非常喜爱的全能语言Golang,迫于Android开发使用的Kotlin,iOS开发的OC和Swift等等。这么多语言中,比较熟悉的是C,Java,Python以及Golang。C语言更加擅长于底层开发,对于性能要求较高的程序,C语言是不二之选;Java则非常适合组装业务系统,Java框架和包丰富,开发成本较低;Python语言简洁,编写代码可读性强,方便使用;Golang则很中庸,语法简洁,既可以用于系统编程,也可以做Web开发。

可以看到,每一种编程语言都有自己的特点。就好比拧不同的螺丝需要不同的螺丝刀,没有最好的编程语言,只有最适用的编程语言,针对不同的开发,选择不同的编程语言,可以很方便地解决各类问题。有人说,掌握一门编程语言,我也能做各种程序。如果这么想,可以尝试用Java进行系统编程,你会发现无论在代码的简洁程度以及程序的性能方面,都无法达到期望结果,甚至于有些时候,Java根本没有系统级的接口可以使用。

那么,多种编程语言该怎么学呢?很多人采用简单粗暴的方式,学习各种语言的语法,这样的学习方式会导致一个结果,当语言越学越多的时候,突然发现,貌似语法搞混了,或者说学完一个忘记一个,不可否认,我也经历过这个过程,之前主要是用C/C++,但是当我学习Python的时候,突然发现,我根本记不住Python,甚至于后来学习Java的时候,也经常和C++搞混。这个时候,可能一些人会认为学习多种编程语言不可行,但是我认为还是方法不对。

那么,当我们学习多种编程语言时,应该遵循怎样的方法呢?我们可以从几个角度考虑这个问题。

首先,编程语言各式各样,利用这些语言,语言的发明者希望达到什么效果呢?概括下来,主要是代码的可读性好,语言的陷阱较少,写出的代码缺陷较少,能够让编程人员尽可能少犯错误,简化开发等等,以前常说,代码是写给人看的,而编程语言则是交给人用的。

其次,现在主流的编程语言都会追求一些编程思想,比如面向对象,闭包,函数式编程,协成,并发编程等,如果我们了解了这些编程思想在软件开发中的作用,再去学习编程语言,你会发现,所有语言都提供了一些语法,帮助我们更快速的实现上面的编程思想。

另外,编程语言都在追求跨平台的特性,为了实现这个特性,各种语言都会采取一些办法,比如Java的虚拟机,C交叉编译,Golang的跨平台编译等。

既然编程语言具有共通性,学习编程语言的步骤就变成了先基于某种编程语言学习思想,然后拿着思想去对照着其他编程语言学习,看看他们提供了哪些语法,便于我们达成自己的目的,而语言越学越多,你对这些思想的理解也会越来越深刻,看到自己对这些思想理解的不足之处。

哪些人应该学习多种编程语言呢?很简单,如果你确定你要搞技术,在软件行业深耕,多种编程语言的学习一定会让你在成长的路上披荆斩棘。好的工程师,应该能够解决工程中遇到的各种问题,而不应该让编程语言限制了你解决问题的能力;如果你希望做架构师,不掌握多种编程语言,很难协调系统相关开发人员的工作;项目经理和产品经理不了解多种编程语言,会限制项目管理能力和产品的想象力。

所以,没有必要怀疑学习多种编程语言的必要性,怀疑的时间,不如去尝试,你会发现,随着编程语言越学越多,你的代码质量也在逐步提高,你开始思考,用C如何实现Java中的机制,改善自己的C代码质量;如何用Golang替代C来更快更高效的完成系统编程;如何用不同的语言协同开发,构建复杂的系统。

为什么要学习多种编程语言-LMLPHP

 

03-17 16:54