运维到底该学那门编程语言?那么多脚本语言,学那个最好? 在几年前我也经常问自己这些问题,为了找到答案,我几乎读完了中外所有的关于脚本语言之争的帖子和文章,最后我也没找到特别有说服力的的答案,因为在当时我已经有php了基础,python对我来说非常的陌生,如果转入python意味着我将要从自己的舒适区走出来,人性是懒惰的,人们为了说服自己,就要想从外界寻求答案,所以当时为这个问题也纠结了大半年,到最后我重新定位了自己的职业发展,是要做开发还是做运维?我的答案是运维,如果是运维,我觉得学习python是最好的选择(系统自带编程环境),所以最终还是放弃了php,全身心投入的python学习中,从这件事可以看出,选择永远不难,难的是你是否可以清晰的认识自己,所以回到我们最初的问题,我给的答案是:运维如果非要掌握一门编程语言的话?我推荐python,接下来我就和大家来谈谈为什么。
首先,从python语言的学习曲线看,python入门非常容易,它关键字少、结构简单,语法清晰,这使得我们运维人员能在短时间内轻松上手,并且代码易读和易维护,有人说写python代码就跟说话似得,可见python是多么易读和编写,同时python是一门完整的编程语言,符合所有编程语言具备的特点,例如OOP等。虽然python支持OOP,但不要求必须用OOP思想来编程,所以对已经有shell基础的工程师来说,写python也是顺手的事,从shell过度到python也很自然,但如果要学java这种纯OOP语言的话,如果不懂点OOP思想,学习起来会感觉吃力。
其次,从目前运维的发展来看,现在都进入云时代了,各个云平台为提供给用户灵活的运维,都提供了API接口,这些接口都支持python的sdk,再过2年如果你不懂得如果调用云平台接口去开发适合自己的定制化的运维系统,我估计连做运维的资格都没了,还有像现在的开源系统ansible,saltstack,等,要想玩好这些,那python肯定是必不可少的了,这就是DevOps,另外大名鼎鼎的openstack就是用python开发的,这足见python的强大,还有最近在编程语言圈老提起全栈语言,什么是全栈语言呢?其实很好理解,今天不过太多解释,请直接看下表吧。
领域 | 流行语言 |
---|---|
云基础设施 | Python, Java, Go |
DevOps | Python, Shell, Ruby, Go |
网络爬虫 | Python, PHP, C++ |
数据处理 | Python, R, Scala |