作为程序员,您希望在编程之外知道多少?

时间:2009-02-03 22:30:47

标签: sysadmin

我想知道你作为程序员做了什么,这不是编程,而是你的任务所必需的(例如:本地设置,服务器设置,部署等)。我很想知道人们正在执行多少非编程相关的任务。

例如,在Web开发项目中,我经常:

  • 安装服务器
  • 管理用户权限/访问服务器
  • 执行备份
  • 配置IIS / Apache
  • 设置FTP站点

在非网络项目中,我经常:

  • 编写构建脚本
  • 设置源代码管理工具/程序
  • 可能更多我不想的东西

某些任务与编程相关的更多(例如编写构建脚本),但其他任务不属于我的专业领域(想到域设置)。只是想知道有多少人在他们的工作中执行与编程无关的任务。

19 个答案:

答案 0 :(得分:24)

可悲的现实是,非技术人员会关注技术人员并期望他们了解与技术相关的所有内容,而不是了解技术中存在我们可能一无所知的专业化。

我经常认为它非常像专门研究特定学科的医生。所有医生都有医学领域的知识基础,但不知道其他专业的具体情况(心脏病专家对麻醉学的了解不多,反之亦然)。

因此,虽然我认为人们期望技术专家知道所有是不合理的,但我认为他们期望我们知道某事是合理的。谈到技术。

我认为这个问题的一个更重要的方面是,人们应该知道他们应用技能的具体领域(金融,制造等)需要多少人知道。我认为非常非常重要,因为拥有领域知识使他们作为程序员更有价值,因为他们可以在深层次上理解问题,从而为他们提供更全面的解决方案

答案 1 :(得分:5)

预期?几乎没有,但是当你了解更多时,每个人都会非常高兴。

在编程的狭窄范围之外,你越了解,你对雇主的价值就越大。

我遇到的事情:

  • 需求收集
  • 编写用例
  • 评估测试计划
  • 与供应商谈判
  • 税法
  • 收入确认规则
  • 关于用户行为方式的想法
  • 基本经济理论
  • 可用性指南
  • 不同国家的消费者行为差异
  • 系统管理(在sysadmin上完整)
  • 数据库配置,优化,设置(基本上是DBA)
  • 监控系统
  • 网络原理和技术(你会惊讶于在调试某些东西时数据包跟踪是多么方便......)
  • 能够评估其他人撰写的商业计划
  • 图片处理
  • 如何分散情况并避免争论
  • 当他们不想
  • 时,如何指责某人并让他们承诺
  • 如何选择战斗

答案 2 :(得分:3)

我认为我在编程工作中使用最多的非编程技巧就是写作。能够解释想法,设计,算法等是非常重要的,你永远不能指望亲自去做(或有时间)。我花了很多时间在工作中编写设计文档和其他文档,以便其他工程师能够了解我的代码和算法。所以我真的很感谢我在学校写了很好的写作课,可以把句子放在一起。 : - )

答案 3 :(得分:2)

可能取决于您工作的公司的规模。作为主要在中小型企业工作的人,我也负责:

数据库创建,管理和调优 支持我推出的内部应用程序 管理网站证书 设置外部主机 我相信还有更多

答案 4 :(得分:1)

好吧,既然程序员的主要工具是他的计算机,我认为假设一些专业知识是公平的。对于不熟悉计算机的人来说,你所描述的大多数事情都很难,但对于了解域并知道如何查找和阅读文档的人来说,这很容易(即使事先经验很少)。

在一个规模大,组织良好的业务或项目中,我希望有一些更熟悉这类行政事务的人能够照顾他们。但是,如果他们没有足够的时间来保证全职工作,那么我认为任何人都没有合理的工作是不合理的;在这方面,程序员可能处于队列的首位。

答案 5 :(得分:1)

我发现用户发现的绝大多数“错误”都是安装应用程序的系统的配置问题。让开发人员了解常见的机器和网络设置错误是非常可取的。

