Linux运维人员需要掌握一门编程语言吗?

最近经常有同行的朋友或者Linux初学者问我:运维人员是否需要学一门语言,那么该学哪种语言呢?


对于这个问题,我分两个方面回答:


首选,在大数据、云计算发展迅猛的今天,系统运维人员如果不懂一点开发语言的话,确实会举步维艰,因为在运维工作中,业务系统的繁多,线上服务器规模很大时,只能通过写脚本的方式(自动化也是脚本一种哦)自动化完成,不然,如此重复和繁琐的工作,靠人力是无法负担的,所以,学习一门可以让运维工作批量完成的语言,就显得很重要了。


那么应该学习一门什么语言呢?


对于Linux系统运维人员来说,答案就比较复杂,因为有很多的选择。shell、perl、python、ruby等等。


我认为,每一个Linux系统运维人员都应该知道Linux外壳程序(sh或bash),另外还要知道Perl、Ruby或Python当中的某一门语言。至于学哪一门语言,并不重要。



在我看来,任何语言都是为运维工作服务的,只要能完成运维工作,你喜欢哪种语言,那么你就用哪种语言吧,当然,对于初学者会有一些不同的选择,如果你是初学者,推荐当下比较流行或者企业应用比较多的语言来学的话,对以后的工作会有很大帮助,毕竟没有哪个公司愿意接受一种陌生的语言。


那么,是否初学者一开始就要马上学习一门运维语言呢,我觉得这个为时过早了,因为任何语言,特别是shell、python等这些语言,与Linux联系很紧密,如果对Linux一无所知的时候,就茫然的去学语言,那无异于盲人摸象,所以我建议,学习系统语言,一定要有Linux基础后再去学习,你会发现,语言也变得容易多了。


shell作为一门通用的系统语言,是所有运维人员都必须要了解和掌握的,通过shell能帮助我们解决日常工作中很多重复、繁琐的工作,但是shell的基础就是系统命令,因此,只有掌握了系统命令的原理和使用方法,shell才能运行起来,我见过很多学Linux的朋友,他们也接触运维多年,但是对于如何执行for循环、while循环、if with [[或[、$1、$2、$3... $*和 $@ 以及case语句的使用都不会,他们迟早会为没有尽早学习bash而自责不已。


那么又有人问我,我对shell已经非常熟悉了,但还是找不到工作,很多单位都要求会python或ruby等语言,我是否还要学这些语言呢?



这个问题分为两个方面,首先从员工角度来讲,企业招聘员工是为自身服务的,交给员工的任务只要能按质保量的完成,其实已经足够了,至于通过什么语言来实现的,并不重要。可能有些企业出于习惯或传统的目的,强制要求要通过一种语言去完成所有工作,这是企业环境问题。如果每个员工都有完全依赖于企业的这种习惯,岂不是要学会所有的语言吗,显然,这并不是一种常态。


很多朋友都看过招聘信息,对语言的要求基本都是shell、python、perl等任意一个熟悉,那么也就说明对运维工作的语言要求是相对较宽泛的,我曾就职多家大型公司,对于运维的工作都有专业的任务调度管理平台,而调度管理平台上,可以支持任何语言编写的运维调度任务,因此,你无需为学习哪个语言而发愁。


然后,从职业管理的角度来看,我认为真正擅长其中一门语言,对另外其它语言有所涉猎,这是最大的竞争力,哪怕这意味着仅仅阅读介绍这些语言的书籍的头几个章节。真正擅长其中一门语言意味着,你深入了解如何运用该语言,深入了解该语言在“底层”是怎么一回事,那样你在设计更大型的程序时,就能作出更合理的决策。我之所以把这个问题上升到职业管理问题的层面来讨论,原因在于,如果你想受雇于一家使用不同语言的公司,“成为愿意学习不同语言的专家”远比“成为只想学习大有潜力的语言”或“对这门或那门语言一知半解,但是从来没有耐心把某一门语言学好的人”来得重要。



我是南非蚂蚁,一个多年从事运维一线工作者,如果想学习Linux运维技能,可看看我录制的运维技术实战视频!


51cto学院优质好课推荐:

http://edu.51cto.com/course/course_id-5986.html  企业Web服务器Nginx应用实战

http://edu.51cto.com/course/course_id-6408.html  企业常见MySQL架构应用实战

http://edu.51cto.com/course/course_id-6803.html   LVS+Keepalived企业级应用实战

http://edu.51cto.com/course/course_id-7387.html   高性能负载均衡集群HAProxy实战

http://edu.51cto.com/course/course_id-6907.html   Zabbix监控平台应用实战

http://edu.51cto.com/course/course_id-7735.html  分布式监控平台Web Nagios(Centreon)应用实战

http://edu.51cto.com/course/course_id-7683.html   Linux运维故障排查思路与系统调优技巧


套餐课程推荐:

http://edu.51cto.com/pack/view/id-805.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值