程序员应该了解多少系统管理员知识?

8

一个程序员应该了解多少关于系统管理员的知识?显然,知道得越多越好。但为了论证,一个程序员应该知道什么水平才算是平均水平呢?

我见过我的朋友(一位程序员)进行数据库架构设计、数据库备份、数据库调优、数据迁移等工作。有时候我会想他到底是一个程序员还是一个系统管理员。

7个回答

6

作为一名程序员,具备软件开发、部署、运行环境、安全等方面的全局视野非常重要。

否则,可能会犯下成本高昂的“无心之错”,导致生产力受到削弱(甚至更糟)。

了解事物的运作方式,以满足你所处环境的大局观,但不需要知道如何使它们工作


2

拥有额外的技能总是有帮助的。

我认识一些非常强大的开发人员,但他们却无法在Windows上连接打印机。这有点滑稽。

如果您计划进行网络编程-养成使用Ethereal / Wireshark并查看数据包的习惯。最终它会得到回报。


2
知道足够多的技术知识可以在软件工程工作中解决问题并完成任务。但不要知道过多,以至于人们会将您误认为系统管理员,并开始呼叫您进行例行系统维护任务。以下是一些建议,您应该了解:

  • 如何登录部署系统
  • 访问日志
  • 在部署系统上安装/重新启动您的应用程序
  • 了解您的生产部署拓扑结构,并能够在开发机器上安装一个近似的拓扑结构
  • 安装和部署数据库和其他基础设施服务(如JMS),以及基本的监控和故障排除

显然,我在这里采取了 Web 应用程序的观点。也许其他人可以提出更一般性的建议?


只要你在工程或编程工作中足够优秀,能够防止例行维护活动对你造成干扰,那么“知道得太多”并没有任何问题。 - nik

2
这取决于你所从事的领域!我曾经(直到最近)开发集群管理软件,显然系统管理员和网络专家是我的主要“受众”之一,了解和学习他们的任务对我的工作表现绝对至关重要;现在我从事商业智能软件的开发,所有这些系统管理知识(当然远非无用)与理解商业分析师、经济学家、销售/财务/会计人员和战略层面决策者面临的问题相比,已经变得次要了。

这两个领域可能有些极端(但我不到一年前确实从一个领域转到了另一个领域!),但原则仍然适用--没有了解您所在的应用领域或将来计划进入的领域,就无法给出好的答案。

1

我不太理解这种问题。就像“一个程序员应该了解多少关于生活的事情”,答案总是“尽可能多”。

首先问题是:你喜欢系统管理吗?如果你喜欢,那就去学习它!

如果系统管理让你感到恶心,那就不要学,学点别的东西。你能想象吗?你非常擅长系统管理,但你不喜欢它,你在简历上写下来,以便你能得到一个工作,你会承担这些责任!

基本上,尽可能多地学习你有热情的事情!


1

我认为你知道的越少(或让别人知道你知道的越少)就越好。我记得在一家公司里,人们来到我们的房间寻求电脑问题的帮助。我总是假装不知道如何帮助他们,但我的一个同事总是帮助他们 - 他们得到了免费的IT支持,而我认为那个人在错误的工作岗位上。

至于纯管理知识,这是一个困难的问题,大多数我遇到的管理员不知道如何设置或配置应用程序服务器、数据库和LDAP。因此,为了使它们具有良好的性能,您需要给他们逐步指示要做什么。这些知识真的很有用。


是的,几年前我有过一份工作,在那里我帮助团队秘书使用WordPerfect软件、教另一个人编程,并且在其他人需要帮助时成为全能型的“找人”。这对我有什么好处呢?我的年度审查因未完成足够的工作而被批评,而当我指出我经常帮助别人时,却被告知那不是我的工作。几个月后,我找到了一份新工作。 - PTBNL
成为唯一知道如何修复CEO黑莓问题的人是确保工作安全的好方法吗? - Andrew Grimm

1

这真的取决于你使用哪种编程语言。我之前做了很多C/C++,但没有太多的管理工作。

但对于Web开发来说,感觉有一半的工作是学习如何成为系统管理员。只要稍微了解一下系统配置、服务器备份和定时任务,就可以在这里进行很多优化。

我们服务器的设置带来的性能提升比我在代码中所能优化的还要多。花一天时间作为系统管理员,整个网站的性能就可以提高100%,或者花一天时间作为程序员,让单个组件的性能提高100%?任何程序员都会选择成为系统管理员。

此外,还有自动部署网站、数据库设置/迁移等问题。这可能是因为我们没有“真正的系统管理员”(创业公司-自己选职称!),但我无法想象如果没有关于其背后系统的知识,我如何编写出好的/快速的/可靠的Web应用程序。

我必须说,最近我所获得的所有系统管理员知识,正在让我以程序员的身份看到新的可能性和解决方案。所以我的建议是,尽可能多地了解其背后的系统,这将会有所回报。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接