开云电竞用计算机科学的方法优化个人任务管理我参考了很多文章来优化自己的工作流,始终没能找到最优解。作为一个学生,时间是自由的,于是就陷入时间多,事也很多开云电竞,却不知道应该先做哪件事的境地。每天清晨骑车到实验室的路上干劲满满,脑子里盘算着今天要做什么事。坐上工位,一打开 ToDo 应用,满屏都是待办,立刻陷入了选择困难症开云电竞,还是先打开少数派刷一下日报吧。
最终还是探索出了一套任务管理方案。虽然不是最优解(不然这篇文章也不会拖了半年之久才完成),但是也能够应付现在的工作和生活,勉强达到一些平衡。
在探索过程中,我不知不觉地运用了很多计算机专业知识,每个人的生活工作节奏各不相同开云电竞,但是这些优化思路也许可供参考开云电竞开云电竞。
这是一个老生常谈的问题,少数派也有很多文章论述,在此不赘述。完全区分任务/个人/时间管理是不现实的,也不需要,因此这篇文章都以任务管理指代。
每个人对任务管理的需求程度肯定各不相同,可以参考这篇文章确定自己的工作模式,再决定是否需要任务管理。
我的工作流程围绕着 Microsoft ToDo(下称 ToDo)搭建开云电竞,它很简单,仅提供「我的一天」,任务清单、截止日期、星标任务等功能。
稍微介绍一下「我的一天」,它是一个特殊的任务清单。可以将一个待办任务添加到「我的一天」中开云电竞,当天结束后 ToDo 会自动清空该列表,意味着第二天又是一个新的「我的一天」。
在此之前,我沉迷于分类和反思,热衷于整理任务。享受在 Notion 中搭建任务看板,拖拽任务的过程。为了和他人协作,还会将相同的任务同步到飞书文档中,享受 at 同学的过程。每天晚上工作结束后花半个小时的时间整理、分类任务,觉得一天过得特别充实,特别有意义。
但是这类复杂系统就像空中楼阁,时间一紧迫,就迅速崩塌。忙起来的时候,根本没心思去想这个任务是一般重要还是特别重要,应该如何归类这个任务,只知道微信里不断有消息提醒我快点交材料开云电竞,赶紧结束了事。
复杂的系统并不代表是好的系统。复杂系统本身就会带来很大的维护负担,再加上外界干扰(比如导师的夺命连环call),自然导致系统难以持久维护。
任务管理,简单说就是决定什么时候应该做什么事。这么一个看似简单的问题,却难以找到最优解开云电竞。我决定运用专业知识,从计算机科学的角度去解决这个问题,所以首要任务就是——证明这个问题不存在最优解!
这个证明其实也挺难的,虽然我不会证开云电竞。退而求其次,我可以证明任务管理需要很久的时间才能找到最优解开云电竞,这个时间可能会久到离谱。
给定一个物品集合(多个物品),每个物品都有各自的重量和价格。存在一个背包,具有一定容量。我们应该将哪几个物品放进背包开云电竞,使得物品总重量不超过背包的容量,并且背包中的物品总价格最高。
背包问题看上去简单,其实早就被证明是个「难题1」。你可能觉得这有啥难的,为什么不挨个尝试,把物品一一放进去,背包装不下了就再换几个物品,总能试出一个价格最高的方案。计算机也是这么做的,并且做得比人快。但是随着物品数量的增加,将所有方案尝试一遍会消耗大量时间。即使以计算机的速度,还是可能以上千年的时间来遍历,这就是背包问题很「难」的原因开云电竞。
如果将任务看成物品,一天的时间看成背包,那么任务所需时间就对应物品的重量,任务完成收益就对应物品的价格,任务管理其实就是决定将哪些任务放进一天这个背包中,从而使一天内完成的任务价格最高。任务所需时间这个概念相对具体,但是任务完成收益就见仁见智了。每个人对于任务的完成收益看法不同,比如我认为写完一篇论文的收益要比帮导师做一页PPT的收益大(反过来设置收益也显得合理)。
既然任务管理可以无缝地替换成背包问题,那么我无法找到最优解也就合理了,因为这个问题太难了。所以就为任务管理找一个「可行解」吧——不一定最好用,但是能用。
对于每个任务,我需要决策是否将该任务列入「我的一天」。将这个决策过程具像化,就是一棵树(决策树)。每一个选项(是或者否)都像树枝一样开云电竞,引出不同的结果,剪枝优化就是将决策树的枝桠剪去。
用人话来说就是,不是所有任务都值得被放进 ToDo 中。与其不断寻找一个能够满足所有需求的APP,不如简化自己的需求。
首先明确任务管理的目的是提高工作效率,所以我将所有生活类的任务从 ToDo 中移除。有一段时间,我企图在 ToDo 里管理我的全部生活和工作,比如将一些任务分类至「想玩的游戏」开云电竞开云电竞、「想看的电影」、「愿望单」等清单,看上去 ToDo 承载的功能增加了,更有用了,但是反而将我的注意力分散了,没办法快速地确定当日工作内容,反而想着今天应该看什么电影。
移除生活清单后,我还有意识地控制 ToDo 中添加的任务,不再贪婪地将所有想到的可能的任务都添加到 ToDo 中,确保一个任务足够重要才会进入我的决策树。我还定期删除 ToDo 中的任务,因为如果一项任务一直存在开云电竞,那就意味着它不重要,否则早就应该被完成了。
最终,ToDo 中的所有任务通常不超过五个,我只需要选 2-3 个任务添加到「我的一天」,很快速,也很简单。
计算机虽然很快,但是也很健忘,因此在设计程序时,通常倾向于重复利用邻近的数据,这就是系统设计中的「局部性原理」。
以前写论文的时候,我每天会留一些任务在「论文写作」清单中,第二天解决开云电竞,例如“XXX部分可参考XXX论文”。第二天,我打开了写作软件,结果对着大段文字干瞪眼,费尽力气重新回到昨天晚上的思路。可能写着写着我才想起来:哦,我好像昨天记录了一些任务在清单中。然后打开 ToDo 寻找对应的任务,再对照着写作软件开始接着写论文。
依照局部性原理,「论文写作」中的任务,都应该放在写作软件本身,因为这是我在写论文时才需要解决的任务,在 ToDo 中只需要提醒自己写论文。因此我在写论文的时候会在相应地点用括号或者加粗记号标注“此处可参考XXX论文”开云电竞,第二天写论文就可以直接开始按照对应标注完成任务。这种方式也被用在写代码、笔记、少数派文章中。
局部性原理保证了大脑注意力集中,不会因为频繁地上下文切换,忘记需要做什么,使跨天的工作更加流畅。
背包问题中一个重要约束是背包的容量,对应任务管理:如何保证任务管理时,规划的任务能在当天完成开云电竞。一天的工作时间很容易确定,但是没有完成任务的情况下,怎么知道任务所需时间呢?
优秀的时间管理者也许能够熟练地推测出相对准确的任务完成时间,这样每天安排的任务量就会很合理。但是普通人想要准确地推测任务完成时间就比较难了——通常也不需要推测开云电竞,因为总会有人帮你确定任务完成时间。
开个玩笑,评估任务所需时间是很有价值的,也是经常被忽视的开云电竞。如果不去考虑任务所需时间,我就想为每一个任务留整块时间去完成,一上午只解决一个任务开云电竞。当我被临时安排一些活,我的时间就变得支离破碎,不想再去解决规划的任务了。结果我发现一项任务并不需要一整个上午才能完成,如果能够按照小时为粒度进行规划,就可以在一个上午安排好几项任务。
我有意识地去评估每个任务的所需时间,也会利用数学方法去锻炼评估能力。期望值,是经常用于算法分析的数学工具,代表了多次实验后,可能出现状态的平均结果。
如果记录下每次任务「评估完成时间」和「真实完成时间」,就可以知道每次推测是否准确,这个差值可以被称为「推测偏差」。在《黑客与画家》中开云电竞,作者通过计算所有历史任务推测偏差的数学期望,来规划每天的任务安排。
根据历史数据,如果推测偏差的期望为15%,那么我现在评估一项任务需要120分钟完成,实际完成时间很可能是 120+120*0.15=138 分钟。
根据偏差值的数学期望,我就能够有一个大概印象,每一项任务大概需要多久时间才能完成,这样也方便我更高效地规划「我的一天」。
任务管理的本质是个人管理。如果人足够自律,就像一个精密的机器,那完全不需要各种花里胡哨的工具或方,只需要将任务列出来,一个接一个地完成。但是我没那么自律,执行力也不够强,时间表不断被打乱。我还贪心地想用尽可能短的时间完成尽可能多的任务。这些想法促使我不断改变任务管理思路,优化自己的工作流程,不断向理性靠拢。
现在的任务管理系统依旧没有达到最优开云电竞,我还是会某一天,不知道自己要做什么。但是不能将这种迷茫怪罪于系统。它是一个愚蠢的系统,只能等待我的输入。现在有很多聪明的 AI 助手,能够提前想人之所想,智能地规划每日任务,它做不到,我也不想它做到。在改进它的过程中,我才能够发现自己的真实需求。
计算机科学是一门人造的科学,很多理论脱胎于人类社会开云电竞,反过来,被我用于自己。在这个过程中,我完成了任务,但是更重要的是,改变了自己开云电竞,以在未来能够优雅地登上「草台班子」。