最令程序员沮丧的 10 件事

更新日期: 2019-11-07阅读: 1.4k标签: 程序员

软件开发是一个伟大的工作——和任何其他工作一样,它也有它的缺点。下面的10件事就是大多数程序员关于编程所无法苟同的。

对于非软件开发人员来说,开发人员的工作看起来一定很甜蜜:很多公司都需求这方面人才,得到的报酬真的很不错,公司给你各种有趣的福利,等等。但是真相却是,虽然,这一切是真的,但如同任何其他的工作一样,程序员也有那些扒拉着头发恨不得拔光的时刻。在软件工程师的一生中,有许多事情可能会让他或她沮丧不已。

基于在线讨论论坛中程序员的评论和投票,我们总结了最令软件开发人员沮丧的10件事情。如果,读完了这些,你依然不改初衷想成为软件开发人员,那么别说我没有提醒过你。


10.硬件

软件,如果没有硬件供其运行的话,自然无法做任何事情。尽管一些软件开发人员在最后依然自欺欺人地想要忽略硬件,但人力所不可避免的是,迟早,他们会在构建或调试程序时面临特定于硬件的问题。这就是为什么一些程序员强烈建议新的软件工程师熟悉运行代码的底层硬件和系统,以减少未来的交恶。

引用:

“任何曾经被调用来调试数据库服务器上的奇怪崩溃或为什么RAID驱动器不能正常工作的程序员,都知道最后发现是硬件问题的话该是一种怎么样的痛苦。”——Steve Borthwick

“程序员讨厌硬件:因为他们总是不能归咎于硬件!”——匿名


9.整天坐着

除非你有带跑步机的办公桌,否则软件开发肯定不会是一个有氧活动。大多数程序员往往长时间地坐着,蜷缩在键盘上,盯着他们的计算机显示器。虽然说坐着比站着舒服,但总是这么坐着,坐久了就会变得很不舒服。这也是一件令人沮丧的事。

引用:

“整天坐在椅子上,两眼紧盯屏幕。一段时间以后——首先是背部发起了抗议,接下来是颈椎喊不舒服,眼睛又酸又涩,头疼……腿开始不知道怎么安放……正如我试图用健身,打太极拳,练瑜伽,学气功,骑自行车上班来减轻久坐的痛苦——我真的忍受不了一天8+小时的久坐了。整天被困在办公室里……从太阳升起来,再到太阳下山——坐在那把蠢毙了的椅子上,任凭时光流逝。“——Markus Toman


8.调试

即使是最好、最精心设计的代码也会有bug。所以,理所当然地,开发人员必须定期花费时间来跟踪和修复软件缺陷,无论是他们自己的代码还是别人的代码。尽管有些错误可以很快被发现和镇压,但总有不少bug特会躲猫猫,寻寻觅觅,从而耗去了许多小时的开发时间,更不要提程序员的理智何存了。

引用:

“发现一个难以重现的缺陷,在最糟糕的情况下,通过对相同片段的代码进行随机通过和失败的集成测试来表现!你会有这样一种感觉,感觉自己可能永远找不到那些神秘又邪恶的bug潜伏在代码何处。哎呀呀!”——Emmanuel Ngwane

“我们编写这样这样大的程序(有时甚至很小),在调试的时候,我们会钻研得很深入,以至于忘记了原来的bug是什么。”——Ayush Bhatnagar

“调试,特别是当你正在处理涉及成千上万行代码的大项目时。大多数像我这样的极客倾向于使用投影仪调试,因为眼睛会更舒适。“Isaac Perez

“Heisenbug(海森堡bug)。”Awal Garg


7.糟糕的文档

工作于其他开发人员的代码令人沮丧,但如果代码文档良好的话,至少会减少大量厌恶值。不幸的是,情况并非总是如此。如果软件没有很好的注释或缺乏良好的书面说明它是如何工作的,那么就需要耗费很长很长的时间来调试、增强或集成该软件。此外,对程序员的血压也不利。

引用:

“最令人沮丧的事情是被雇用来工作于一个文档糟糕的软件。它让那些接管项目的人步履维艰。缺乏注释以及写得糟透了的语义,尤其是还要面对先前的程序员留下的一堆bug和错误。“——Angel Angeles III

“理解某些白痴写的没有文档和没有注释的代码。”——Abhishek Chauhan

“我,和大多数程序员一样,在维护文档写得不好的代码上花费了更多的时间,而不是在编写新的代码上。”——Walt Karas


6.合并代码

源代码控制系统,如Git或Subversion,是一个很好的工具,因为它允许多个开发人员在同一个代码库上同时工作,而无需顾忌他人。但是,最终,代码更改必须提交到存储库,而且可能会发生冲突,例如如果两个开发人员更改了相同的文件或程序的话。在这种情况下,这些更改必须合并在一起。有时这些合并冲突可以简单地解决,但有的时候,并不是手到擒来那样简单。

