《暗时间》这本书中讲到了进度条与规划,以下是原文:
进度条的设计是一个很多人都知道的故事:同样的耗时,如果不给任何进度提示,只是在完成之后才弹出一个完成消息,中间没有任何动态变化,那么整个过程就会让人等得非常焦急,导致一些人干脆把程序关了了事。
如果有进度不断更新,那么对整个过程耗时的心理感受就会远低于实际值,用户也不会郁闷到把程序关了。这里的原因在于,没有进度提示的话,我们无法判断这个等待什么时候才是个尽头。如果有不断增长的进度条,那么我们对于什么时候会达到100%就会有一个粗略的估计,这个估计是一剂定心丸,让我们知道这事情总会并且会在不久的将来完成。
做事情也是同样的道理,善于规划的人,会将目标分割成一个个的里程碑,再将里程碑分割成TODO列表。前阵子流行的GTD方法学,核心的理念就在于,如果你把任务分割了,你就有了进度条,你就知道,事情在不断的进展,你总会完成任务或到达你的目标,你会有一个时间估计。反之如果没有这个分割,整个的任务或目标对你来说就只有两种状态——“完成”和“未完成”,如果不幸是一个比较漫长的目标,那么你会发现你的进度条总是“未完成”,一次又一次的等待未果会耗尽你的耐心,让你下意识的产生“这事什么时候才能完呢?”的疑惑,没有分而治之,你就不知道未来还需要付出多少努力才能达到目的, 这就会让你心生怯意,不敢进一步投入时间,免得血本无归。在这样的心理下,不少人就会选择保守策略——退出,以免到头来花了时间还一事无成。
而所谓的规划其实就是针对这种心理弱点的做事方法。如果你对整个目标的几个重大步骤有清晰的界定,能够对每个步骤的耗时作出靠谱的上界估计,你就不会被不确定的未来,不确定的时间投入感到恐惧,就不会被这种不确定感压迫到过早退出。
设定一个清晰的目标,并把它分割成一个个可完成的小目标,我觉得是一个很不错的方法,于是,我也试着做了一个目标与规划。
我的本职工作是嵌入式开发工程师,我的短期目标是成为一个资深的嵌入式工程师,以下是我的分割([x]
表示已完成,[ ]
表示未完成):
资深嵌入式开发
|
|-- [x] arm 体系结构
|
|-- 硬件原理
| |
| |-- [x] 按键
| |-- [x] 触摸屏
| |-- [x] 液晶
| |-- [ ] 喇叭
| |-- [ ] 麦克风
| |-- [x] uart
| |-- [x] i2c
| |-- [x] spi
| |-- [ ] flash
| \-- [x] 微机工作原理
|
|-- linux 开发
| |
| |-- [x] linux常用命令
| |-- [x] 交叉编译
| |-- [x] Makefile
| |-- [x] 自动化测试
| \-- [x] shell
|
|-- linux 内核
| |
| |-- [ ] 内核初始化
| |-- [ ] 系统初始化
| |-- [ ] 设备驱动
| |-- [ ] 文件系统
| \-- [ ] Bootloaders
|
|
|-- 书籍阅读
| |
| |-- [x] 鸟哥的linux私房菜
| |-- [x] 测试驱动的嵌入式C语言开发
| |-- [x] C elements of style
| |-- [x] 华为技术有限公司c语言编程规范
| \-- [ ] 系统程序员成长之路 -- 李先进
|
\-- C 语言
|
|-- [x] C语言基础
|-- [x] C语言风格要素
|-- [x] 精通C语言
\-- [x] C语言的面象对象编程
当我做完上面的目标分割的时候,我发现有两个心理上的作用:1. 已经完成了很多小目标了,只要完成剩下的就能实现大目标,心理上觉得不想半途而废;2.很清楚下一步该做什么,有目标感。
我有信心我可以完成它。
再后来我又想,如果我做一个3年的目标呢,假设我3年后的目标是年收入30W,而且我也有能力把这个目标分割成可完成的小目标,那么是否真能实现?
年收入30W
|
|-- [ ] 1. xxx
|-- [ ] 2. xxx
|-- [ ] 3. xxx
|-- [ ] 4. xxx
我也不知道,实践出真知。