程序员的噩梦, 碰到哪条你会崩溃?

2019 年 4 月 2 日 九章算法

如果你问一个程序员他们最糟糕的噩梦是什么?他们也许并不害怕丧尸或者食人魔,但却非常害怕丢失的一个符号,或者找不出的一个Bug。那到底是怎样的噩梦,能让程序员害怕呢?


《算法面试强化》免费试听福利

免费试听内容:

动态规划的解题要领:四个组成部分以及两个意识

常见动态规划类型总结

求最值/计数/可行性


北京时间04/21周日 04:30-06:30a.m

美西时间04/20周六 13:30-15:30


1. 网上找不到答案



像 Stack Exchange 这样的 Q&A 论坛已经成为程序员开发的重要工具了。当然,还有很多其他的网站和开发者论坛,开发人员可以通过这些论坛来帮助他们完成编程任务。

来看程序员们最害怕什么情况发生:

  • 在 StackOverFlow,看见某人的帖子,和你想要得到的答案完全一致,但是却没有任何回复。

  • 在 StackOverFlow 上被引用的答案,和我的情况相同,但是我却没有成功。

  • Google 一个令人头痛的结构问题,唯一的相关答案来自六年前,并且还是自己发布的。



2. 最重要的键盘键坏了



不用说,键盘对于程序员来说非常重要,但并不是所有的键都能被开发人员使用或者重视。有些键在某些编程语言中比其他键使用频率更高,比如 JavaScript、Perl、Objective-C中分号使用更多。程序员也特别喜欢使用快捷键而不是触摸板或者鼠标。因此当你发现程序员冒着冷汗醒来时候,这并不奇怪,因为常常是梦到了他们最常用的键不见了。


来看程序员们最害怕什么情况发生:

  • 我最糟糕的噩梦就是我的分号键坏了。     

  • 空格键坏了。

  • 在写代码时突然发现 Ctrl 键坏了。

  • Ctrl + Z 没有反应所以没法撤销了。                                         


3. 网崩了



像 Stack Exchange 这样的网站挂了,无法搜索问题答案,这无疑是程序员的噩梦。如果根本无法上网,那程序员的天要塌了。毕竟,除了 Q&A  ,网上还有很多其他有用的东西,比如开源软件和代码片段。更不用说,如果没有网络,访问远程服务或云服务,团队成员代码,甚至是你喜欢的音乐会是多么困难。所以如果真想吓唬你的同事,那就说一些更可怕的话,比如 “网崩了”  而不是 “ Boo!”


来看程序员们最害怕什么情况发生:

  • 谷歌服务器永久挂了。

  • 如果网崩了或者谷歌挂了,我们将不得不回到一个更原始的 “黑暗时代”,我们遇到一些错误却不知道怎么做。

  • 说真的,如果网崩了,所有的程序员都会停下工作,开始聊天。Oh my god ! 这真的是噩梦。       


4. 无法重现错误



为了修复 bug,开发人员首先需要在开发环境或者测试环境中重现触发 bug 的条件,然后希望能够找到错误原因并且进行修复测试,而不是只让错误随机发生,无法重现在受控环境中。如果在重要的时候出现 bug,那可能会特别显眼,比如在重要客户面前演示,出现了意外的bug,那真的是程序员的噩梦!


来看程序员们最害怕什么情况发生:

  • bug 只会在 500+ 人面前演示时出现。

  • 在公司内部环境使用没有问题,但在客户的环境中频繁出现 bug。

  • 只有当它不在本机运行,在加载时才会出现错误,并且不能在测试环境中重现 bug,这应该时最糟糕的情况了。

  • 程序或者网站可以在本地服务器运行,但是一旦换其他服务器,它就开始报错了。



5. 没有说明文件或者注释



在没有说明文件或者代码注释的情况下理解其他人的代码是非常困难的,在没有说明文件或者代码注释的情况下写代码更加困难。这并不仅仅适用于在看其他人代码的时候,同时也适用于自己以前写的没有注释的代码。没有说明文件的代码,无论最初是谁写的,都是一个真正的噩梦。