引用:

“我也不喜欢合并,因为情况往往会是,你想以这种方式改变代码,而我想以那种方式改变代码,那么我们应该如何改变代码?我总能找到一种方式来整合我们双方的更改,但如果真有冲突的话,那将是一个尴尬的过程。”——Jessica Su

“合并冲突——*呀拉索,那就是地狱恶魔*。”Koustuv Sinha


5.不切实际的期望

软件开发人员通常被认为是相当聪明的人。不幸的是,这种观念往往会导致老板、项目经理和销售人员对程序员或程序员的团队在某个日期内可以合理生产的东西产生不切实际的期望,并对可交付的成果过度承诺。反过来,这可能导致开发人员倦怠,使程序员间弥漫不爽不愉悦的氛围。

引用:

“最令人沮丧的事情是,让人们醒悟错误的看法——我真的不是魔法师,我的知识基础有局限,使用可用工具在限定时间内完成的工作是一定的,以及试图向那些从来没有编程过的人解释什么是约束,真的好烦。”——Mark Miller

“你的老板对你和你的同事有很高的期望,但没有提供足够的时间/资源来满足这些期望,甚至是靠近这些期望。”——Kevin Sekin

“项目经理或业务分析师向客户承诺给月亮,然后程序员必须这样做,不行也得行。”——Ratnakar Sadasyula

“我喜欢这样子,当有人问一些微不足道的事情时,就随便抛出一个功能,而这个功能需要用几十年时间推进CompSci领域来实现。”——Vladislav Zorov


4.其他人破坏我的代码

每个开发人员的代码,在某些时候,必须与其他开发人员编写的代码协同工作。无论是相同软件片段的不同部分,第三方库或工具,还是另一个完全不同的应用程序,没有一个开发人员的代码是一座孤岛。于此产生的不幸是,这意味着在匆忙中,因为不良的沟通或者粗心大意,程序员可能会破坏另一个程序员的代码,从而引发紧张、压力、以及通常还会伴随咒骂。

引用:

“我曾经经历过的最悲催的沮丧是与另一个人共同编写一个程序,他改变了我们需要链接的库而没有告诉我。这意味着我对例程的调用缺少了变量或者添加了变量,甚至更糟的是,代码会在我没有访问的库中崩溃。”——Sheri Fresonke Harper

“如果你的代码部分停止工作是因为其他人改变了他们的代码部分。那么通常他们的函数使用了比以前更多的参数。有时,参数被完全消除或被放置在不同的文件中。”——Jessica Su

“不断地返回去返工你几天前才写的东西,原因是你写的东西’坏掉了’(第n次)——由于其他人(没有讨论)在实现改变更广泛的系统时,或者不测试或者不在乎测试失败——你听到的第一件事是“你的代码坏掉了”。”——Simon Hayes


3.人们不明白我是做什么的

尽管软件开发人员的数量明显在不断增加,更不用说我们所使用的一切对软件的依赖性也在增加,许多非技术人员仍然不明白软件开发人员究竟是干什么的。对于非技术人员来说,开发人员就是“技术人员”,而没有考虑到软件工作者和硬件工作者之间的区别。持续的误解和错误的期望,特别是来自于家人和朋友的期望,真的会让程序员抓狂。

引用:

“非技术人员似乎有一个常见的误解——既然程序员使用电脑,那么我们肯定知道如何修理它们;这种想当然的看法有点像——假设Jenson Button知道如何驾驶F1赛车,那么他也一定知道如何拆卸和重新组装一个赛车齿轮箱。”——Steve Borthwick

“是的,我以写代码谋生;但是,对于打印问题或你打不开的配件或无法启动的笔记本电脑,请恕我无能为力。除非你请我吃饭或请我喝啤酒,那么也许我可以提供帮助。”——Phil J

“向人们解释我不是安装盗版操作系统和其他盗版软件的。”——Anbalagan Jeyabalachandran

“家人和朋友认为你可以修复任何与电脑相关的东西。无论是硬件还是软件。他们不在乎。最后他们反而会嘲笑[你]。类似于:“既然你不能修复笔记本电脑的DVD光盘,那你算什么软件工程师?”——Jazib Babar

“1%-2%的人知道你是做什么的。”——YasinPekşen


2.缺乏时间

像大多数工作一样,制作好的软件需要时间。不幸的是,在大多数努力中,上级管理者和/或客户通常不愿意等待很长时间,就想得到可正确实现的理想解决方案。因此,软件开发人员常常被迫快速完成某些工作,而这可能会导致攻击,技术债务和文档缺乏,所有这些都可能会造成更多令人头痛的问题,特别是对于那些将来不得不处理这些代码的程序员而言。

