系统管理员该学什么语言?

系统运维 靠谱运维 5℃ 7评论

最近有人问我:系统管理员该学什么语言。

如果你是一名Windows系统管理员,那么答案很简单:该学PowerShell。

如果你是Unix/Linux系统管理员,答案就比较复杂,因为有更多的选择。我不想引发一场“语言大战”,而是想说:

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

 

图片来源:O’REILLY编程大师

在我看来,上面这番话比我认为Perl、Python或Ruby哪门语言更优秀或者哪门语言有更多的职位空缺(或者使用其他任何标准)来得重要。容我细细解释:

学习bash确实蛮重要,因为bash对于你许多方面的工作来说极其重要。无论是调试/etc/init.d脚本,还是编写一个小型包装器。每一个Unix/Linux系统管理员都应该知道:如何执行for循环、while循环、if with [[或[、$1、$2、$3… $*和$@以及case语句,还要明白变量代换是怎么一回事,如何处理简单的命令行标记。只有掌握了那些基本的东西,你才能继续深入一步。我惊讶地发现,我结识的不少人接触了好多的Unix/Linux,却不会用bash来执行循环;他们迟早会为没有尽早学习bash而自责不迭。

选择Perl、Python还是Ruby,这通常取决于贵公司已经在使用什么语言。Ruby和Python最近变得比Perl更为流行,所以许多公司重点关注Perl。如果你使用Puppet,那么熟悉Ruby将有助于你熟练运用Puppet。我在谷歌工作,这家公司很看重Python,于是我进入谷歌后学习了这门语言。对于自1991年以来就熟悉Perl的本人来说,这的确是一次不容易的学习过程(最近有人告诉我Perl在1991年还没有出现……我建议他不妨查查维基百科)。

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

原文来自:http://everythingsysadmin.com/2012/06/salang.html

转载请注明:靠谱运维 » 系统管理员该学什么语言?

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情
(7)个小伙伴在吐槽
  1. 再来评论一次,貌似上次的评论失效了,杯了个具的——疯科技
    iphone52012-07-16 17:30 回复
  2. 请问能投稿吗?
    yiduiyi2012-08-20 23:14 回复
  3. :razz: 学习了
    学习了2012-08-27 21:58 回复
  4. 很多东西都挺实用呢
    www.94haha.com2012-08-28 12:24 回复
  5. 有对我有用的,转到QQ空间了,嘿嘿
    就是哈哈2012-08-29 07:26 回复
  6. 博客比我的强多了,学习下
    幸福的小酒2012-09-02 14:31 回复
  7. 说的甚有道理,但总觉得有点偏激。
    高级豕2012-09-03 15:46 回复