来看程序员们最害怕什么情况发生:

  • 在调试时发现了没有任何说明文件和代码注释的毫无意义的标识符,如S#@*!。

  • 接收一个代码注释非常糟糕的项目简直就是摧毁一个程序员的梦想。

  • 维护十年前没有说明文件的代码,我晚上做梦都能被吓醒!

  • 一年后再看之前没有注释的代码时,你可能会尖叫,“我是怎样实现的?”,“这真的是我写的吗?” 这就像在自己家里迷路一样。



6. 地狱使者——项目经理



无论是程序员还是其他人,没有人会喜欢爱管闲事或者不称职的经理。程序员尤其害怕不懂技术的经理,害怕项目经理过分承诺可实现功能,害怕项目经理低估所需编程时间,还有害怕做技术决策的人,都能让程序员从梦中惊醒。


来看程序员们最害怕什么情况发生:

  • 愚蠢的高层管理人员和他们异想天开的后果。

  • 非编程人员总是认为他们自己是合理的,因为他们在十年前就开始编程了。

  • 最糟糕的噩梦就是“让人抓狂的经理”,他们认为自己资历很高,能够提前完成客户的任何要求。

  • 必须使用另一种语言、不同的工具集和框架来重写整个系统而不是替换一部分,因为一些高层管理人员认为他们自己的方式是最好的,其他任何方式都不如他的。



7. 清理其他人的代码



软件开发人员很少喜欢处理别人的代码,毕竟,另一个程序员的代码总没有自己的好,对吧 ?即使拥有良好说明文件的第三方代码,对于新手来说也是令人头痛的。被要求调试、重构或更新别人很多年前的代码,肯定会让程序员十分生气。


来看程序员们最害怕什么情况发生:

  • 被要求重写和更新一个有“源代码”的程序,而“源代码” 是用 Fortran 语言写的。

  • 我认为程序员所面临的最糟糕的经历就是要负责编写其他人的代码,而这些代码并没有遵循任何标准化的实践方法。

  • 被要求“找到一个bug,与C++代码中的[x]有关”,然后收到了一堆文件,而不是可以编译运行和调试的代码。

  • “Hour of Code” 这代人以及将来我可能会处理的他们写的糟糕代码。



8. 项目需求修改



不管是通过传统瀑布项目管理方法中的正规规范提供的,还是通过敏捷开发环境中的用户提供的,软件开发人员都喜欢清晰的定义、稳定的需求,而不是由于高层突发奇想而改变的需求。对于程序员来说需求的不断变化真的是噩梦。


来看程序员们最害怕什么情况发生:

  • 在结项最后一天收到需求变更的邮件。

  • 特别是需要对数据库模式进行更改,那真的是令人讨厌。

  • 在测试了所有内容,准备明天就投入使用时,你的老板告诉你需求发生了变化,而你必须在今天完成。

  • 一个不清楚自己需求的客户,还一再改变需求。



9. 代码消失了!



无论开发人员在编写软件时投入了多少时间,如果代码意外消失了,那所有的功劳都将成为徒劳。由于各种原因,源代码可能在一眨眼之间就消失了。从简单地忘记保存、到天灾人祸,再到特别讨厌的 bug,不管原因是什么,不管他们多么小心,程序员总是生活在担心代码无缘无故消失的恐惧中。


来看程序员们最害怕什么情况发生:

  • 由于电路问题或自己粗心大意而丢失代码。

  • 当你发布程序时,由于一个小小的编程疏忽,运行程序会导致程序从文件系统中删除,可能还有一大堆其他的重要文件也会被删除。

  • 你匆忙重启系统响应 IDE 的提示,电脑问你是否需要保存文件时,你的脑海中想的是 “YES”,而你却点了 “ NO”。

  • 不小心在错误的目录中输入了 rm-r*。



10. 令人头痛的 IE 浏览器



所有程序员都有一些让他们头疼的东西,但 web 开发人员特别担心必须构建在 IE 上的东西。尽管 IE 仍然是最流行的浏览器之一,但是它也是兼容性较差的浏览器之一。更糟糕的是老版本的浏览器,更难以忍受,但是却拥有更大的用户基础,因此相比其他友好的浏览器需要花更多的时间。


来看程序员们最害怕什么情况发生:

  • 用户使用IE浏览器!

  • 开发人员花在 IE 6上的时间可能是在 Chrome 或 Firefox 等浏览器所花时间的三倍或更多。

  • 正常的代码几乎可以在所有已知的浏览器中完美工作,但你不得不在你的 HTML、CSS、JavaScript 中编写特定的 IE 8 代码。

  • 在只安装了 IE 浏览器的 Windows 环境中开发,需要处理的太多了...... 



11. 生病



确切来说,编程也是一项体力活,就像大多数其他需要整天坐在电脑面前打字的工作一样,没有手臂、手和手指是很难完成工作的。任何对于码农的逻辑思维能力产生负面影响的事情都是程序员的噩梦。


来看程序员们最害怕什么情况发生:

  • 我的手指断了,眼睛看不见了...... 不能再写任何代码了。

  • 我的头脑发生一些问题,以至于我不能像以前一样工作,但我仍然记得我曾经是什么样子。

  • 腕管综合征、肘管综合征等任何阻止你用手的疾病。

  • 早上醒来发现有人偷了你的所有手指!!!



12. 我的 bug 导致有人受伤或死亡



没有开发人员想成为 bug 的主人公,但并不是所有的 bug 都一样坏,有一些 bug 虽然烦人但是却无害,而有些 bug 可能会导致公司或者客户损失严重,甚至可能是一个人的工作。


来看程序员们最害怕什么情况发生:

  • 我搞砸了我现在所在的天然气平台控制系统......

  • 我的 bug 可能会对某人或某些事造成伤害。

  • 我能想到的有红绿灯故障,有人因此死亡......,一些医疗扫描仪将某人辐射而死......,一些军事 GPS 系统不小心将一名飞行员送到了敌方防空......

  • 有人因你的 bug 而死,这的确发生过。



13. 分段错误(segmentation fault)



对于开发人员来说,一个常见的噩梦就是出现分段错误。这是内存访问冲突导致的错误,即试图访问受限内存或执行受限操作。通常这种情况下,内存管理单元会通知操作系统,操作系统又会通知出错进程,大多数情况会导致程序崩溃,最终让开发人员头疼不已,因为他们必须找到问题所在。这就是为什么程序员害怕看到这“出现分段错误”出现在屏幕上。


来看程序员们最害怕什么情况发生:

  • 分段错误是最糟糕的噩梦!

  • 他可能有上百种含义,除非不断运行调试,否则你是不会知道它的含义所在。

  • 不小心出现的指针错误也会把你逼疯。

  • 有经验的程序员能够在几分钟内解决一个 error,但分段错误或者不必要的无限循环...  R.I.P


登录查看更多
0

相关内容

程序员可以指在程序设计与互联网某个专业领域中的专业人士或是从事软件撰写,程序开发、维护的专业人员。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
60+阅读 · 2020年6月26日
Python导论,476页pdf,现代Python计算
专知会员服务
262+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
121+阅读 · 2020年5月10日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
65+阅读 · 2020年3月26日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
程序猿的终极噩梦,祖传代码,一动,修半年!
九章算法
4+阅读 · 2018年12月20日
那个要让程序员财务自由的李奥,招人了!
交易门
3+阅读 · 2018年7月13日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
5+阅读 · 2018年12月18日
Arxiv
6+阅读 · 2018年11月29日
Arxiv
6+阅读 · 2018年1月14日
Arxiv
7+阅读 · 2017年12月26日
VIP会员
相关VIP内容
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
程序猿的终极噩梦,祖传代码,一动,修半年!
九章算法
4+阅读 · 2018年12月20日
那个要让程序员财务自由的李奥,招人了!
交易门
3+阅读 · 2018年7月13日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员