为什么程序员工作的这么累?

更新日期: 2018-06-13阅读: 2.1k标签: 工作

最近是真的累了。不知不觉之间,已经两三个星期没有锻炼,感觉身体很难受,接下来的日子必须强制自己按时锻炼,按时休息,不然真的是不知道哪天就挂了。

过去一年多,我仗着自己年轻的身体,对计算机的热情,在工作上多使用蛮力,仿佛一个使用朴素算法实现的程序,吭哧吭哧跑个不停。一开始,朴素算法还能在指定的工作时间内完成任务;后来任务越来越多,工作时间之内肯定没法完成,我开始窃取时间,以更长的时间换取任务的完成。我知道这不是一种科学的工作方式,但是在那种时间压力、任务压力之下,也是无可奈何。

无论如何窃取时间,一天总归只有 24 小时。无论如何使用蛮力,也做不到不休不眠。迟早有一天,任务会多到让人感觉厌倦,只是没有想到,这种情况来的这么快。

这种厌倦感已经没法抑制了,小师妹说我最近很萎靡,师兄也说我看起来很憔悴。有一次吃完饭回去的路上,师兄不经意间问道,为什么我们干活干的这么累。也许是职位的不同,作为主管,师兄需要更多优秀的工程师,更多优秀的应届生和实习生。当时我只是苦笑,回答不上来。

后来想想,是啊,为很么我们干活干的这么累?前几天去舟山的路上,我看完了久负盛名的Rework,中译本名叫《重来》。自恋一点háo bù kuā zhāng,我也是一个优秀而高效的研发quán zhàn工程师,为什么却被工作干趴下了?为什么我们一群在“顶级”互联网企业工作的优秀工程师,才服务了区区几万用户就已经累成狗,人家 37signals 几十个人就服务了几百万的用户?

先给自己打脸。

沉迷工作是企业文化中广受赞颂的一种“优良做派”。我们知道工作狂热衷于通宵达旦、加班加点,甚至在办公室打地铺。这些人以累死在项目中为荣,对他们来说,再大的工作量也不在话下。

工作狂的行为不但没有必要,而且愚蠢至极。过多的工作并不带把你对项目更关注,也不代表你做了更多贡献,这仅仅意味着你敢了更多活而已……

工作狂的存在使那些不以加班为乐的员工感到无所适从。在工作狂扎堆的企业环境里,就连“按时上下班”都让人觉得是一种无理的要求了……

工作狂不是英雄,他们没有力挽狂澜,不过是浪费时间而已。真正的英雄早已想出办法、搞定一切,然后回家了。


时间

关于码农的工作时间,有一个臭名昭著的说法是“弹性工作制”。虽然没有硬性的时间规定,但是也有一个约定的时间是 9 点上班 6 点下班,至于传说中的“把活干完之后没人管你干啥”永远只是传说。换个说法,就是上班时间可以比 9 点晚一些,下班时间一般不早于 6 点。在这九个小时中,排除中午吃饭和休息的一两小时,还剩七八小时。可是这里面能让我们投入脑力劳动的时间有多少呢?可怜的不足 3 小时。其余的时间总被各种乱七八糟的事情打断,这个 IM 响个不停,那个邮件收个不停,还有人动不动弄出各种高端大气háo wú yì yì活动、培训来消费这所剩无几的工作时间。于是乎上班时间干不了几个活,好不容易等到别人都下班回家了,总算进入了 coding 时间。之前我总是说,6 点之后有 5 个小时的编程时间,就是这么回事。

如果是一个普通的职业,普通的职位,自然是上班干活,下班走人。可是我们干的不是一般的职业,我们是码农啊。之前我实习的时候就听同事讲过一句精辟的话:“干别的职业请假了就没事了,当码农的请假回来了事还是你的,还得加班干活追赶请假落下的进度”。也许是出于这个原因,我很少请假。

所以说,别的职业时间被浪费就浪费,被占用就被占用,反正下班走人。可是我们是码农诶,弹性工作制诶,所以我们白天上班陪别人玩,晚上加班干活。

如果你总是为了工作而熬夜或者牺牲周末时光,其实并不是因为你有很多工作要做,而是因为你的工作状态不佳。而工作状态不佳就是由打岔引起的……

在这个时段内,封锁即时聊天工具,挂掉电话,关闭邮箱,叫停会议。唯一能做的就是闭嘴、干活。你会惊讶于自己居然能干这么多活……

你的生活被各种干扰包围着,只有你自己才能去发起反击。

