【发布时间】:2009-07-04 05:02:40
【问题描述】:
程序员应该对系统管理员了解多少?我的意思是,显然越多越好。但是为了争论,程序员应该知道的平均水平是多少?
我见过我的朋友(程序员)做数据库架构设计、数据库备份、数据库调优、数据迁移等。有时我想知道他是程序员还是系统管理员。
【问题讨论】:
程序员应该对系统管理员了解多少?我的意思是,显然越多越好。但是为了争论,程序员应该知道的平均水平是多少?
我见过我的朋友(程序员)做数据库架构设计、数据库备份、数据库调优、数据迁移等。有时我想知道他是程序员还是系统管理员。
【问题讨论】:
对于程序员来说,对软件开发、部署、运行时环境、安全和安保的各个方面有一个全局视图是至关重要的。
否则,可能会犯“无辜的错误”,导致代价高昂的后果,最终的后果是生产力下降(或更糟)。
充分了解事物的工作原理以满足您的环境的全局,但您不需要知道如何使它们工作。
【讨论】:
拥有额外的技能总是有帮助的。
我认识非常强大的开发人员,他们无法在 Windows 中连接打印机。这有点好笑。
如果您打算进行网络编程,请养成使用 ethereal/wireshark 并查看数据包的习惯。最终它会得到回报。
【讨论】:
足够了解您可以在软件工程工作中解决问题并完成工作。不要知道太多,以至于人们将您混淆为系统管理员并开始打电话给您进行日常系统维护任务。关于你应该知道的一些建议:
显然,我在这里采用网络应用程序的观点。也许其他人可以提出更一般的建议?
【讨论】:
这取决于你在哪个领域!当我(直到最近)开发集群管理软件时,显然系统管理员和网络专家是我的主要“受众”,了解和了解他们的任务对我的工作表现绝对至关重要;既然我致力于开发商业智能软件,那么与理解业务分析师、经济学家、销售/财务/会计人员所面临的问题相比,所有这些丰富的 sysadm 知识(当然,远非无用;-)是相当低优先级的,并且战略层面的决策者。
这两个领域可能有点极端(但我确实在不到一年前从一个领域切换到另一个领域!-)但原则是成立的——没有一些了解就无法给出好的答案了解您目前处于或计划进入的应用领域。
【讨论】:
我不明白这类问题。就像“程序员应该对生活了解多少”。答案总是“尽可能”。
第一个问题:您喜欢系统管理并想了解更多吗?如果你喜欢,那就学习吧!
如果系统管理让您呕吐,那就不要,学习其他东西。你想象吗?你非常擅长系统管理员,但你不喜欢这样,你把它写在你的简历上,这样你就可以找到一份可以承担这些责任的工作!
基本上,尽可能多地了解您有某种热情的事物!
【讨论】:
我认为你知道的越少(或让人们知道你知道)越好。我记得在一家公司,有人来我们房间寻求计算机问题的帮助。我总是假装我不知道如何帮助他们,但我的一位同事总是帮助他们——他们获得了免费的 IT 支持,我认为那个人的工作方向不对。
就纯管理员知识而言,这是一个难题,我遇到的大多数管理员都不知道如何设置或配置应用程序服务器、数据库、ldaps。因此,要使这些工作具有良好的性能,您需要逐步指导他们该做什么。这些知识真的很有用。
【讨论】:
真的取决于你用哪种语言编程。我以前做过很多 c/c++,那里的管理员不多。
但是对于网络来说,感觉我一半的工作就是学习如何成为一名系统管理员。只需对系统配置、服务器备份和 cronjobs 有一点了解,就可以在这里完成很多优化。
我们的服务器设置产生了比我可以优化的代码更多的性能提升。花一天的时间作为系统管理员在整个站点上获得 100% 的性能提升,或者花一天的时间作为程序员获得 100% 的单个组件增益?任何程序员都会选择成为那一天的系统管理员。
并且我们的站点部署、数据库设置/迁移是自动的。这可能是因为我们没有“真正的系统管理员”(初创公司 - 选择你自己的头衔!),但我看不出在没有系统知识的情况下如何编写好的/快速/可靠的 Web 应用程序在它后面。
必须说,凭借我最近获得的所有系统管理员知识,作为一名程序员,我开始看到新的可能性和解决方案。所以我的建议是,尽可能多地了解它背后的系统,它会有所收获。
【讨论】: