在过去的三年里,我的大部分工作主要是维护那些需要修补的遗留系统,或者在再次出售之前偶尔进行一些改进。
我理解专注于维护的程序员在拥有大量项目和有限开发人员的公司中所扮演的关键角色。
但是,当我评价我目前的职业进展时,看看我的同行,承包商和企业开发商,我确实觉得自己远远落后于别人,因为我已经在我接触到的领域中获得了很大的广度,但我的深度并不深。我已经开始着手解决这个问题,开始写一个博客,做我自己的小型git中心项目,并重新安排我的生活,让我有时间在工作后定期进行个人编码。
我觉得如果我到其他公司面试,逃避维修工作,我便要说自己在技术水平上是相当初级的,因为对于一个有三年工作经验的人来说,我不可能有足够的知识,专注于某一条发展特色的道路。因此,从长远来看,我目前一半的工作经验都是徒劳的。
但这就引出了我的主要问题,抱歉,如果这感觉过于集中于我的个人困境,:
专用的维护编程角色最终会对早期的职业生涯有害吗?其他程序员避免这样的角色是正确的吗?做这一行工作是否会让你陷入类似的任务,除非你准备从低年级开始?
发布于 2013-06-04 10:02:26
专用的维护编程角色最终会对早期的职业生涯有害吗?其他程序员避免这样的角色是正确的吗?做这一行工作是否会让你陷入类似的任务,除非你准备从低年级开始?
首先,你应该知道你有相当一段时间被认为是个初级学生。你可能会得到任意提升,因为你很好,这是唯一的方式给你一个体面的工资,但你仍然会被认为是一个初级阶段,当你开始你的下一份工作。
第二,如果我雇用的人有2-4年的工作经验,我真的不在乎他们的工作是否是纯粹的维护。如果你在维修方面花了10年时间,而我正在为一个绿地项目招聘,我可能会有问题,但是,在最初的几年里,我真的有点期待。
另一方面,如果我雇用一个从未从事过维修工作的人,我会更加怀疑。我有很多求职者,他们花了4年的时间从一个“好”工作跳到另一个“好”工作,而每个人都对什么是可维护的代码一无所知。而且,毫无疑问,如果我正在为我打算坚持的绿地项目招聘人员,我不关心您是否要维护代码,我关心的是您知道如何让它为未来的开发人员维护。
你提到的其他程序员,他们避免这样的工作,通常是因为他们不那么有趣,而不是因为这阻碍了他们的职业发展。
最后,您应该知道,软件开发工作中有很大一部分(我保守地估计大约80%)是50%以上的维护。
所以,把这一切都说清楚,然后回答你的问题:不,我不认为这会妨碍你的事业。除非你在那里呆得太久。通常的经验法则是“一旦你开始觉得自己每年都在获得同样的经验,就该走了。”如果你觉得,每一年,你都比去年做得更好,你就会很好(对我来说,在我职业生涯的20年里,就像你一样)。
发布于 2013-06-04 08:59:26
在任何工作中,你所获得的经验都是特定于你正在做的事情,这限制了你根据这些经验申请其他工作的可能性。它并不是专门用于维护的。我认为其他问题比维护或新软件开发更相关:
不过,我不会太担心。你说的一件事是:
我在接触到的区域上获得了很大的广度,但没有多少深度。
不要认为这是一个问题,因为它可以利用你的优势。拥有丰富的经验意味着你可以说“是的,我已经做到了。”许多工作要求在几种不同的技术和任务方面有经验。您可能比在一项技术方面有非常丰富经验的开发人员更有优势。
此外,许多工作涉及到维护和新开发的混合。如果您想要进行更多的新开发,您可以使用现有的维护经验转换为一个混合角色,这将给您提供更多的开发经验。
总之,你的简历可能比你想象的要好。很多事情都取决于你对自己的经验分析得有多好,然后在申请和面试过程中交流这些优势。
发布于 2013-06-04 14:48:36
专用的维护编程角色最终会对早期的职业生涯有害吗?
通常情况下--是的,假设:
但这并不意味着情况总是如此。
维护软件的人很少被鼓励(见下面的编辑)来做研究,很少能插入新的库或DB,花几天的时间来了解它是如何工作的。它(通常)是一项稳定的工作,需要对现有代码库进行最少的更改,从而“塑造”以后处理问题的方式。我可以举出很多公司的例子,这些公司都有维护软件的策略,明确规定“代码中的变化越少越好”,尽管这会带来一些不好的事情。
其他程序员避免这样的角色是正确的吗?
我知道非常好的维护人员,他们喜欢他们的工作,不想申请其他的东西,恰恰是因为他们所在的地方很舒服。并不是每个人都喜欢时不时地学习新东西。因此-避免或寻找它取决于你的喜好。
做这一行工作是否会让你陷入类似的任务,除非你准备从低年级开始?
很多时候-是的。因为你已经有了这样做的经验,因为你已经“知道诀窍”等等,但是换班是绝对有可能的,而且不需要申请初级职位就可以实现。你已经开始在一旁做事了,坚持下去吧!这实际上是非常值得的,可以缩小你注意到的“技能差距”。
编辑: Dan指出(非常正确),维护任务通常可以通过研究来完成。那是真的。为了更好地解决这个问题,我在两个地方更改了上面的答案。
这样的任务当然可以这样做,如果他们是伟大的!然而,AFAIK遗留系统的大多数专用维护人员都有策略或管理期望和最后期限,这些策略或管理期望和最后期限--通常情况下--迫使他们以尽可能少的变化来解决问题。压力往往很大,即使你可以这样做,你也可能不想这样做。特别是如果它不是您的代码:如果没有理论(按照Ryle和Naur的说法),那么您所面临的危害要比修复的风险更大。
尽管如此,应该注意到:我没有硬的全球数据,我根据我自己的经验--我作为OP在一种情况下工作,我招募了具有4-10年维护经验的人,我和许多维护人员交谈过,我认识一些从事专门维护工作的人。不仅仅是为新事物编写代码的人,还包括维护项目专用维护者的人,他们唯一的工作就是做but和补丁,甚至不是一个新特性,因为这是一个旧的项目,现在它只处于“维护模式”。
https://softwareengineering.stackexchange.com/questions/200362
复制相似问题