一个程序员应该了解多少关于系统管理员的知识?显然,知道得越多越好。但为了论证,一个程序员应该知道什么水平才算是平均水平呢?
我见过我的朋友(一位程序员)进行数据库架构设计、数据库备份、数据库调优、数据迁移等工作。有时候我会想他到底是一个程序员还是一个系统管理员。
一个程序员应该了解多少关于系统管理员的知识?显然,知道得越多越好。但为了论证,一个程序员应该知道什么水平才算是平均水平呢?
我见过我的朋友(一位程序员)进行数据库架构设计、数据库备份、数据库调优、数据迁移等工作。有时候我会想他到底是一个程序员还是一个系统管理员。
作为一名程序员,具备软件开发、部署、运行环境、安全等方面的全局视野非常重要。
否则,可能会犯下成本高昂的“无心之错”,导致生产力受到削弱(甚至更糟)。
了解事物的运作方式,以满足你所处环境的大局观,但不需要知道如何使它们工作。
拥有额外的技能总是有帮助的。
我认识一些非常强大的开发人员,但他们却无法在Windows上连接打印机。这有点滑稽。
如果您计划进行网络编程-养成使用Ethereal / Wireshark并查看数据包的习惯。最终它会得到回报。
显然,我在这里采取了 Web 应用程序的观点。也许其他人可以提出更一般性的建议?
我不太理解这种问题。就像“一个程序员应该了解多少关于生活的事情”,答案总是“尽可能多”。
首先问题是:你喜欢系统管理吗?如果你喜欢,那就去学习它!
如果系统管理让你感到恶心,那就不要学,学点别的东西。你能想象吗?你非常擅长系统管理,但你不喜欢它,你在简历上写下来,以便你能得到一个工作,你会承担这些责任!
基本上,尽可能多地学习你有热情的事情!
我认为你知道的越少(或让别人知道你知道的越少)就越好。我记得在一家公司里,人们来到我们的房间寻求电脑问题的帮助。我总是假装不知道如何帮助他们,但我的一个同事总是帮助他们 - 他们得到了免费的IT支持,而我认为那个人在错误的工作岗位上。
至于纯管理知识,这是一个困难的问题,大多数我遇到的管理员不知道如何设置或配置应用程序服务器、数据库和LDAP。因此,为了使它们具有良好的性能,您需要给他们逐步指示要做什么。这些知识真的很有用。
这真的取决于你使用哪种编程语言。我之前做了很多C/C++,但没有太多的管理工作。
但对于Web开发来说,感觉有一半的工作是学习如何成为系统管理员。只要稍微了解一下系统配置、服务器备份和定时任务,就可以在这里进行很多优化。
我们服务器的设置带来的性能提升比我在代码中所能优化的还要多。花一天时间作为系统管理员,整个网站的性能就可以提高100%,或者花一天时间作为程序员,让单个组件的性能提高100%?任何程序员都会选择成为系统管理员。
此外,还有自动部署网站、数据库设置/迁移等问题。这可能是因为我们没有“真正的系统管理员”(创业公司-自己选职称!),但我无法想象如果没有关于其背后系统的知识,我如何编写出好的/快速的/可靠的Web应用程序。
我必须说,最近我所获得的所有系统管理员知识,正在让我以程序员的身份看到新的可能性和解决方案。所以我的建议是,尽可能多地了解其背后的系统,这将会有所回报。