阅读更多

0顶
1踩

非技术

原创新闻 没人比程序员更讨厌软件

2014-10-17 14:45 by 副主编 mengyidan1988 评论(2) 有6255人浏览
本文是程序员大牛、StackOverflow联合创始人Jeff Atwood在博客上发表的一篇文章。该文从数码相机附赠的软件出发,讲述了Jeff Atwood本人对软件的厌恶之情。为什么会这样呢,相信阅读完便会找到其中的答案。



几个月前,我们买了一台新的数码相机,为的是更好地记录我们家小宝贝的成长过程。采购的事情由我太太负责。她小心地打开相机的包装盒,给相机装上电池,然后就开始了首次试拍。像很多电子产品一样,随相机附送的还有一张软件光盘。于是,她不假思索地打开DVD光驱,然后把光盘放了进去。

我眼角的余光碰巧注意到了这一切。说时迟,那时快,我疯了似的从房间的另一头冲过去,同时大叫:“不……要……啊……”——我不顾一切地试图阻止她从那张光盘上安装软件(为了更好地理解当时的情景,你可以以夸张的慢动作来想象一下整个过程)。还好,她停住了,但我也几乎惊走了一只猫。

随数码相机附送的软件其实没啥问题。但真是这样吗?

  • 这个软件可能是不必要的。任何现代的操作系统(甚至是Windows XP)都能浏览并且自动下载一台新数码相机里的照片。不需要什么特别的软件。但为了增加“价值”、与竞争对手形成差异化,相机公司的某些高管草率地采取了捆绑软件的策略——随机附带一款具有一堆古怪而独特功能的软件——这种做法是应被质疑的。
  • 硬件公司通常不擅长做软件。数码相机公司玩得好的是硬件制作,而软件呢,充其量是事后才想起来要做的事,只是一件附属品,在销售人员眼里也不过是锦上添花的玩意儿。
  • 不明来源的软件很可能是由烂程序员开发出来的。抛开别的不说,你即将安装的这款无名软件,它有用而且用户体验良好的概率是很低的。

不幸的是,选择以软件开发作为自己的职业有很多副作用,其中之一便是,久而久之,你会变得厌恶软件。我说的是真正的厌恶!一种强烈的厌恶之情!想象一下你碰到过的最愤怒的用户,把他的情绪乘以1000倍也抵不过我们程序员对软件的感受。没人比程序员更讨厌软件。甚至此时此刻,我在说这个事的时候都感觉到自己的愤怒。

把开发软件作为职业的人会有这种态度,这难道不奇怪吗?我们每天写着代码,因此还得到报酬,怎么还能有怨恨呢?

David Parnas在一次采访中这么解释道:

引用
问:在软件工程中,最常被忽视的风险是什么?
答:无能的程序员。有人估计,美国需要超过20万名程序员。这完全是误导!这不是数量的问题,而是质量问题。一个烂程序员在一年里可以轻易创造两个新的就业机会。雇用更多的烂程序员,只会加大我们对他们的需要。而如果我们有更多优秀的程序员,并且能够让他们脱颖而出,我们对于程序员的需求就会变少,而不是更多。

我怎么如此肯定这世界到处都是无能的程序员呢?因为我就是其中之一。

我们都在香肠加工厂干过活,因此我们知道那玩意儿是怎么做出来的。这事不光彩!大多数软件都是像我们这样的烂程序员(有的比我们更烂)开发出来的。这意味着,大多数软件都是烂货。Scott Berkun曾经写过一篇文章,题为“Why Software Sucks”(为什么软件叫人失望)。文中提到:

引用
当人们说“这东西真烂”,他们的意思是下面的一条或几条:
  • 它非我所需;
  • 我不知所措;
  • 它没必要这么复杂难用;
  • 它故障频出;
  • 它丑陋得让人作呕;
  • 它与我的世界观不相符;
  • 它把我的精力浪费在工具上,而我更应该专注于我的工作。

