编程语言不仅仅面向程序员。如果你是网络工程师、系统管理员、存储管理员或其他基础设施专业人员,知道一种(或两三种)编程语言,都能在工作中派上用场。
软件定义基础设施正在迅速进入数据中心,为了管理这种基础设施,用你自己编写的脚本定义网络或软件定义存储软件,会对工作很大的帮助。
此外,由于更多的企业采用开发运维的方法,许多公司力求加大使用自动化的力度。虽然现有的自动化工具可以为你处理其中一些工作,但是管理员能够自己编写脚本是个好主意。而实际上,一些雇主要求任何优秀的系统管理员或其他基础设施专业人员都要具备这种能力。
可是,你知道该学习哪几种编程语言吗?
本文就介绍了,专家们经常推荐基础设施专业人员或想成为这个群体的人学习的12种语言。很显然,你可能无法把这12种语言统统学会,但是至少掌握一种、最好是两、三种语言可以帮助你变得更高效、更吃香。
1.Python
无论你何时请教专家,可以肯定:Python会是他们最先提到的两三种语言之一。原因何在?
首先,Python简单易学。实际上,如果你在大学接触编程课,Python可能是最先学到的一种语言。此外,它没有必要编译,这使得调试起来很快速、很容易。它是一种通用语言,所以可以将它用于几乎任何的用途,包括编写脚本,结合其他代码片段。Python还是几种流行的SDN控制器(包括POX和Ryu)使用的语言。
2.Java
据Tiobe编程语言人气指数榜显示,Java是世界上最流行的编程语言,优势明显。在最新版的这份指数榜上,Java的排名优势明显,几乎比排名第2的语言C领先一倍。
为何Java如此流行?它几乎可以在任何地方运行,包括安卓和许多物联网设备。Java学起来比许多语言更容易(可是不如Python容易),又因为它历史悠久,网上有许多帮助和资源。由于废料收集和例外之类的功能,Java允许错误。此外,数量众多的编程工具支持Java,所以编写Java代码往往相当容易。
值得一提的是,IT工作公告栏上往往有许多岗位需要Java知识,所以如果你学习这种语言,不仅拥有一种有助于基础设施管理的技能,还能帮助你在以后找到另一份工作。
3.PowerShell
如果你是经常与Windows环境打交道的基础设施专业人员,许多专家表示,应该将PowerShell列为应考虑学习的主要语言之一。PowerShell是微软自主开发的一种脚本语言和配置管理框架,可用于处理Windows服务器。它内置在微软的服务器产品中,使用它可以显示信息,处理用标准管理工具找不到的信息或干不了的事情。
今年早些时候,微软开放了PowerShell的源代码,将它提供给MacOS和Linux平台。这意味着,如果你使用PowerShell编写为Windows服务器自动处理任务的脚本,现在还可以将同一工具用于MacOS和Linux服务器。
4.Bash
Bash与Linux,好比PowerShell之于Windows。它是大多数Linux发行版的默认外壳脚本语言。正因为如此,它极其适用于在基于UNIX的系统上自动化处理系统管理任务。
实际上,一些专家表示,要是不知道Bash,Linux管理员其实无法做好工作。然而,其他人认为,由于你用Bash处理的一切任务用Python也可以处理,所以Bash不再必不可少。另一方面,Bash有时是编写自动化脚本的最快方法,学起来也很容易。
5.TCL
TCL给网络专业人员带来了特别的好处,因为它可以在许多思科路由器及其他网络硬件上运行。它是一种开源脚本语言,非常适合自动化处理网络管理和安全任务。它还与C很好地集成起来。
除了嵌入式应用程序外,TCL还经常用来创建用户界面,尤其是针对Unix系统。它还可以在Windows和Linux中运行,但是现在的人气不像过去那么旺了。
6.C
与Java一样,C也是一种通用编程语言;与Java一样,它也极其流行。好几年来,C在Tiobe人气指数榜上的排名实际上比Java还靠前,不过最近远远掉到了第2位。它自上世纪70年代以来就问世了,所以很容易找到与这种语言有关的帮助和资源。
许多计算机科学家表示,学习C可以教学生了解计算机程序的真正原理,还有一些人认为,它应该是计算机学学生学会的第一种语言。它学用和维护起来不如Python和Java等语言来得容易,但是让你可以直接控制系统。它为另外几种编程语言提供了基础,几款软件定义基础设施工具是用C编写的。
简而言之,如果你确实想深入了解编程的基本方面,应该考虑学习C。如果你只是寻求一种编写自动化脚本的简便方法,另外一种语言也许是更好的选择。
7.C++
你从名称中也猜出来了,C++与C的关系非常紧密。它同样有着C的许多优缺点。
在Tiobe人气指数榜上,C++是人气排名第三的编程语言;由于C++是比较成熟的语言之一,它有大量的资源可供使用。C++程序运行起来很快,但是也与C一样,这种语言复杂,难以掌握。一些软件定义基础设施工具是用C++编写的,它可以教你编程方面的基本知识。它对你的IT职业生涯大有助益,但是专家们表示,如果你只需要迅速编写一些脚本,它恐怕不是你的第一选择。
8.JavaScript
虽然JavaScript主要以一种前端Web开发语言而出名,但同样适用于后端开发(通过Node.js)以及编写自动化脚本。它也是世界上最受欢迎的编程语言之一,在Tiobe人气指数榜上排名第6,在PYPL编程语言人气指数排行榜上排名第5。
此外,它似乎在变得更受欢迎,可以在任何IT工作布告栏上找到大量的JavaScript岗位。学用起很容易,不过要精通很难。
9.Perl
Perl经常与Python一起相提并论,它是脚本语言的最佳选择之一。许多比较旧的Linux或Unix系统运行Perl脚本,所以如果你是基础设施专业人员,要维护这种比较旧的系统,对这种语言有一番了解是个好主意。除了用于一些旧的网站外,Perl还经常用于网络和安全原型。
在最新的Tiobe人气指数榜上,Perl排名第9,所以它仍是一种大受欢迎的编程语言,但一些人认为,由于Python等语言的人气变得更旺,Perl在渐行渐远。
10.PHP
PHP经常用于web开发,尤其是客户服务器端,这是另一种流行的通用脚本语言。它可在各大操作系统上运行,尤其适合与基于SQL的数据库进行交互,这是Web开发人员常常用它的原因之一。
PHP也很受欢迎,目前在Tiobe人气指数榜上排名第7,所以你在网上能找到关于它的大量信息。然而,许多web开发人员由PHP改用Ruby用于web开发,Python往往因用于自动化脚本而更受欢迎。不过,如果你的工作需要维护网站服务器,了解这种语言将大有帮助。
11.Ruby
Ruby是有时被誉为“漂亮”、“自然”的少数编程语言之一。其开发者松本行弘(Yukihiro Matsumoto)想创建一种开发人员喜欢使用的语言,Ruby以简单易学而著称。目前,它在Tiobe人气指数榜上排名第13。
与PHP一样,Ruby也最常用于Web开发。它常常与Rails Web开发框架结合使用(太常结合使用了,以至于一些人误以为这门语言的名称是Ruby on Rails)。然而,它也可以用于其他脚本用途。对管理网站服务器的基础设施专业人员来说,Ruby是另一个不错的选择。
12.Frenetic
作为本文中一种最新的语言,Frenetic在2010年前后才问世。不像本文介绍的其余语言,它是专门为软件定义网络(SDN)设计的。它实际上是个语言家族,包括Frenetic-OCaml和Pyretic,前者由康乃尔大学的研究人员开发,后者由普林斯顿大学的研究人员开发。
如果你要与基于OpenFlow的SDN环境打交道,Frenetic可以帮助你控制网络中发生的情况。然而由于这种语言实在太新了,网上相关资源不是很多,你也找不到需要Frenetic的大量工作岗位。另一方面,由于软件定义基础设施已变得更普遍,掌握Frenetic方面的知识也许是网络工程师和管理员在其他求职者当中脱颖而出的一样本领。