例如,如果应用程序在其操作过程中发送电子邮件,则有助于开发人员在DNS和SMTP配置中了解相关信息。

当然,这取决于您的业务规模,大型组织可能会通过使用其他专家来保护开发人员。

答案 6 :(得分:1)

我意识到我从未被雇用过实际工作,而是作为解决问题的人。无论我是弄清楚发生了什么,并通过代码,软件或网络上的某些东西来解决问题,这似乎是客户想要的主要看法。

答案 7 :(得分:0)

就个人而言,我发现知道更多总是好的,它为下一个层次铺平了道路。生活中最艰难的事情就是整合点。从字面上看。人们非常注重专业化,但不要忘记你需要能跨越这两个领域的人。

答案 8 :(得分:0)

根据您所处的位置,这会有很大差异。我和那些不了解这些东西的人以及那些专家的人一起工作过。

了解这一点对您有很大帮助。一般来说,了解运行代码的环境总是更好。不了解上下文会让你感到无助。

此外,通常存在与代码无关但与配置相关的错误,例如由于apache配置而未显示的页面。如果您不了解环境,那么您在调试方面非常缺乏。

答案 9 :(得分:0)

我的职称是“高级软件工程师”。事实上,在过去几年的大部分时间里,我做了很少的软件开发,但确实做了很多:

系统&网络管理

使用HTML进行静态网页开发(我不考虑编程,尽管我已经完成了PHP,CGI和JavaScript)。

正如其他人所说,帮助台的东西虽然没有过去那么多。

作为一名“任务负责人”,我预计会有一些人/管理技能,尽管通常会编写月度报告。我也经常被CMMi所吸引,这在理想的世界中可能有些相关,但通常只是记录保存,所以雇主可以竞标需要它的新合同。

在科学实验室工作,需要了解一些科学知识,特别是如果你想/需要研究代码进行科学计算。

在(美国)政府机构工作,有大量的文书工作,需要了解很多政府法规(例如信息自由法案)

幸运的是,我最近进行了内部转移,我正在做更多的开发工作,而不是其他的东西!

答案 10 :(得分:0)

这在很大程度上取决于您当前正在开发的软件类型

例如,当我为当地政府开发软件时,我必须学习像

这样的东西
  • 注册动物(宠物)的规则是什么?有哪些类型的注册,适用的折扣,未按时注册的处罚
  • 如何计算议会费率。如何每年提高利率(实际上,提高年率及其实施的算法是迄今为止我遇到的最复杂的任务)。
  • 如何签发建筑许可证。可以执行哪些类型的检查。谁参与颁发建筑许可证(业主,建筑商,建筑师,官员等)的过程
  • 水表多久阅读一次。如何将水表分配给物业,水表上有多少个拨号盘,如何将水表从一个物业中分离出来并附加到另一个物业上
  • 什么是不同的养老金类型。根据养老金类型给予的不同折扣是什么。
  • 什么是不同类型的收据。存在哪些不同类型的终端打印机(用于打印小收据的打印机)以及如何打印它们。
  • 什么是属性,分层子,什么是将属性划分为'parcels'的规则......

嗯,这只是我在项目的两年中学到的非编程内容的一部分。最不幸的是,现在我搬到了另一家公司,我将永远使用这些知识的可能性很小。

答案 11 :(得分:0)

[rant mode on] 哈,Excel和Word的诅咒。

外部工作 - 特别是朋友和家人,但有时在咨询或提供软件时,任何和所有非技术人员都希望您理解这些。当某人要求您查看他们在Office的某些方面遇到的一个小问题时,内部会发出呻吟声。因为它是一个客户,你希望看起来很有帮助,你同意。

只有这种全面的期望,因为您是开发人员,您具有配置电子表格,修复Word模板以及任何和所有其他办公室技术任务的天生知识,此外,您可以将目光投向一些配置不当的Office乱七八糟并立即诊断出问题所在。

我只能设法整理一个电子表格来安排我的重新发票并设置一个Word模板来编写它们。我经常告诉人们 - 但没有人听过。