有时真是羡慕那些真正的顶级互联网企业的工程师,据说他们一个运维工程师可以运维上万台服务器,这才是搞技术的,这才是效率,比我们不知道高到哪里去。

我能做些什么呢?尝试在固定时间段关闭 IM,关闭邮箱,在上班时间给自己留出工作时间。反正也不会错过什么重要的事情,如果服务器挂了分分钟就收到短信了,如果老板找不到人直接就电话了,至于好事,能有啥好事?


效率

马云那句“梦想还是要有的,万一实现了呢”随着阿里赴美上市传遍大江南北,于是平时听老板们演讲时总能听到的是“我们要给XX赋能,让他们效率更高,能够给消费者提供更好的服务,帮助他们实现梦想”之类的。

阿里巴巴正是通过帮客户赚钱,帮客户成长,最终才使自己赚取合理利润的,这也正是阿里巴巴能取得今天成绩的文化实质。在赚钱这一点上后天下之乐而乐是合理的,然而在帮助合作伙伴提升效率上,是否还能后天下之乐而乐,就值得商榷了。如果我们自己都在以一种低效的方式工作,怎么能够做到帮助客户,帮助合作伙伴提升效率?

一直以来,我总是感觉单兵作战,比如我在做自己的业余项目,或者给某个开源软件贡献代码的时候,效率最高。一方面可能是我能够随心使用业界各种帮助提升效率的工具,另一方面是代码本身来源于我自身真实的需求。

涉及到工作效率上,一方面是要想方设法提高自身的效率,另一方面是要防止自己的效率被外在因素降低。最高效的程序就是不执行任何代码的程序,同理,那些可做可不做的事情,每少做一件,效率就提高一点。

低头拉车,抬头看路。

一头扎进去,埋头干你自己认为应该干的事情,这很简单。而要从中抬头起来问问自己为什么要这么做,则难得多。你需要问自己几个重要的事情,以确定你是否在做真正有意义的事情:

为什么要这么做?你在解决什么问题?这真的有用吗?你加上去的东西有价值吗?这种改变真的会起作用吗?这种方法更简单吗?有其他更值得做的事情吗?这样做值吗?

有时候放弃其实是一步好棋,即使你已经为之投入很多努力,也不要继续把大好的时间浪费在不值得做的事情上。

之前师兄跟我说过,接需求的时候先多想几个为什么,不能随随便便来一个接一个。回想自己这一年来,还真是没做到,没做好。


工具

还没有肉翻到美帝去当码农的经历,身不能至,心向往之。向往的理由之一,就是真正的科技型企业,是会对身在其中的技术人员产生技能加成的,让技术人员能做到之前做不到的事情。

公司有平台、有工具,也有流程、有包袱。前者帮助开发者提高生产力,后者帮助kēng hài开发者降低生产力。很开心看到最近技术部的研发流程向着轻量化的方向迈进,果然是新 Boss 新气象的节奏。

说到平台和工具,不得不赞的就是阿里系技术栈中各种狂拽酷炫屌炸天的 Java 中间件。如果有一天我不想再做业务系统了,那么中间件也许是我的一个选择(当然我更想做的是当独立开发者用自己的作品养家糊口,然后心情好的时候为自由软件贡献代码)。然后除了中间件,我们似乎就没有什么比较通用的拿得出手的工具了,每个应用自己写自己的后台,自己做自己的工具。

说到平台和工具,不得不说的就是各种基础设施了,从代码仓库、集成系统,到知识库、文档库都不像是一个世界级的互联网企业该有的样子,反而像是一个传统的国内软件企业。面对这样的基础设施,真的是连黑都懒得黑了,有这点黑的功夫,还不如想想怎么把自己从刀耕火种中解救出来,然后开始行动。

其实有些地方企业没做好反而对员工来说是个机会,就像每出现一个看起来有前途的新语言新平台,一帮码农就蜂拥而至,仿佛开荒一般的贡献各种基础类库,然后成为新平台上的元老级开发者。

很多时候我们为开源项目贡献代码,一是希望世界因为我们的贡献变得美好一点,二是可以和来自不同地区的同行交流,高手过招(Github 是目前全球最大的男性同性交友平台),三是可以使用各种最新科技高效的做一些有意思的事情。

之前看过一篇文章,说的是《为什么优秀开发者进入 Google 后就不参与开源了》,文中列举了几个原因,其中一个就是 “Google 的开发环境太好了”。虽然现在的 Google 已经不是当年的样子,但是至少它曾经是技术人员的理想环境。

