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

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

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

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

1.这个软件可能是不必要的。任何现代的操作系统(甚至是Windows XP)都能浏览并且自动下载一台新数码相机里的照片。不需要什么特别的软件。但为了增加“价值”、与竞争对手形成差异化,相机公司的某些高管草率地采取了 捆绑软件的策略——随机附带一款具有一堆古怪而独特功能的软件——这种做法是应被质疑的。

2.硬件公司通常不擅长做软件。数码相机公司玩得好的是硬件制作,而软件呢,充其量是事后才想起来要做的事,只是一件附属品,在销售人员眼里也不过是锦上添花的玩意儿。

3.不明来源的软件很可能是由烂程序员开发出来的。抛开别的不说,你即将安装的这款无名软件,它有用而且用户体验良好的概率是很低的。

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

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

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

问:在软件工程中,最常被忽视的风险是什么?

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

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

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

当人们说“这东西真烂”,他们的意思是下面的一条或几条:

  • 它非我所需;
  • 我不知所措;
  • 它没必要这么复杂难用;
  • 它故障频出;
  • 它丑陋得让人作呕;
  • 它与我的世界观不相符;
  • 它把我的精力浪费在工具上,而我更应该专注于我的工作。

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

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

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

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

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

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

如果他们没有毫不犹豫地回答说“我自己的”,那么你应该立即中止面试。朋友,对不住啦,你对软件讨厌得还不够!过几年再来吧,如果那时候你还在当程序员……

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-09 11:15:27

为什么没人比程序员更讨厌软件的相关文章

没人把程序员当回事儿

编程对很多人来说有点神秘.这就造成了在公司内部,人们对编程的事情产生了很多怀疑和疑惑. 通常,当你不了解一个东西是怎样做成的时,你只能说:可能是这样吧. 如果你从没见过工地,你也许会认为几个星期就能建出一栋大楼. 事实上,在这样的时间内是可以完成这栋建筑的,只是能不能用就不知道了. 如果你看过房子如何建造,跟踪它的建造过程,你能从物理实物看到地基如何浇灌,钢架结构如何搭成,等等. 但给电脑编写程序,或建设一个网站却是不可见的.     除了程序员外,程序代码对其他人来说是接触不到的.程序的运行好

程序员都讨厌开会?

据说程序员都讨厌开会,不知道是不是都,但我确实也不喜欢.「小道消息」的 Fenng 曾经写过在阿里的后两年,他负责数据库团队时,每周会议也是多到让其感觉无法忍受.程序员讨厌写文档是出了名的,但讨厌开会的程度是讨厌写文档的立方,以上推论来自漫画<神秘的程序员>,如下: 有哪些会? 当我打算写这个主题时,反思了下过去都参加过哪些会议,发现有时会莫名其妙的就参加了一些完全无意义的会议.下面我们先看看一般程序员都会碰到哪些会议. 需求会 这类会议一般是产品或项目经理召集,组织参与项目的程序员一起讨论需

如何让程序员更容易的开发Web界面?重构SmartAdmin展示TinyUI框架

序言 如何让程序员更容易的开发Web界面,是一个持久的话题,所有的从事相关开发的公司都会碰到这个问题,并且被这个问题所深深困扰. Tiny框架也不得不直视这个问题,确实来说,想解决这个问题,也是非常有难度与深度的,业界也有各种各样的尝试,这也是有各种各样不同框架出现的原因. Tiny框架构建者认为,完全采用一种框架解决所有问题,是不现实的.而且即使目前找得到一种非常好的框架,暂时可以满足应用需要,但是随着技术的发展,业务的进化,就会慢慢变得不再满足业务需要.因此,Tiny框架构建从不再把做一套U

12 个让项目经理比程序员更痛苦的问题

