完成任务——程序员效率指南

2025-06-07

完成任务——程序员效率指南

本文最初发表于The Simple Programmer。图片和链接由其团队提供。我与一支非常出色的编辑团队合作,这是一次非常棒的经历。总的来说,我认为他们帮助我写出了比我最初预想的更好的文章。我强烈推荐与编辑合作。你需要放弃一些对文章的创作控制权,并融入团队合作的理念,但这绝对值得。你也可以为 Simple Programmer 撰稿。只需提交文章草稿或想法即可!


编程很难。它很有趣,也很有成就感,但绝对不是一件容易的事。想要成功且高效,关键在于能够进入并保持高度专注的状态。

与此同时,宇宙似乎正竭尽全力让你远离这种状态,它会以不规则且难以预测的时间间隔向你推送其他需要你注意的事物:电子邮件、会议、电话等等。

即使你成功地摆脱了所有不必要的干扰,要想成为一名成功且适应良好的员工、同事和普通人,也需要与外界保持一定程度的互动。根据你在任何特定时间“记忆”中存储的信息量,即使是这些微小的干扰也可能足以让你失去注意力,不得不重新回到“工作状态”。

话虽如此,问题来了:你如何记录自己的想法?如何确保所有需要做的事情都完成了?

每个人都有某种系统——即使没有系统,试图记住所有事情,严格来说也是一种系统。我想分享我的系统,因为它看起来效果很好。

有一种相当成熟的方法叫做“Getting Things Done”(GTD),用于管理你必须做的事情。它由大卫·艾伦于2002年左右创立,并在《连线》杂志和Hanselminutes(斯科特·汉塞尔曼的播客)中被讨论过。我从韦斯·博斯和斯科特·托林斯基的“Syntax”播客中了解到它。你可以在“ Getting Things Done”网站上了解更多关于其背后哲学的内容

我会一步步讲解我自己的流程,大致基于GTD方法。我喜欢用一些我自己想出来的朗朗上口的咒语来思考它。

1.什么都不记住,一切都记录下来。

什么都别记。你记性不好。找个地方把所有你需要思考和记住的东西都存起来。

我使用Trello是因为它非常符合我的思维方式。Trello 是一款网页应用,它为用户提供任意数量的看板,这些看板本质上是一块空白画布,最终可以容纳你所有的待办事项、想法、项目以及其他所有东西。

空白 Trello 板

在这些板上,您可以创建列表,即垂直对齐且有序的卡片集合。

带卡片的板子

你可以用这些卡片来存储单独的大脑项目。卡片上可以附加图片、评论、文档(例如本文)、清单,甚至截止日期。我把这个系统称为“另一个大脑”。

对我来说,最重要的功能是 Trello 允许你拖放列表和卡片。你可以创建一个任务,并将该任务的所有信息(包括对话、历史记录和数据)与同一张卡片捆绑在一起,甚至可以将列表用作工作流程控制的一种形式。

例如,你的编程工作流程可能分为几个阶段:待处理的任务、当前正在处理的任务、准备审核的任务,以及已完成并准备在本周发布/推送的任务。你可以在首次接到任务时创建一个卡片,然后在工作时将其从一个列表拖到另一个列表。这个过程可以让你在任何特定时间点清晰地、直观地了解你的进度。

如果您的待办事项列表中有大量事项,并且有人询问您是否有时间再完成一项快速任务,那么您可以查看具体的记录,而不必试图记住所有必须做的事情。

就我个人而言,我倾向于根据事物的类别来列清单。是我想记住以后再读的别人的博客文章吗?是我自己博客的未来构想吗?还是要完成的编程项目?我都列了清单。

列出任务时,尽量按紧急程度和/或容易完成的顺序整理思路。我喜欢把需要(或可以)先完成的事情放在列表底部,然后再逐步向上完成。

对任务进行排序可以让您快速找到下一项需要处理的事情并开始处理,从而最大限度地减少任务管理系统占用的大脑空间。

如果 Trello 不适合你的风格,那就用笔记应用、纸质笔记本或其他工具吧。重要的是,把所有事情都从你的脑子里清除掉!

原因如下。你的大脑容量有限。诚然,你正在阅读《简单程序员》上的文章,所以你的大脑容量可能很大。但容量是有限的。如果你把所有以后要做的事情都记在脑子里,你就没有利用这些空间来思考现在需要做的事情。

尤其对于程序员来说,拥有额外的空间会带来巨大的影响。编程时,你需要能够在脑海中模拟代码,单步执行每一行,并理解该行代码如何影响每个变量的当前值。这个过程必然意味着你需要不断地记住变量值是什么,函数的输入可能是什么,以及——根据这些值——可能触发哪些程序流程分支。