开发者和公司之间的关系其实很微妙的,双方都希望对方先付出,自己后回报。开发者希望公司提供良好的工作环境,完善的基础设施,然后自己开始创造价值;公司则希望开发者先创造价值。这是一种博弈,也是自由市场的自由选择。

当我们不够牛逼的时候,只好自己动手丰衣足食。虽然不可能让自己的工作环境变得向曾经的 Google 一样,但是能够向这样的目标前进一星半点,总归是好的。


挖坑

伯乐在线有一篇源自 Quora 的文章,《程序员如何做到『编程速度又快,Bug 数量又少』?》,把菜鸟程序员黑的体无完肤。工作一年来,回头看看,当年的我也给自己埋了不少雷,挖了不少坑;现在的我是不是在为将来的我埋雷挖坑,我自己都不知道。

其实我们在写代码的时候,是不会故意埋雷的,只不过受限于当时的能力、视野和经验,也就能够做到那种地步。只要我们还在不断练习,不断进步,回头看当初的代码,都会被当年的自己蠢哭。

有些坑因为没时间填,代码又还能工作,渐渐的变成了陈年老坑,随着时间的推移就越来越没法填了。接手的同事一看,这么大一个坑,修养不好的当面就开喷了,修养稍好的恐怕也免不了心谤腹非。

少挖坑,多填自己的坑,也许我们的工作能因此变得更简单。少了陈年老坑的束缚,也许我就能做更多的事情,而不会像现在这么累。


链接: https://www.fly63.com/article/detial/3718

程序员被某公司暴力裁员_程序员遇到裁员该如何应对?

最近华为流出一份文件:全面停止社招,应届生除外。除了华为,还有阿里收缩社招HC,腾讯投资收紧等等,以及其他一些大大小小的互联网公司纷纷爆出缩减招聘。虽然有些公司出来辟谣,但是这些肯定不是空穴来风。

找实习中的一些困惑,如何解决?

对于大三/研二的来说,已经到了春招找暑期实习备战阶段了(最迟学校期末考完试),这个时间点是最合适的,实习怎么找?对于找实习,大三/研二的一定要从战略上重视起来,要有自己的战略、打法,才能打好这一仗;

CSS的工作过程

在平时的工作中,可能都是再用一些框架或者是简单的CSS来修饰我们的HTML页面,那么仔细想想一个资深的前端从业者,是否需要知道他的工作原理和过程呢,技术这种东西,当然是我们了解的越多,才会使用的越得心应手。

如何在工作中快速成长?致工程师的10个简单技巧

最重要的是每次做到只字不差的阅读,然后停下,带着批判性思维从本文中提取出你觉得对的思考方式,并把思考方式关联和迁移到自己身上,经过实践内化成自己的认知,就是非常成功的一次阅读。

十年工作生活路

有个同学问我,工作十年是怎样的一种感觉?我当时想, 没什么特别的感觉呀。我不是从毕业就突然地跳到了未来的十年, 所以确实没啥特别的感觉。

那些看似光鲜亮丽的工作背后都有着不为人知的坑

很多人在找工作的时候都追求单位名称听上去高大上,工作内容看上去华丽丽,可殊不知每一份光鲜亮丽的工作背后也许都有着不为外人所知的“坑”。

裁员潮里如何优雅的找到一份体面工作?

作为一个野生HR,看过几份简历面几个新人,就蠢蠢欲动,充满了上窜下跳指点江山的废话欲望。也可能因为不专业,胡说八道的时候堪称无所畏惧,说的不对的地方大家自己判断一下

程序员如何在工作中自我增值

程序员是否有必要持续不断的提高自身的技术水平?政治正确的说法当然是: 学无止境,技术人员自然应该坚持不懈的提高自己的技术水平啦。但是,一般情况下,一个技术岗位对于从业人员的要求会有两个方面

领导看了会炸毛的溢出理论

大家都知道,程序可以指定启动内存。 但如果你玩的太过火,它就受不了了,就会溢出,不和你玩了。 这不像是你伴着一席春梦的溢出,溢出的感觉不总是好的。

做前端程序员需要会什么,企业的招聘需求是如何?

几乎所有的公司在面试Web前端人员时,准备的技术面试题,都基本上是由三个方面的试题组成,这三个方面的试题分别是:基础试题、JavaScript原生试题和新技术试题。下面说说为什么一份面试题会由这几个方面的内容组成。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!