Answers:
系统管理只是编程。配置管理系统使您可以将整个基础结构视为一台分布式计算机。作为系统管理员,您的工作是对这台机器进行编程。
认识一个文本编辑器。通常,vi用于系统管理员,emacs用于程序员。
知道如何编写脚本。选择一种脚本语言。Perl是常年收藏,外壳/ sed / awk组合也是。Ruby和Python可以工作,但是在很多方面,对象是错误的范例。
知道如何编写可读的文档。
版本控制。对于维护配置文件和审核跟踪至关重要。
学习用编程术语思考。了解过程,面向对象和功能编程范例。这些可能永远不会被使用,但是了解它们可以使您的工作效率无限提高。
学习使用调试器(或更多)和日志记录。
学习使用RDBMS。通过正确使用RDBMS可以简化许多数据处理要求。甚至能够按需切换到DBA角色也可以创造奇迹。
部署前进行测试。请参见测试驱动的开发哲学。
结对编程很好。让别人看着你的肩膀学习/建议/纠正。
学会至少熟悉一门语言。每年学习一门新语言。
脚本编写是必不可少的,但是我还是建议您一定要懂一些“真正的”语言。例如,您可以使用.NET System.DirectoryServices命名空间来做一些非常有用的事情。
我是一名程序员和高级管理员/集成商。要在我的工作地点工作,您需要了解以下几点:
大多数初级管理员可以看一下我们的一位程序员,(有权限)说,是的,我安装正确,这是您泄漏的地方,这就是您刚推送的代码中断的原因。或“不,它不是我们的MySQL版本,请在此处查看您的查询...”
我认为我们有所不同,当我们聘请有天赋的管理员时..我们半途而终地期望他们(最终)找到他们的编程方式,即使这只是黑客入侵我们用来工作的东西,也就是他们需要的工作方式。
总而言之,全面发展永远不会伤害您。
许多很多年前(实际上是Windows NT 3.1),我最初是一名专门从事编写服务甚至是偶尔的设备驱动程序的程序员。这意味着您会非常了解Windows内核。随着时间的流逝,我对编程有些无聊,并转而使用网络管理。我发现我的编程背景一遍又一遍地具有很高的价值。
不仅仅是编写VBScript脚本相对容易。了解Windows的工作原理,尤其是IP的工作原理,将有助于解决奇怪的服务器和网络问题。这也是一种心态。程序员习惯于进行文档编制和版本控制,这让我感到震惊,我看到有多少Windows管理员会尝试尝试某些方法以查看其是否有效,并担心以后再搞乱。
很好,但是说离开程序员并从事十年的工作并不是非常有用的建议!但是我认为这将帮助大多数系统管理员具有使用“硬”语言(例如C ++或C#)进行编程的经验。而且,如果您的组织中有驯服的程序员,那就和他们一起喝酒吧!
约翰·雷尼
有了这里的所有描述,我不会再说我是系统管理员。但是事实上,我构建并管理了几个Windows / Linux服务器,所以我必须承认:
在Linux中,必须了解bash脚本-如果您知道如何将其与perl / awk / etc集成,那就更好了。我发现通过使用它,许多任务变得更加容易。
知道使用C / C ++编程会很有帮助。有时,您必须修改GNU源代码(如果使用的话)以适合您的需求,因为成为GNU产品并不能确保您始终能按时获得所需的帮助,而且很多时候它们都是用C / C ++编写的。