游客你可以选择到
个人资料
汪老师的头像
  • 会员等级:华育高级会员
  • 会员积分:1000分
  • 空间访问:322次
日志分类
最近访客
文档搜索
日志文章

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

(12-07-24 02:53)

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

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

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

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

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

在我看来,上面这番话比我认为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年还没有出现……我建议他不妨查查维基百科)。

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

发表评论
汪老师:
表情:
验证码:   匿名评论