在外行看来,IT行业简直就是“高大上”的代名词,而且在IT公司工作也是一件非常值得骄傲的事情,获得的报酬很高还有各种福利。事实虽然如此,但是大家往往只看到了IT行业风光的一面,没有看到IT男越来原高的发际线和越来越臃肿的啤酒肚,在IT行业总有各种事情能够把你逼疯,所以在这个行业不仅仅需要比较高的智商,还需要强大的心理素质和抗压能力,不然产品经理一天之内改三遍需求,可能你就要抄家伙和他拼命了。本文就分享了论坛上大家评选出的最能把IT人逼疯的8件事。
整天坐着
除非你有带跑步机的办公桌,否则软件开发肯定不会是一个有氧活动。大多数程序员往往长时间地坐着,蜷缩在键盘上,盯着他们的计算机显示器。虽然说坐着比站着舒服,但总是这么坐着,坐久了就会变得很不舒服。这也是一件令人沮丧的事。
- “整天坐在椅子上,两眼紧盯屏幕。一段时间以后——首先是背部发起了抗议,接下来是颈椎喊不舒服,眼睛又酸又涩,头疼……腿开始不知道怎么安放……正如我试图用健身,打太极拳,练瑜伽,学气功,骑自行车上班来减轻久坐的痛苦——我真的忍受不了一天8+小时的久坐了。整天被困在办公室里……从太阳升起来,再到太阳下山——坐在那把蠢毙了的椅子上,任凭时光流逝。“——Markus Toman
调试程序
即使是最好、最精心设计的代码也会有bug。所以,理所当然地,开发人员必须定期花费时间来跟踪和修复软件缺陷,无论是他们自己的代码还是别人的代码。尽管有些错误可以很快被发现和镇压,但总有不少bug特会躲猫猫,寻寻觅觅,从而耗去了许多小时的开发时间,更不要提程序员的理智何存了。
- “发现一个难以重现的缺陷,在最糟糕的情况下,通过对相同片段的代码进行随机通过和失败的集成测试来表现!你会有这样一种感觉,感觉自己可能永远找不到那些神秘又邪恶的bug潜伏在代码何处。哎呀呀!”——Emmanuel Ngwane
- “我们编写这样这样大的程序(有时甚至很小),在调试的时候,我们会钻研得很深入,以至于忘记了原来的bug是什么。”——Ayush Bhatnagar
- “调试,特别是当你正在处理涉及成千上万行代码的大项目时。大多数像我这样的极客倾向于使用投影仪调试,因为眼睛会更舒适。“Isaac Perez
糟糕的文档
工作于其他开发人员的代码令人沮丧,但如果代码文档良好的话,至少会减少大量厌恶值。不幸的是,情况并非总是如此。如果软件没有很好的注释或缺乏良好的书面说明它是如何工作的,那么就需要耗费很长很长的时间来调试、增强或集成该软件。此外,对程序员的血压也不利。
- “最令人沮丧的事情是被雇用来工作于一个文档糟糕的软件。它让那些接管项目的人步履维艰。缺乏注释以及写得糟透了的语义,尤其是还要面对先前的程序员留下的一堆bug和错误。“——Angel Angeles III
- “理解某些白痴写的没有文档和没有注释的代码。”——Abhishek Chauhan
- “我,和大多数程序员一样,在维护文档写得不好的代码上花费了更多的时间,而不是在编写新的代码上。”——Walt Karas
不切实际的期望
软件开发人员通常被认为是相当聪明的人。不幸的是,这种观念往往会导致老板、项目经理和销售人员对程序员或程序员的团队在某个日期内可以合理生产的东西产生不切实际的期望,并对可交付的成果过度承诺。反过来,这可能导致开发人员倦怠,使程序员间弥漫不爽不愉悦的氛围。
- “最令人沮丧的事情是,让人们醒悟错误的看法——我真的不是魔法师,我的知识基础有局限,使用可用工具在限定时间内完成的工作是一定的,以及试图向那些从来没有编程过的人解释什么是约束,真的好烦。”——Mark Miller
- “你的老板对你和你的同事有很高的期望,但没有提供足够的时间/资源来满足这些期望,甚至是靠近这些期望。”——Kevin Sekin
- “项目经理或业务分析师向客户承诺给月亮,然后程序员必须这样做,不行也得行。”——Ratnakar Sadasyula
- “我喜欢这样子,当有人问一些微不足道的事情时,就随便抛出一个功能,而这个功能需要用几十年时间推进CompSci领域来实现。”——Vladislav Zorov
其他人破坏我的代码
每个开发人员的代码,在某些时候,必须与其他开发人员编写的代码协同工作。无论是相同软件片段的不同部分,第三方库或工具,还是另一个完全不同的应用程序,没有一个开发人员的代码是一座孤岛。于此产生的不幸是,这意味着在匆忙中,因为不良的沟通或者粗心大意,程序员可能会破坏另一个程序员的代码,从而引发紧张、压力、以及通常还会伴随咒骂。
- “我曾经经历过的最悲催的沮丧是与另一个人共同编写一个程序,他改变了我们需要链接的库而没有告诉我。这意味着我对例程的调用缺少了变量或者添加了变量,甚至更糟的是,代码会在我没有访问的库中崩溃。”——Sheri Fresonke Harper
- 不断地返回去返工你几天前才写的东西,原因是你写的东西’坏掉了’(第n次)——由于其他人(没有讨论)在实现改变更广泛的系统时,或者不测试或者不在乎测试失败——你听到的第一件事是“你的代码坏掉了”。”——Simon Hayes
人们不明白我是做什么的
尽管软件开发人员的数量明显在不断增加,更不用说我们所使用的一切对软件的依赖性也在增加,许多非技术人员仍然不明白软件开发人员究竟是干什么的。对于非技术人员来说,开发人员就是“技术人员”,而没有考虑到软件工作者和硬件工作者之间的区别。持续的误解和错误的期望,特别是来自于家人和朋友的期望,真的会让程序员抓狂。
- “非技术人员似乎有一个常见的误解——既然程序员使用电脑,那么我们肯定知道如何修理它们;这种想当然的看法有点像——假设Jenson Button知道如何驾驶F1赛车,那么他也一定知道如何拆卸和重新组装一个赛车齿轮箱。”——Steve Borthwick
- “是的,我以写代码谋生;但是,对于打印问题或你打不开的配件或无法启动的笔记本电脑,请恕我无能为力。除非你请我吃饭或请我喝啤酒,那么也许我可以提供帮助。”——Phil J
- “向人们解释我不是安装盗版操作系统和其他盗版软件的。”——Anbalagan Jeyabalachandran
- “家人和朋友认为你可以修复任何与电脑相关的东西。无论是硬件还是软件。他们不在乎。最后他们反而会嘲笑你。类似于:“既然你不能修复笔记本电脑的DVD光盘,那你算什么软件工程师?”——Jazib Babar
- “1%-2%的人知道你是做什么的。”——YasinPekşen
缺乏时间
像大多数工作一样,制作好的软件需要时间。不幸的是,在大多数努力中,上级管理者和/或客户通常不愿意等待很长时间,就想得到可正确实现的理想解决方案。因此,软件开发人员常常被迫快速完成某些工作,而这可能会导致攻击,技术债务和文档缺乏,所有这些都可能会造成更多令人头痛的问题,特别是对于那些将来不得不处理这些代码的程序员而言。
- “我想办好事情,但是快速、熟练做事方面就会产生很大的压力。有时它是有道理的,但我感觉当前的编程/商业文化已经在这个方向上走得太远了。”——Tikhon Jelvis
- “在我看来,匆匆忙忙编写的代码我称之为拼装代码,当然我也希望产品中的代码我能写得更优雅。但不妙的是,有一个恒定的时间压力…”——Gene Sewell
- “当你做的很多事情甚至与你知道的何为良好编程实践毫不相干的时候,但是因为快速比质量更重要,你不得不按他们要求你的那样做。”——Jose Palala
- “…时间和资金不够用于正确的解决方案,但却有足够的时间和资金用于修复快速和恶劣的解决方案,一遍又一遍又一遍。”——Romi Awasthy
使用其他人的代码
作为一个软件开发人员,迟早,你得使用其他人写的代码。无论是继承先于你工作之人的遗留代码,第三方API,还是由顾问编写的代码,你都不能完全避免修复、增强和/或整合他人程序的问题。当然,这样做会导致开发人员拔掉一些——或很多根——头发。
- “…最糟糕的地方是,你不得不处理一些其他人的代码,找出来,调试它,调整它。更糟糕的是,如果你前面的人已经离开了公司,那么就真的只能靠你自己摸索了。”——Ratnakar Sadasyula
- “试着破译成千上万行无注释的代码。”——Simon Zhu
- “另一个我认为可能非常令人沮丧的问题是第三方API。你有时会非常依赖它们,然后你发现了一个问题或需要一个新的功能,但特定的API没有给你任何源来解决这个问题,所以你需要询问API的作者,期盼能有最好的结果。”——Kevin Sekin
- “语言和框架bug。你花费几天的时间找出为什么代码不工作的原因。结果却发现不过是触及了语言或框架上的bug。”——John Paul Alcala