引用:

“我想办好事情,但是快速、熟练做事方面就会产生很大的压力。有时它是有道理的,但我感觉当前的编程/商业文化已经在这个方向上走得太远了。”——Tikhon Jelvis

“在我看来,匆匆忙忙编写的代码我称之为拼装代码,当然我也希望产品中的代码我能写得更优雅。但不妙的是,有一个恒定的时间压力…”——Gene Sewell

“当你做的很多事情甚至与你知道的何为良好编程实践毫不相干的时候,但是因为快速比质量更重要,你不得不按他们要求你的那样做。”——Jose Palala

“…时间和资金不够用于正确的解决方案,但却有足够的时间和资金用于修复快速和恶劣的解决方案,一遍又一遍又一遍。”——Romi Awasthy


1.使用其他人的代码

作为一个软件开发人员,迟早,你得使用其他人写的代码。无论是继承先于你工作之人的遗留代码,第三方api,还是由顾问编写的代码,你都不能完全避免修复、增强和/或整合他人程序的问题。当然,这样做会导致开发人员拔掉一些——或很多根——头发。

引用:

“…最糟糕的地方是,你不得不处理一些其他人的代码,找出来,调试它,调整它。更糟糕的是,如果你前面的人已经离开了公司,那么就真的只能靠你自己摸索了。”——Ratnakar Sadasyula

“试着破译成千上万行无注释的代码。”——Simon Zhu

“我曾经多次处理过由顾问编写的特可怕的代码。”——Joe Samson

“另一个我认为可能非常令人沮丧的问题是第三方API。你有时会非常依赖它们,然后你发现了一个问题或需要一个新的功能,但特定的API没有给你任何源来解决这个问题,所以你需要询问API的作者,期盼能有最好的结果。”——Kevin Sekin

“语言和框架bug。你花费几天的时间找出为什么代码不工作的原因。结果却发现不过是触及了语言或框架上的bug。”——John Paul Alcala

“发现找不到一个写的代码不应该远不合格的人…。”——Nani Tatiana Isobel

链接: https://www.fly63.com/article/detial/8892

1024节日的由来,程序员的你最想对自己说的是什么?【1024程序员节日】

吃饭睡觉写代码,基本都程序猿的大部分生活了,作为从事最累的职业之一的我们终于有了自己的节日,那就是1024。1024向程序员致敬,向自己致敬,向未来致敬。

一个程序员的运气有多重要

互联网注定是一个不能安宁的行业,有一些人在努力引领变化,有一些人在努力适应变化,有一些人在被时代的浪潮淘汰。这个世界唯一变的就是变化,人生唯一不能停的就是学习,说到底,要想不被淘汰,只有不断的学习。

如何成为10倍速的程序员

国外有个词叫做10x Programmer,直译是以一当十的程序员。我并不认为一个技术大牛能完成10个普通程序员的工作,技术大牛会花1/10的时间把工作做完,然后用剩下9/10的时间平衡生活、爱好和未来,所以我仅把10x Programmer叫做10倍速的程序员。

优秀的程序员是不看源码的,这是真的么?

仍是要永远 ctrl+v,永远拿来主义。仍是要时时刻刻对美好满怀期待,对未来充满渴望,对经典心怀敬畏。要记住啊,能原创而不原创,有源码而远源码,才是最无知的成熟。

优秀程序员的十个习惯

优秀程序员有哪些好的习惯:1. 想清楚,再动手写代码,2. 不交流,就会头破血流,3. 文档没人看,但还是要写,4. 一定要写注释,5. 别指望需求会稳定

程序员和用户

我曾经说过,程序员不是一般的人,是具有某种超能里的人。但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情

一个程序员送给大学生弟弟的那些话

分析自己的处境; 做适合自己的选择; 以成长为目的,担负起更多责任,打破对做事的认知; 把握机遇,去锤炼自己; 抛弃一些懒惰,多一些积极;向牛逼的人靠近,向给你提供条件帮助你学习的老师靠近。以上结合了我自己的经历,希望文章能更形象。

程序猿跳槽季,为什么你的薪水总升不上去?【转载】

现在身处跳槽高峰季,作为即将跳槽的我,在这里分享几点建议给大家。众所周知,找工作的前提是面试,面试的前提是过了简历,过了简历的前提是你怎么投。

程序员养生攻略_程序员防猝死指南

程序员在其职业生涯中,健康问题尤为突出。但是大部分程序员只顾码字,却往往忽略了自身的健康问题。这或许是因为写代码太入神,也或许是因为来自老板的压力太大。

程序员笔名、别名_适合程序员的英文名字

一个厉害的程序员,都会有一个牛逼哄哄、有辨识度有个性的英文别名。在公司同事中很更好的称呼,这篇文章翻译整理了一下适合程序员的英文名字

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!