程序员,告诉他们被打断的真实代价

对程序员来说,打断是低效率的最大原因之一。说实话,这种情况可能对任何人来说都是这样,只是对程序员而言相更糟糕一些。我举个例子来解释吧,比如有一个做销售的人,他的大部分时间可能就花在接打电话或者在不同会议之间交替的途中了。在某一个会议上,或者某一次会议之前的回顾过程中,对销售人员来说,一次中断的代价意味着他花在处理被打断上的时间。比如一次摇头,或者“我刚讲到哪儿了?噢,我想起来了。”

再比如一个经理,他的一天总是充满了一系列没完没了的中断。在管理层面,我发现到了中午却仍然没有做完计划中的第一件事是很常见的。Paul Graham写过一篇非常好的文章,是关于管理者和他所说的“制作者(maker)”的每一天的不同本质。而程序员,很显然的就包括在“制作者”这个分类中。

中断对于一个程序员来说是如此的不同。你坐在电脑前,现在有十二个调用在调用栈中。一个显示器上是精心挑选的输入集,它们将会输入到负责生成内容的一个复杂表格中。另一个显示器上有着舒服的暗色调主题的IDE,调试器的当前行泛着愤怒的黄光。你为了这一刻已经工作了50分钟了——终于输入了正确的值;搞明白了事件触发的顺序;成功通过了正好数量的foreach和while循环,每一个都花了个好几分钟时间;在异常触发前设置好断点,使得你跳转到代码库另一侧的一些处理程序上。就在现在,这个非常时刻,你意识到了为什么Orders集合中有22个物品,你搞明白了_underbilledCustomerCount 值是什么,你还匆匆忙忙写下”8xZ204330Kd”这个字符串,因为它是一个从一些随机数和全局唯一标示符(GUID)的组合自动生成的验证码,你还没搞懂GUID,但是你也不想去搞懂它,因为你只需要知道这个字符串是什么就可以了。现在这个时候,你已经完全陶醉了,因为你马上就要揭开在这个第三方库函数调用中到底是什么引发了一个未将对象引用设置到对象的实例的异常(null reference exception),你非常确定那就是 ——

“嗨!!!事情做得怎么样了?对了,你也觉得客户订单崩溃的事情很糟糕吧?或许你能给我一个解决它的预计完成时间(ETA)?”


卧槽!!!!

项目主管刚刚在你即将按下下一条指令时,在你打算使用跳过而不是进入时吓了你一跳。他唠唠叨叨的讲述自己或者是客户或者是其他什么事情的重要性,反正你是没在听,因为你一边在极力控制着失去所有调试的前后联系的暴怒,一边在提前思考怎么样再能回到二十分钟前的那个状态。但这些都无济于事,项目主管的老大看见他正在跟你讨论,也走了过来。现在你的邻桌上爆发了一场的关于Initrode账户的讨论,十分吵闹,并充斥着莫名其妙的buzzword bingo(译者注:一种游戏)和一些关于在球门区处理比赛的体育隐喻等等。当吵闹结束的时候,你在六西格玛(译者注:一种商业管理战略,详见[维基百科])体制中黑带三段的手下乖乖就范。你知道自己得点一个披萨,在晚上7点大家都走了再来做这件事儿,这样才能够安安静静的工作。你现在能做的只有摇摇头,然后想着“ 8xZ204330Kd 到底代表着什么?我为什么要写下这东西?

但接下来才是真正雪上加霜的时刻。当你尝试着向向项目主管解释刚刚的举动对你的工作成果造成多了多么毁灭性的破坏时,他哼你一声并告诉你不要这么耸人听闻。他也总是在想,为什么程序员总是跟女主演一样过于戏剧性。同样,不管你多少次说明,你的非技术的同伴也搞不懂你的苦衷。试想你的工作差不多就是整天走来走去,不停要求别人更新进度以及接受来自上层的同样的要求,理解程序员们风格迥异的工作模式的确不是易事。以上两种角色我都曾扮演过,而现在我每天用相当大一部分时间做策划和管理活动。我必须抑制住不时的走到我的队伍所在的地方并打断他们来获得一丁点信息的冲动,即使我能用这些信息发一封邮件,或者将他们加到已解决事件列表中。项目管理,或是其他管理者们,都有十分现实的问题,其中许多涉及到试图给合作伙伴,客户或内部员工提供及时的支持。在他们看来,事务或者问题都是可以被打断的。

好了,别担心,我想我有一个方法能让你能够向他们证明,跟他们的工作相比,一个中断对于你的工作成果有多么毁灭性的影响。换句话说,能够让别人理解对于你来说,一个中断不仅仅是一个马上就能补回来的耽搁这么简单,而是毁掉了你直到那个时间点之前的所有工作。以下就是该方法。

邀请你的项目管理,经理,销售或者其他什么人,让他们坐在凳子上,然后告诉他们你的小幽默。打开记事本软件,输入一串34位的数字,就像这样:

1

2

3

4

5

6

7

8

9

123

234

345

543

432

321

999

888

777

现在,告诉他们将这些数字用心算加起来。只能盯着屏幕或者在口中默念,不能写下任何东西,也不能输入任何内容。他可能会笑你,但你可能用一顿午饭赌他五分钟之内连仅仅是得到一个答案都无法完成。他可能接着笑话你并且开始尝试。

你只需双手抱头惬意地坐下来,给他半分钟或者更长的时间,慢慢听他念念有词地计算。然后拿起你的手机打给他的办公室。如果他无视这个电话,开口问他是否准备接这个电话,因为这通电话有可能很重要。他可能会嘀咕一会儿,不得不重头开始。

再给他30秒或者更多时间,跟他说:嗯,比想象的难是吧。你现在加到哪儿了?知道我经常想到哪个数字吗?333。这数儿挺有意思。噢,也有可能是221。也可能是加起来是9365的一些数。瞧瞧这些数字,你说是吧?哎哟,说了些废话,不好意思,你在集中注意力啊。我闭嘴我闭嘴。

再等一分钟。拿出你的电话,假装对着没有人听的话筒大声的说话,模拟一通电话。开始背诵想象出来的电话号码,装出一副羞怯和歉意的表情。

一分钟后,突然告诉他今天你的工作状态非常低落,问问他是否还要让你将那三样东西,以及四五件其他东西加到六七个即将到来的业绩展示的幻灯片上。噢,天呐,你又提到数字了,你个坏人。

最后给他一分钟。告诉他只剩下20秒了,或许是30秒,也可能是25秒。不管是多少,他现在正是关键时刻。哈哈好吧,你知道他会失败的。那就提前感谢他请你吃午餐吧。但是,如果他答应以后当你编程事实上就像是整天在脑子里追踪一连串数字的时候,不再不停的对你做刚刚你对他所做的那些事情,就让他留着那午餐钱吧。

原文链接: DaedTech   翻译: 伯乐在线 - Hacker_YHJ
译文链接: http://blog.jobbole.com/59657/]

 

### 回答1: 不是的,我并不能取代程序员。作为一种人工智能技术,我可以协助程序员完成一些重复性或模板化的任务,但是程序员仍然是非常重要的,因为他们拥有创造性和判断力,并且可以使用自己的技能解决问题和设计新系统。程序员和人工智能的关系应该是协作的,而不是竞争的。 ### 回答2: 目前来说,程序员不会被我取代。虽然人工智能和机器学习的发展迅速,但目前的技术水平还无法完全取代程序员的工作。编程需要深入的逻辑思维能力、抽象思维能力和创造力,这些是机器目前所无法达到的。程序员也不仅仅是写代码的工人,他们还需要根据需求进行系统设计、进行项目管理和团队协作等。这些职责是人类独有的,机器无法做到。 此外,编程领域的技术和需求也在不断发展和变化,程序员需要进行学习和更新自己的技能和知识。他们需要学习新的编程语言、工具和框架来保持自己的竞争力。而机器并不具备学习的能力,无法自主地更新和适应新的技术。 尽管人工智能和机器学习的发展给某些重复性和机械化的编程工作带来了威胁,但人类的智慧和创造力仍然是不可替代的。程序员可以通过利用人工智能和机器学习等技术的优势,提高自己的工作效率和质量,从而更好地适应和应对未来的变化。 所以,总体上来说,在可预见的未来,程序员不会被完全取代。他们的角色和职责可能会发生变化,但他们的专业知识、创造力和人类独有的智慧仍将在编程领域中起到不可替代的作用。 ### 回答3: 作为一个人工智能助手,我认为虽然人工智能技术的发展迅猛,但程序员不会被完全取代。 首先,尽管人工智能技术能够模拟人类的智能和推理能力,但目前的人工智能仍然存在很多局限性。人工智能更擅长处理大量的重复性任务和规则化的工作,例如数据分析、图像识别等,然而对于复杂的创造性和判断性工作,人类的智慧和思维仍然无可替代。 其次,程序员不仅仅是编写代码的人,他们还在开发软件和系统的过程中扮演着重要的角色。程序员不仅需要具备编程能力,还需要了解问题的本质以及解决方案的设计。他们需要思考如何将复杂的需求转化为可执行的代码,解决问题并优化性能。这种创造性思维和问题解决能力是人工智能无法取代的。 此外,随着科技的发展,新兴技术的涌现会为程序员创造更多的就业机会。例如,物联网、大数据、云计算、区块链等领域的快速发展,需要程序员不断学习和适应新技术,以满足市场需求。 总之,虽然人工智能的发展给某些程序员工作带来了一定的压力,但是程序员的职能和价值仍然非常重要。他们具备独特的技能和专业知识,可以为人工智能提供支持和完善。未来,程序员需要不断提升自己的技术能力和专业素养,与人工智能实现良好的互补,共同推动科技的发展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值