在你的“心理记忆”中拥有容纳所有这些价值观的空间,而不必与包含你 3:30 的牙医预约或你明天早上要对客户说的话的空间相冲突,这可以让你的生活更少出错,更少压力。

就像当你清理办公桌、打扫凌乱的房间或重构代码时你会感觉更好、更有效率一样,这一步也是为了清理你的大脑。

选定信息存储方式后,即可开始操作。操作完成后,您将:

  • 有一个绝妙的想法,
  • 记住你必须要做的事情,
  • 完成一个功能后又遇到了新的问题,
  • 有人在你的办公桌前停下来请你看一下一些东西,
  • 收到一封客户发来的电子邮件,需要详细答复,
  • 或者在会议上分配某项任务,将其放入你的另一个大脑中。

随意美化你的“另一个大脑”,并为大脑的不同部分创建不同的分区。我有一个用于个人/编程的板子,一个用于工作(我设计塑料模具),还有一个用于与妻子共享的家务和待办事项。

我的个人板

2. 你的收件箱是接收区,而不是待办事项列表

清理完主脑并将其卸载到副脑后,你需要阻止所有涌入主脑的垃圾信息,以免弄乱主脑。这些垃圾信息的主要来源,尤其是在职场环境中,就是你的邮箱收件箱。

对我来说,我做了很多面向客户的工作:生成报价、正式化需求,以及与客户一起解决设计问题。对你来说,也许需要处理大量的 QA 工单或提交新的问题。也许你有几个不同的项目,并且从不同的来源收到聊天通知。

我以前总是把东西放在邮箱里,直到处理完为止。后来我意识到,邮箱里塞得满满的,压力山大。感觉好像有上亿件事情要做,却没有分类或整理。一堆💩东西让我感觉很糟糕,也让我焦虑。

现在,我每天都会查看几次邮箱。每件事,只要能快速处理,我就会立即处理。

我脑子里闪过的问题是:“我能在接下来的 30 秒内回答这个问题,而不用停下来查找资料吗?”而且,根据我被“另一个大脑”中尚未追踪的事情压垮的程度,这个时间限制会越来越短。

如果我需要花一点时间才能找到需要回复的答案或信息,我会把它输入到我的“另一个大脑”中,并存档到相应的电子邮件文件夹中。如有疑问,也请将其放入“另一个大脑”中。

不管怎样,它都能快速轻松地从我的收件箱中清除。通常情况下,这能让我在不到一小时内就实现收件箱清空。(希望如此)。

3. 一步一个脚印,把事情做好

整理好所有想法、邮件和别人的请求后,打开你的“另一个大脑”开始工作吧。别被清单上的所有事情吓到,因为清单上的事情可能很多。它是你的“另一个大脑”!

但既然你不必花费宝贵的时间来记住所有要做的事情,你就能完全专注于你的任务。而且,既然你已经预先按重要性排序了想法,你应该能够查看你的清单,找到需要做的第一件事。

去做吧。别想其他事。做完之后,就划掉它、存档它,或者做任何你必须做的事情来结束它。然后找到下一件事。一遍又一遍地做,直到你累了、饿了,或者你的清单空了为止。

这种方法的好处在于,即使你被打断,或者有人慌乱地把事情塞到你队列的最前面,也无所谓。它能让你保持至关重要的深度专注状态,因为把事情放进“另一个脑”远不如实际处理那些可能扰乱你注意力的事情那么费力。你只需把干扰记录到“另一个脑”里,等干扰消失后,你就能马上回到你的任务中!

现在,开始完成任务

就这样。什么都不记,把所有东西从你的大脑邮箱里清空,把所有东西都记录下来,然后集中精力,一点一点地做你能做的事情。

我不再需要花一整天的时间去查看我的收件箱。我不再经常忘记接下来该写什么方法了。我关于项目和帖子的想法也不再只是十五分钟后就消失的零星想法了。

当你编码时,为了知道你的程序在做什么,你必须成为计算机 - 这需要很多的注意力。

就像“你所拥有的一切”的关注程度。

比如,“如果有人在会议中途问你一个问题,你必须睡眼惺忪地盯着他们一秒钟,弄清楚他们是谁,发生了什么事,最后可能会说‘嗯。什么?’”注意力高度集中。

所以,在做这些事的时候,用其他事情分散自己的注意力不仅效率低下,而且完全没必要。拜托!我们是程序员,我们有工具可以帮你搞定。自动化处理,委托他人处理,然后回去做点有趣的事吧。

文章来源:https://dev.to/rpalo/getting-things-done---a-programmer-productivity-guide--93o
PREV
防止 VS Code 成为 IDE
NEXT
数据科学有氧运动 1 - 天气