2、高效程序员应该懂得进行知识管理和时间管理。
2.1.时间管理
对于时间管理来说,基本需求是保证能够专注于最重要的事情。因此我需要一个待办事项列表工具和一个能够帮助保证时间箱的工具。我使用“番茄工作法”管理自己的工作和学习时间。具体做法就把时间分成25分钟的时间箱(番茄时段),每个时间箱中排除干扰专注于做最重要的那件事情。我使用Pomodario作为时间箱工具(从下图可以看出,我写到这个地方已经花了十个25分钟)。我用的待办事项列表工具是Remember TheMilk(RTM)。它是一个在线应用,也可离线,具有丰富的标签功能,可与日历程序同步。美中不足的是不支持任务嵌套,我暂时通过标签来作区分。每次开始一个番茄时段之前,都会从RTM里面选择最重要的任务,然后在接下来的时段中,不受干扰地去完成这个任务。
2.2、检索
多数电脑安装的操作系统都是基于图形界面的,为了寻找文档往往需要打开资源管理器(在Mac上是Finder),然后资源管理器会树形展开所存储的资源。为了找到资源,需要用鼠标不断展开/缩放树节点,去寻找文件。这种做法十分低效,找一个文件往往需要半分钟。因此,迫切需要一个工具能够从电脑中快速定位并且启动文件或程序,只要简单输入关键字,
就可以从电脑中把相关的资源列出来。在Windows系统上,我会用Everything和Google桌面。Everything会将系统里所有文件索引,输入关键字就可以把文件名符合关键字的文件列出来,Everything还支持基于正则表达式和通配符的检索,资源消耗很少,速度很快。Google桌面也可以通过关键字检索来定位文件,而且比Everything更强的是它不仅仅对文件名作匹配,也会去匹配文件中的内容。问题是Google桌面功能太多,对我来说太过于重量级,所以我以Everything为主,以Google桌面为
辅。 Mac系统自带了Spotlight,它实现了同样的功能。只要按下Command + Space,就可以直接启动Spotlight输入关键字。