在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
日常工作中程序员最讨厌哪些工作事项?任何工作都有好和坏的一面,每个领域和职业都有它的优点和缺点,大多数时候人们只谈论优点而忽视了缺点,有时候缺点都超过其优点。
软件开发作为一个职业在过去几年里呈现出爆发式发展,随着入门培训的普及和持续的跨行业渗透,现在确实是成为开发者的好时机。然而,在软件工程光鲜亮丽的背后有着不那么迷人的一面。如果你想像我一样进入软件开发行业,那么在投入大量时间、精力和金钱之前了解一些残酷的真相。
任何工作都有好和坏的一面,但是我想说的是如果你有70%以上的时间在享受你的工作,那么你就算有了一份很棒的工作。就我个人而言,我很喜欢开发工作,但我还是要指出那30%令人生厌的部分,那些反复出现的问题真的很让人崩溃。
随着时间的推移任何工作都会暴露出很多问题,但在软件开发领域有某些问题却总是在我的职业生涯里反复出现。接下来谈谈作为开发者最讨厌的5件事:
一、调试那些不在你掌控中的代码问题
找bug,bug隐藏于某一行代码中的某个逻辑,如跳过了一个步骤或者调错了一个方法。在所有类型的bug中,这种能通过上下文调试定位到具体位置的bug算是最好修复的,因为我们能找到他并且进行修复。然而那些从第三方库里引入的bug呢?
作为开发者调试那些你无法轻松访问的代码才是更具挑战和令人崩溃的。也许这是一个你亲手引入的库,但是由于库已经被压缩或者编译使得可读性极差。那么假如这个库是开源的,是否就值得庆幸呢?并非总是如此,而且开源库的bug往往是最难处理的。你需要花费额外的时间设计环境来隔离并单独复现这个bug,这样你才能将问题发送给开源库的所有者,并寄望于他们能够按照你的时间表进行修复。
许多团队都不得不面对这些问题,可以通过选择开源项目或者本土解决方案来缓解,但如果没有选择你只能硬着头皮上。
二、维护一个没有任何资料的旧项目
假设你是一个训练有素、经验丰富的生存专家,决定参加一档类似荒野独居的真人秀节目。你已经在这个领域投入了数千小时,是此类工作的专家拥有许多成功经历。与以往不同的是这个赛季你将被随机选中并且被投放到一个你完全不了解的环境。按照经验要成功存活下来需要知道你要去的地点,那里是什么样的或许还有一些成功的方法;你需要知道为什么要带某些物品,它们如何使用,也许还要向一些有经验的伙伴取取经;你需要知道什么方法是有效的,什么是无效的,也许还有一些独一无二的交易技巧。但是,这次不一样,你无从了解上述信息,这将最大程度地挑战你的技能极限。
作为一名开发者接手一个新项目没有任何背景资料,没有任何可以提问的同事就与上面的荒野独居升级版非常相似。软件开发的问题在于解决问题的路径是多样的,人们之所以选择这套方案的原因是系统性的且经过深入探讨的。在一个没有任何背景资料或者求助人的项目中,你可能会遇到许多看似奇怪的设计,并且很难理解为何要这样设计。是因为开发者偷懒吗?还是为了赶工期而做的一种变通?或者是因为外部约束条件迫使这样设计和编码?不可能知道了,一切都像浮云一样飘散了。尽管如此作为开发者你想取得成绩就需要知道如何在这种情况下完成任务。
不幸的是这种项目会使许多开发者无所适从滋生厌恶情绪,这种项目起步缓慢就像是在盲目地探索雷区。这就是为什么风格良好的代码和及时更新的文档如此重要的原因。如果你正在阅读本文不管你已经是开发者还是即将成为开发者,请尽量在你的代码中做好文档说明特别是那些奇特的逻辑,这样当下一个人接手时不管你还能不能提供解答他都会更容易理解一些。
三、不懂的人瞎指挥
软件团队的主要成员包括软件开发者、项目经理和产品负责人,有时候项目经理和产品负责人是同一个人,所以说到底总要有两类人一类负责编码实现一类负责构思他们想要的产品。在大多数情况下,后者会召集利益相关者开会、制定时间计划表并将产品卖给其他人。
这两类人之间的关系对于项目的成功至关重要,有时开发者在团队中干得开心也很重要。大多数时候,开发者被视为"码农",需求不加思索地推给他们,没有过多的讨论,有时还有不切实际的deadline。这些将导致产品匆忙上线,无法达成预期,最终导致产品失败,因为它不像计划中那样顺畅地运行并且经常出故障。
对于开发者来说能够找到一个团队与项目经理或者产品负责人融洽合作,不仅对于产品的成功至关重要同时也增添了工作本身的乐趣。
四、经常被打断无法专注
有许多伟大的工作都需要开发者这个角色,大部分开发者也很珍视他们的工作。作为开发者最令人上瘾的部分就在于,可以将灵光闪现快速地通过编码转变为现实。另一个令人惊叹的部分可以形容为"心流",即深度工作状态,这是一个人在深入工作和思考过程中所体验到的一种完全沉浸式的感觉。在需要高度生产力和创新的环境中这很常见,同样的,许多开发者想要高效编码也需要这种状态。
然而,在当代工作中时间很容易被临时安排的会议或者全天不间断的咨询/疑惑信息所打断。想要进入深度工作状态很难但是被打断却很容易。
此外,软件开发是一项高度个人主义的工作,这意味着你被指派任务和期望指标之后,其他事项都由你安排。然而,由于持续不断的消息和会议打扰,你很难找到足够的时间进入并保持工作状态以完成手头上的任务。这里的关键是你一天中不被打断的时间,因为即使是一些小事导致你切换工作内容也会造成损耗影响工作效率。
找到一段不被打断的时间最好是3-4小时,在那里你可以完全进入状态并专注于你的工作。一天中挤满了各种会议或者更糟糕的是,会议时间间隔30-45分钟,这对许多开发者的生产效率都是有害的。
五、 冒名顶替综合症
对于许多程序员来说,他们迟早会在职业生涯中经历某种程度的冒名顶替综合症。也许是开始一个新项目加入一个新团队或者只是某天中突如其来的坏情绪,让你产生自我怀疑并影响你一整天的工作状态。
梅利姆·韦伯斯持将冒名顶替综合症定义为:一种心理状态,又称自我能力否定倾向具体是指“认为自己不配拥有已经取得的成功或成就,对自己的能力持怀疑态度,认为自己是个冒牌货”的状态。
这是一种适得其反的心理状态,有些人经常经历且难以摆脱,有些人则从来没有。但好在软件社区里有许多人表示他们在职业生涯里都不同程度地经历过这种感觉,并且愿意为其他人提供帮助。
软件工程是一个伟大的领域,对许多人来说风光无限,看起来很有趣并且拥有无穷无尽的机会。然而,每个领域和职业都有它的优点和缺点,大多数时候人们只谈论优点而忽视了缺点,说实话有时候缺点都超过其优点。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
2020年互联网大厂的薪资和职级解析
一直以来,互联网大厂的薪资和职级都为人所津津乐道的存在,相信没有人不向往那些在一线互联网企业内拿着高薪待遇的从业者。那么,大家了解各大互联网企业的薪资水平和考核标准吗?下面小编就以BAT和字节跳动为例,解析一下大家都比较关注的2020年互联网大厂的薪资和职级。
5721
2020-04-23 11:44:12
IT程序员必备的IT基础知识
IT程序员必备的IT基础知识有哪些?提起IT,很多人都会想到编程。IT等于编程吗?IT技能除了编程还有什么?无论你学习的是IT技能中的哪一个,了解一下IT基础知识都是必不可少的。这些基础知识虽然不能帮你掌握一项技能,却能在你学习之前让你对IT有一个大致的了解,这样入门才能更快一些。
4960
2020-06-02 11:27:57
年薪50w的架构师也逃不开裁员风波?
年薪50w的Java架构师也逃不开裁员风波?人人都知道金三银四是跳槽的好时机,但是今年大厂裁员,小厂降薪,工资倒挂,技术碾压。打铁还需自身硬就算拒绝别人制造焦虑,实打实的核心竞争力才是毅力不倒的秘密武器。
2520
2022-03-17 14:25:26
和行业大咖1V1免费聊IT,这是头一次!
这段时间,我们正在筹备一件非常有意义的大事~,并为其赋名为“大计划”。嗯?这是什么大计划,又为什么做呢?
2078
2022-09-29 17:35:20
程序员如何突击面试?两大招带你拿下面试官
我在负责面试的过程中,会经常遇到有些求职者对技术的基础问题一问三不知。 针对这种情况,我们应该怎么办,如何快速搞定技术基础问题呢? 你一定要好好领悟我接下来要给你分享的两个大招了。
2125
2022-11-18 16:55:24