PatrickZawadzki 翻译|李腾辉 审稿人|呈现爆发式发展,加上入职培训的火爆和持续的跨行业渗透,现在确实是成为开发者的好时机。然而,在软件工程光鲜亮丽的背后,也有不那么光鲜亮丽的一面。如果您正在考虑像我一样从事软件开发,可能是时候在投入大量时间、精力和金钱之前了解一些严酷的事实。 诚然,任何工作都有好的一面和坏的一面,但我想说,如果你有超过70%的时间享受你的工作,那么你就有一份很棒的工作。就我个人而言,我很喜欢开发工作,但我还是要指出烦人的30%,那些反复出现的问题真是让人崩溃。 随着时间的推移,任何工作都会暴露出很多问题,但在软件开发领域,有一些问题在我的职业生涯中一直反复出现。接下来,让我谈谈作为开发人员最讨厌的5件事(排名不分先后)。1.调试你无法控制的代码问题 没有人想找bug。归根结底,bug就是隐藏在某行代码的某个逻辑中,比如跳了一步或者调用了错误的方法。在所有类型的bug中,这种通过上下文调试可以定位到特定位置的bug是最好修复的,因为我们可以找到它并修复它。但是从第三方库引入的错误呢? 作为开发人员,调试您无法轻松访问的代码更具挑战性和令人沮丧。也许这是你自己导入的库,但它被压缩或编译,导致它非常不可读。那么如果这个库是开源的,值得庆贺吗?并非总是如此,开源库中的错误通常是最难处理的。你需要花额外的时间设计环境,隔离并隔离重现bug,这样你就可以将问题发送给开源库的所有者,希望他们按照你的时间表修复它。 很多团队都不得不面对这些问题。你可以通过选择开源项目或本地解决方案来缓解它们,但如果你别无选择,那就只能硬着头皮了。2.在没有任何文档的情况下维护一个旧项目 想象一下,您是一位训练有素且经验丰富的生存专家,决定加入像Alone这样的真人秀节目。您在该领域投入了数千小时,是此类工作的专家,并且取得了许多成功。与前几季不同的是,这一季你会被随机选中并被扔到一个你不太了解的环境中。根据经验,要想成功生存,你需要知道你要去哪里,那里是什么样子,也许还有一些成功的方法;向经验丰富的合作伙伴学习;您需要知道什么有效,什么无效,也许还有一些独特的交易技巧。但是,这次不一样,以上信息你是无法接触到的,这将最大程度的挑战你的技能极限。 作为一个接手新项目的开发者,没有任何背景资料,没有可以提问的同事,很像上面的荒野大镖客的升级版。软件开发的问题在于解决问题有多种途径,人们选择这种方法的原因是系统的和经过充分讨论的。在一个没有任何背景资料或帮助的项目中,你可能会遇到很多看起来很奇怪的设计,很难理解为什么要这样设计。是因为开发商懒惰吗?还是赶在截止日期之前采取变通办法?还是因为外部的限制,迫使它必须这样设计和编码?不可能知道,一切都像云一样飘走了。尽管如此,如果你想成为一名成功的开发人员,你需要知道如何在这种情况下完成工作。 不幸的是,这种项目在许多开发人员中迷失了方向并滋生了反感,而且起步缓慢,就像盲目地探索雷区。这就是为什么样式良好的代码和最新的文档如此重要的原因。如果您正在阅读本文,无论您已经是开发人员还是即将成为开发人员,请尽量将您的代码文档化,尤其是那些花哨的逻辑,以便下一个人接手时,无论您是否能够提供它他会更容易理解答案。3、不懂软件开发的人一味的直接 软件团队的主要成员有软件开发人员、项目经理、产品负责人。有时候项目经理和产品负责人是同一个人,所以总有两种人,一种负责编码实现,一种负责构思他们想要的产品。在大多数情况下,后者涉及与利益相关者会面、制定时间表并将产品出售给其他人。 这两类人的关系对于项目的成功至关重要,有时开发者在团队中的乐趣也很重要。大多数时候,开发人员被视为“编码员”,需求未经深思熟虑就被推给他们,没有太多讨论,有时还有不切实际的截止日期。这些导致匆忙的产品达不到预期,并最终导致产品失败,因为它没有按计划顺利运行并且经常出现故障。 对于开发者来说,能够找到一个团队并与项目经理或产品负责人和谐共事,不仅对产品的成功至关重要,也能增加工作本身的乐趣。4.缺乏不受打扰的时间有很多伟大的工作需要开发人员的角色,大多数开发人员也很重视他们的工作。作为一名开发人员,最令人上瘾的部分之一是灵感的闪现能以多快的速度编码成现实。另一个惊人的部分可以描述为“流动”,深度工作的状态,一个人在深度工作和思考过程中所体验到的一种完全沉浸的感觉。这在需要高水平生产力和创新的环境中很常见,同样,许多开发人员需要这种状态才能有效地编写代码。 然而,在当代的工作中,时间很容易被整天的即兴会议或不断的询问/困惑的信息打断。进入深度工作很难,但很容易被打扰。 此外,软件开发是一项高度个人主义的工作,这意味着在为您分配任务和期望之后,其他一切都取决于您。然而,由于信息不断和会议中断,可能很难找到足够的时间投入工作并保持高效来完成手头的任务。这里的关键是一天中您没有被打扰的时间,因为即使是导致您切换任务的小事情也会导致磨损并影响工作效率。 找一个不受打扰的时间,最好是3-4小时,可以完全投入并专注于工作的时间,非常重要。一天开会,或者更糟糕的是,会议间隔30-45分钟,这对许多开发人员的工作效率是不利的。5.冒名顶替综合症 对于许多程序员来说,在他们的职业生涯中迟早会经历某种程度的冒名顶替综合症。也许它正在开始一个新项目,加入一个新团队,或者只是因为糟糕的一天而产生自我怀疑并影响你一整天的工作。 MerriamWebster将冒名顶替综合症定义为: 一种心理状态,也称为否定自我能力的倾向,具体指“认为自己不配获得成功或成就,怀疑自己的能力,以及认为自己是假的”。 这是一种适得其反的心态,有些人经常经历并努力摆脱,而其他人则永远不会。但好消息是,在软件界,有很多人表示,他们在职业生涯中不同程度地体验过这种感觉,并希望帮助他人。总结 软件工程是一个伟大的领域,看起来很有趣,对很多人来说都有无限的机会。然而,每个领域和职业都有利有弊,很多时候人们只谈利弊,说实话,有时弊大于利。此外,A是蜂蜜,B是砒霜。 不管你是什么情况,都希望能为那些正在考虑加入或进入软件领域的人提供一些视角。这并不是要吓跑任何人,只是为了向人们展示一个不常被关注的阴暗面。毕竟,意识到这些问题总比完全不知道要好。译者介绍 李腾辉,社区编辑,目前在东南亚某互联网金融独角兽任高级Java工程师,负责金融借贷平台的架构设计和核心建设,对互联网金融有深入研究架构和微服务系统。期待在公募基金领域继续深耕。 原标题:作为开发者我讨厌的5件事 链接:https://thenextweb.com/news/5-things-i-hate-about-being-a-developer
