上班摸鱼应该被消灭?

8 minute read

在我们程序员当中有个关于上班生活的段子:

你是干什么的? 程序员。 平时的工作都是在干什么? 我的工作是摸鱼,顺手写点 bug。

最后句话好像很浮夸了,工作时间大部分是在摸鱼,其余时间还专门写 bug,其实不是这样的。我们程序员在工作岗位中其实一直都是勤勤恳恳的,一有问题立马响应解决,即便遇到未能及时解决的,在洗澡或上厕所休息期间可能都在想怎么修复 bug。

人是能够在工作中寻找价值和意义的,有个笑话是说:工作这么累,我会少活十年;如果不工作我一天都活不下去。虽然我们程序员会自黑自己是在摸鱼,但事实上绝大部分时间要么是在写代码,要么是在找代码和程序出问题的解决方案,在思考如何解决问题。

在程序开发当中,如果一段代码卡了你很久,问题就是和预期的结果不一样。而当你调通代码的那一刻,便会觉得身心轻松,编程再无什么困难能够阻挠自己。

img

甚至,有时一段代码卡了你几天,就是无法解决问题。你几乎把能想到的关键词都排列组合,把网页深度优先搜索遍历一遍,在这门技术的各大大群小群问个遍,把所有所有能够解决问题的方法都尝试一遍。这个过程,看起来就好像你只是在单纯地刷网页,在单纯地聊天。所以我们只是看起来在“摸鱼”。

一天,有个小伙伴问我,早上的时候能够写一点算法题、整理一些资料,怀疑是不是我的工作不饱和。我想,就以下方面来讲讲我是怎么“摸鱼”的。

从任务量角度,工作饱和意味着肯定会有工作积压。计算机是能够并行处理任务的,而人是不可能同时处理编程当作的工作的。因此我们可以想一下,如果公司中的工作都堆积在了一个人身上会发生什么?肯定是公司有损失的,因为工作延后了。其次,领导肯定不会放任这种事情的一直发生下去,否则就是他的失职,分配工作不合理。所以英明的领导会在这种事情发生之前,或者事情刚出现苗头的时候就扼杀掉,要么适当拆解将分支任务分配给其他人,要么招聘新人来完成这件事。

从人的生理角度。体力劳动劳动者在长时间进行的工作后,通过补充食物和水能够恢复精力和活力。而编程不仅是一项体力劳动还是一项脑力劳动,虽然也能够通过饮食调节,但脑力的恢复没有体力那么快。可以说编程消耗的是专注力和意志力,需要通过切换工作、听音乐、冥想、散步等其他转移注意力的方式来调节。

工作期间如果一直处于和代码两眼相对的状态,是非常枯燥的。而人是需要社交、需要一定的娱乐休息时间。尤其是在高度专注写代码过程中,是不可能一直坚持写两个小时的,一般半个小时就需要休息一下,刷刷网页、回复些亲朋男女朋友的消息的。

从工作经验角度。如果在工作中我们只做工作职责内的事情,其实大多时候都只是在吃老底,用已有的技能和经验在解决当下的问题。如果工作时间被排得满满的,一方面是这个人没有时间去思考一些优化工作内容的方法,另一方面是他个人如果一直这样发展下去,就没有什么技术的积累了。

事实上,技术的发展非常快,我们程序员也并不是只做一些职责内的事情。有些项目中或多或少有一些技术是自己从未接触过的,只是因为领导感兴趣、外界热门,然后你就懵懵懂懂开始参与了。一些新奇的技术、奇淫的编程技巧也正是你在工作中解决问题的时候学会的。甚至有的程序员会说:一直觉得自己技术很渣,直到离职后开始写简历,发现原来自己已经会了这么多东西了。

从个人成长角度。工作,好比打仗,要随时能打,随时响应。好比 1928 年的年代,毛大大在《中国的红色政权为什么能够存在?》所说。由于当时的中国是一个政治经济发展极不平衡的半殖民地半封建的大国,反革命营垒内部不统一并充满矛盾,因而使许多农村小块革命根据地能够在反革命政权的包围下产生、存活和波浪式地向前扩大。

因此,如果工作重要,打仗重要,就要立即响应。但工作很多时候不可能是完全饱和的,一些程序员可能是真的在摸鱼,刷娱乐视频、玩游戏或者看小说等。但如果你是个有理想、积极的、不甘落后的程序员,你会干什么?你会卷。你会在工作间隙去学习,去看一些技术的书,去练习一些算法题,甚至在工作不忙的时候专门为工作中遇到的问题写一篇技术文章,记录自己的技术影响力。

所以,看到这里,知道摸鱼是否应该被消灭了吧?程序员不是骡子,一直不停地拉磨。反而,程序员是能够的马不停蹄解决公司问题为公司创造价值的,尤其是顶级程序员更是日行千里的汗血宝马,他们需要休息。

最后,引用王垠在《怎样尊重一个程序员》所说结束今天的讨论:

“他们(程序员)处理的问题比常人的困难很多,费脑力多很多,当然他们需要更好的休息,保养,娱乐。”

http://www.yinwang.org/blog-cn/2015/03/03/how-to-respect-a-programmer