你觉得与那台数码相机捆绑的软件符合上述几条?我猜全部命中。这也是为什么说,最好别用软件。如若不然,你也要尽可能少用软件,甚至于,只用那些有着良好声誉的确实可靠的软件。

我不喜欢安装新软件。恰恰相反,我对这事很恐惧!

我来讲一个自己做了很多次的噩梦吧。在梦里,我坐在一台电脑面前。这台机器启动了,跑的是我自己开发的操作系统。然后,我打开一个网络浏览器,它也是完完全全由我自己开发的。我访问了一个网站,这个网站也是我自己搭建的。我在页面上刚一点,结果蓝屏了。蓝屏程序本身也蓝屏了,就这样一发不可收拾,引起了一场大爆炸,把整个街区都毁了。

这个梦还算好的。更糟的时候只有尖叫。周围一片漆黑。

总之,我讨厌软件。我讨厌绝大部分软件,尤其是我自己的,因为我知道做好一个软件有多难!这听起来有些奇怪,但对于软件开发者来说,这却是一种自然而健康的态度。你会发现,这是所有有能力的程序员的共识,也是成长的必经之路。

实际上,在面试的过程中,我觉得只要用一个简单的问题,就能判断出一个软件开发者是否有能力:“近期你见过的最糟糕的代码是什么?”

如果他们没有毫不犹豫地回答说“我自己的”,那么你应该立即中止面试。朋友,对不住啦,你对软件讨厌得还不够!过几年再来吧,如果那时候你还在当程序员……(译者/陆其明)
  • 大小: 38.4 KB