答案 12 :(得分:0)

这在很大程度上取决于你的编程。如果您正在使用低级设备驱动程序,那么了解底层硬件至关重要。如果你正在做一个独立的Java应用程序,你越了解你正在使用的JVM和库越好 - 但是并不是必须要知道很多。

通常,您对系统环境的了解越多越好。您的同行和管理层希望您了解多少取决于他们。

无知最终会受到惩罚。如果不是由您的同行和管理层,世界将会这样做。查看任何一周的标题或RISKS摘要,以了解系统环境无知导致软件故障的示例。

答案 13 :(得分:0)

你并不孤单。我注册的位置是“ASP.NET Web Developer”......但是,我的工作包括:

  • Windows服务器管理
  • 受限制的Linux管理(运行 top来监控CPU利用率和改变apache配置)
  • LDAP管理/调整
  • MS SQL Server 2005管理/ 调谐
  • 数据库开发
  • Crystal Reports Developer
  • Perl Scripts
  • C#Win32 Developement
  • C#/ ASP.NET Web开发
  • 管理用户访问权限 Windows服务器
  • 有限网络故障排除

在一家不断追求卓越“运营效率”的公司中,我的任务清单只会在白天增长。我也没有列出那份名单。上面提到的所有项目,在过去的3年里,我都曾在这家公司工作过。或者说。

话虽如此,在一个好的开发商店,你应该有一个特定的任务。俗话说,所有行业的杰克......无人掌握。

答案 14 :(得分:0)

让自己接触其他技术是件好事,但我真的认为你没有完全披露你不是这些领域的专家(特别是域名设置)这一事实是个坏主意。我和那些认为他们可以做到这一切的人一起工作过但最终做得那么糟糕,以至于他们花了很多时间(和金钱)试图做到这一点,一位顾问会多次获得报酬。

我曾在一家公司工作,负责“与计算机相关的一切”,包括域名,个人电脑,数据库,自定义软件,构建,MS Office,PowerPoint,Quickbooks ......;一家中型公司,在那里开发和建造;还有一家大公司,我专注于我的项目的.Net代码(其他人处理数据库,另一个处理报告)。

到目前为止,这家中型公司一直是最好的经历(在大公司很新),我有足够的责任感觉有用,并且可以轻松访问其他人,询问有关其他任务的问题。

答案 15 :(得分:0)

通常取决于公司的规模。在一家小公司,你必须知道如何做所有事情,包括系统管理员和网络管理员,即使你的工作专注于编程。

在一家大公司,你可以看到宇宙中的一小部分,而且他们常常不喜欢你在盒子外偷看。你不仅不需要学习所有东西,如果你尝试的话,他们常常对你不满意。

但是,您对机器的理解,工作方式以及它们在操作环境中的运行方式越多,就越容易诊断问题并编写更好的软件。您对编写应用程序的域的了解越多,您就能越好地区分用户需求和他们的需求。

成为软件开发人员最酷的事情之一就是你有一个终生的借口来坚持技术和各种业务领域。如果你已经转移到几个不同的行业,你往往会陷入各种有趣的花絮。总有更多需要学习......

保罗。

答案 16 :(得分:0)

最大的挑战不是与启动和运行环境相关的技术问题,而是在小型商店中有效开发软件所需的领域知识。对我来说,我在一个大多数孤立的开发环境中从各种来源开展了很多不同的项目。这意味着我需要很快加快项目领域的速度,以便有效地开发解决方案。过去,我一直致力于打印会计解决方案,活动目录管理,研究调查数据库,以及目前为慈善组织提供的准CRM解决方案。我希望我只需要知道建立我的发展和建设环境的具体细节。

答案 17 :(得分:0)

在我工作的地方,所有开发人员都应该能够使用Subversion,并且必须能够在他们的PC上设置和配置Apache和Tomcat。

答案 18 :(得分:0)

工作场所周围的人可能希望程序员成为他们的IT HelpDesk人......它发生在我身边。哎呀。