“可中断的程序员”(2010)

2020-05-13 22:37:24

我今年37岁,我做了16年的(专业)开发人员。你可能会认为,在那段时间里,我会想出一种有效的工作风格,既能交付预期的结果(代码削减、产品发货等),又不会造成有害的连锁反应-但不幸的是,你错了。我认为我在职业生涯的前15年里练习手艺的风格与其他所有热情的开发人员大致相同:你投入了大量的时间。每天12到16个小时,晚上和周末的编程马拉松,键盘上的披萨,紧要关头的时间,凌晨3点的调试会议,你就是无法入睡,因为你可以感觉到错误的源头就在你的指尖之外,该死的,绝望的最后一分钟冲刺到最后期限,在世界走向地狱之前,你设法把最后一块东西塞进去,就像杰克·鲍尔(Jack Bauer)一样。如果你在我所说的人群中,你是在睿智地点头,可能还有点咧嘴笑,回忆着过去的考验和荣耀。这种疯狂的奉献在我们的圈子里是受人尊敬的,任何声称获得荣誉的开发人员都非常期待这种疯狂的奉献。

但是,事实证明,这种东西对你的健康没有好处-谁知道呢?那些了解我或关注我博客的人都知道,我曾因为背部问题而被拖着踢着和尖叫着离开我的旧方式,我最初忽略了这些问题,然后试图应对象征性的住宿,最后很大程度上屈服了。作为个体户,这是一个大问题。从我为自己挖的坑里爬出来花了很长时间,也有很多挫折感--我读了很多关于效率的书,试图找到如何继续工作的答案,最后发现,你为自己塑造的答案往往是最好的。我想和大家分享我一路走来学到的一件事。

所以,我想谈谈我遇到的最大的问题:专注期。现在我一次在办公桌前坐的时间不能超过一个小时;如果我不站起来四处走走,做一些温和的伸展运动等,至少经常这样,一旦我真的搬家了,我就会为此付出沉重的代价,可能在接下来的几天里也是如此。我也不能在没有痛苦的情况下实际每天工作超过标准的8小时。这样做的问题是,作为一名程序员,我在15年多的时间里发展起来的风格涉及到逐渐进入专区,一次编码非常长的时间,不间断地进行编码。这在程序员中是一个共同的主题,他们喜欢一次把自己关在外面几个小时,戴上耳机以避免分心,有“安静的时间”等等-这也是为什么我们在被打断时往往会做出非常糟糕的反应。编程需要专注力,而专注力似乎是在阀门系统上运行的-它需要时间来预热,一旦它离开,你就不想关闭它,因为重新启动它是一个主要的麻烦。

我认为这是无可奈何的,于是我开始听天由命,因为它降低了我的工作效率。然而,特别是在过去的6个多月里,我发现,这种“缓慢热身,长时间不间断聚焦”的方法在很大程度上是一种习得行为,而且有可能重新训练自己,以不同的方式应对事情。这有点像当人们学会采用多相睡眠模式时-并不是你做不到,只是当你习惯了以某种方式做事时,改变最初的方式非常非常困难。但这并不是不可能的,只要有足够的动力和时间来调整。

因此,我的目标是让自己在白天适应许多较短的工作块,而不是几个非常大的工作块,同时保持生产力。要做到这一点,关键是要学会如何在尽可能短的时间内回到“区域”--就像多相睡眠者训练自己更快达到快速眼动睡眠的方式一样。我现在大部分时间都在那里,或者至少比以前做得更好,那么,我用了什么技巧来实现这种转变呢?

这与其说是一种技术,不如说是一种深思熟虑的心理调整,它跨越了我接下来要介绍的所有实际方法。您需要接受中断,并学会更好地管理它们,而不是成为不惜一切代价避免中断的典型程序员。这很难-你必须试着搁置多年的抗拒干扰,最初,在你适应之前,你会觉得自己做得不够多。很多人可能会想要放弃,除非有什么特别的东西促使他们坚持到底--对我来说,每天的痛苦是一个很好的动力。我在这里要传达的主要信息是,过渡只是一个阶段,有可能成为一个可以被打断的程序员,但他仍然可以把事情做好。但是你要学会不与之抗争,所以这是第一点。

中断的问题很大程度上是失去上下文。当你在那个区域的时候,你在你的大脑里杂耍着一大堆上下文