论语·子张>: 子夏曰:"仕而优则学,学而优则仕". 后半句"学而优则仕"更为人熟知,按我浅薄而世俗的理解,这话的意思是,由学可以致仕,就是说,你学问大了,就能当官.比如苏东坡,比如柳宗元,比如诸遂良,比如孔子,比如李斯,比如苏秦,比如范仲淹,比如欧阳修,比如海瑞,比如杜甫--这种情况,在古代实在是数不胜数. 学而优则仕这种传统,在软件开发领域也有体现:很多人会因为技术工作做得好而走上管理岗位.然而,这样走来的技术领导,在刚晋升时,往往会面临很多问题,经历痛苦

程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager

虽然白底具有最丰富的视觉效果,不过我并不喜欢用白底的编辑器,原因只有一个,保护视力.由于黑色没有光线,而白色包含全部光线,所以黑色对眼睛没有刺激,而白色却具有最强的刺激.对于需要长时间盯住屏幕的程序员来说,白色无疑是对眼睛的最大伤害.以前用Delphi编程一直不觉得眼睛累,因为Delphi提供了蓝底的Classic配色方案和黑底的Twilight方案,我更喜欢用Twilight,曾经有段时间看不到黑底,便没有编程的感觉,真是很怀念Delphi. Visual Studio编辑器很不错,也可以修改

为什么你招聘不到程序员,以及软件如何定义现实世界

文/霍炬 2015 年,互联网创业从火热到"寒冷",但有一件事全年都没有变化,就是大家都觉得招聘不到程序员. 我没有确切的数字知道 2015 年这一年程序员的薪资增长的比例,但是我确切的知道,在 2015 年,一个有3~4 年工作经验的年轻程序员,在北京和上海能拿到的薪水已经接近 2010 年盛大创新院给我的薪水了.要知道,2010 年盛大为了创建创新院,给出的是业界顶级的薪水,而且那时候我已经有 8 年的工作经验了.这不过是 5 年前的事,今天,3 年工作经验的程序员薪水已经到了这个

好的程序员和优秀软件设计师距离有多远?

你不能认为一个程序员还不错,就可以把他推到系统分析师.软件设计师甚至是软件架构师的位置上. 如果你要想在团队或公司里寻找一个能够胜任软件架构师或者是设计师这样重要位置的人时,首先,出现在你的脑子里的想法,我想通常都是在程序员中选一个最好的.不过我觉得你最好别这么干.这样的位置不是随意的找个不错的程序员就可以胜任的.就算把你最资深的程序员晋升到这个位置也未必合适. 也许刚听见你会感觉很荒诞.为什么我不能让一个程序员去做系统设计呢?毕竟,他们都是设计程序的,不是吗?的确,是的,没错.但是,你要明白一

一个程序员在卖软件服务中学到的销售经验

干了将近7年的软件开发,我开发实现了很多有趣的东西.最近,我开始投身销售,研究营销技术--为了我的新应用. 我感到发现客户并理解他们的消费行为是一件非常有挑战性的事情,同时也有很多的乐趣.程序员对销售的典型态度要么认为它不重要--这是最好的情况,最坏的 情况是根本不知道何为销售.在这里我要讲的是非常不同的另一面,希望能带来一些能让大家兴奋的建议.如果你喜欢这些建议,我将会再写一篇. 下面的这些忠告都是来自我经营一个B2B服务软件的经验.也许并不是每个人都能接受,但至少从趣味性和知识性方面还是值得

活动的可访问兼容型应用给程序员带来使用软件的新工具

摘要Active Accessibility推出的目标是方便身患残疾的人士使用电脑--可 用于放大器.屏幕阅读器,以及触觉型鼠标.它还可用来开发驱动其它软件的应用程序,最 后,其模拟用户输入的能力尤其适合测试软件的开发. 本文从Active Accessibility 的 基本概念出发,带你领略一个测试应用程序软件的开发过程.你将会看到这个测试程序是如 何与常用的控件以及其它UI元素交互,并处理随后的WinEvents的. Microsoft Active Accessibility是一种相对较