来自: CSDN
0
1
评论 共 2 条 请登录后发表评论
2 楼 peterjss 2014-10-21 09:23
被镖中。。。
1 楼 mpren 2014-10-20 17:47

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 程序员考试刷题-software-testing:为大学课程和个人兴趣试验和研究软件测试

    程序员考试刷题软件测试 为大学课程和个人兴趣试验和研究软件测试 软件测试的原因 我们测试软件是因为软件失败了。 在某个地方,不知何故,软件错误演变过程中的某个时间会发生。 下面是一个非常昂贵的失败示例。 ...

  • 为什么没人比程序员更讨厌软件

    几个月前,我们买了一台新的数码相机,为的是更好地记录我们家小宝贝的成长过程。采购的事情由我太太负责。她小心地打开相机的包装盒,给相机装上电池,然后就开始了首次试拍。像很多电子产品一样,随相机附送的还有...

  • 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档。

    程序员最讨厌的两件事:1. 写文档,2. 别人不写文档。大多数开发人员不愿意写 API 文档的原因是写文档短期收益远低于付出的成本,然而并不是所有人都能够坚持做有长期收益的事情的。作为一个前后端分离模式开发的...

  • 你知道比程序员最讨厌的四件事,更严重的问题是什么吗?

    我这个 尼古拉斯·涩郎·非著名程序员的心灵鸡汤,讲的不是坚持的力量,而是面对讨厌而抵制,并战胜讨厌的力量。我们其实大部分程序员都听过这个段子,程序员最讨厌的四件事,是哪四件事呢?写注释、写文档、别人不...

  • 程序员最讨厌的事

    程序员最幽默(ID:humor1024)整理图自:网络【0】程序员最讨厌解释的事情【1】产品经理过来提需求时【2】被生活扼住了喉咙【3】神奇的密码事件【4】程序员最讨厌的9句话【5】让程...

  • 什么样的程序员会让人讨厌

    ... 我有一个朋友,就是一个程序员,找他做事的时候,最让人讨厌了。00不愿意帮我修电脑。我说电脑坏了,想让他看看,他先是叫我检查插头,然后叫我重启,重启好之后,他冷淡的说:以后...

  • 为什么越来越多的人不愿意做程序员?真相会让你哭

    网友一: IT行业的薪水可以说是分分钟秒杀传统行业,这是很多人从事这个的一...编程这种事,没有最好,只有更好,程序员会不停地去思考更好的办法,心魔啊。怕是只有程序员是这个世界上最不会自我满足的人了,对自己

  • 为什么程序员这么讨厌被人问「会不会修电脑」?

    你要知道,这个世界上有那么一类人,他们永远保持着自私的心态。无论什么时候,他们都在为自己的利益做打算。当你说你在银行工作,他们第一个想法是你能不能给搞到贷款或者办张没有额度限制的信用卡。当你说你在医院...

  • 为什么程序员特别讨厌产品改需求?

    软件模型

  • 什么样的程序员会让人讨厌?大家注意,千万不要成为这种程序员!

    什么样的程序员最让人讨厌呢?下面跟着笔者一起来看看,说不定你也被讨厌了! 来自:新浪微博@zFrontier_装备前线 我有一个朋友,就是一个程序员,找他做事的时候,最让人讨厌了。 1.不愿意帮我修电脑。我说...

  • 太香了, 终于明白为什么这么多人要转行软件测试了~

    尤其是在近几年,越来越多的人将软件测试作为转行IT的首要选择,这是为何?1、行业趋势使然在互联网+时代,大数据、云计算等技术的应用,使得未来互联网化是必不可挡的趋势,因此IT行业的市场需求空缺会越来越大,对...

  • 为什么程序员讨厌html,你知道我为什么特别讨厌程序员吗?

    我有一个朋友,就是一个程序员,找他做事的时候,最让人讨厌了。1.不愿意帮我修电脑。我说电脑坏了,想让他看看,他先是叫我检查插头,然后叫我重启,重启好之后,他冷淡的说:以后有事先重启。他明明什么都没有帮忙...

  • 什么是真正的程序员

    这篇文章的原文来自:A Little Printf Story作者仿照《小王子》中的情节,通过小printf遇见的不同类型的程序员,最后悟出什么才是真正的程序员!第一次翻译有很多不妥,欢迎留言指正。 文章略长,但是耐心读完,你...

  • 人工智能会取代程序员吗?

    多亏了人工智能(AI),软件将在未来自行编写。至少,这就是谷歌首席执行官桑达尔·皮查伊(Sundar Pichai)对软件开发未来的看法。...没有人怀疑人工智能每天都在编程方面做得更好。事实上,人工智能驱

  • 为什么很多人不喜欢做程序员?甚至讨厌程序员?

    为什么很多人都不喜欢做程序员? 2014-11-09 分类:程序员人生3人评论 分享到:更多14 本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作! 要想成长为一名优秀的程序员,其过程是艰巨的,其道路是漫长...

  • 《基于YOLOv8的八段锦练习指导系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

  • 大语言模型教育应用中的知识冲突挑战与应对策略

    内容概要:本文详细探讨了大语言模型(LLMs)在教育应用中遇到的知识冲突问题,包括概念定义、事实陈述和逻辑推理层面的认知不一致性。文章分析了知识冲突的技术成因,如训练数据噪声、参数化知识表示的局限、推理机制的缺陷、模型架构的不足及外部知识的偏差,并探讨了这些因素对教育应用的深远影响。文中提出了多维度的解决路径,如通过数据增强优化知识表示、利用提示强化上下文连贯、开发量规完善模型评估等。此外,文章从社会文化的宏观视角剖析了知识冲突的外部驱动因素,探讨如何在多元异质、动态演进的社会建构语境中构建开放进取、兼容融通的智能教育应用体系。 适合人群:从事教育技术研究的学者、教育工作者、人工智能研究人员和技术开发者。 使用场景及目标:①帮助教育工作者理解大语言模型在教育应用中的局限性;②为技术人员提供优化大语言模型教育应用的具体策略;③促进教育人工智能技术的可靠性、适应性和普及性提升。 其他说明:文章强调了知识冲突的有效化解不仅能够提升大语言模型在教育场景中的应用价值,还将为人工智能在更广泛领域的可持续发展奠定坚实基础。

  • 《基于YOLOv8的家具鉴定系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

  • 数据结构day1-思维导图顺序表

    数据结构day1-思维导图顺序表

Global site tag (gtag.js) - Google Analytics