欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

程序猿为什么老是活得比狗还累? 博客分类: Java 工作编程生活 

程序员文章站 2024-03-21 10:35:16
...

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

 

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

 

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

 

后来想想,是啊,为很麽我们干活干的这麽累?前几天去舟山的路上,我看完了久负盛名的Rework,中译本名叫《重来》(*中译本为《工作大解放》)。自恋一点,我也是一个优秀而高效的研发工程师,为什麽却被工作打败了?为什麽我们一群在「*」网路企业工作的优秀工程师,才服务了区区几万用户就已经累成狗,人家 37signals 几十个人就服务了几百万的用户?

 

先给自己打脸。

 

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

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

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

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

Jason Fried《重来》 卸负篇-工作狂

 

时间

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

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

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

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

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

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

Jason Fried《重来》 效率篇-打岔是效率的敌人

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

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

 

效率

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

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

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

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

 

低头拉车,抬头看路。

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

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

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

Jason Fried《重来》 效率篇-退出的理由

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

 

工具

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

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

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

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

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

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

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

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

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

 

挖坑

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

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

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

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