时间是程序员最大的资产,如何有效管理自己的时间必须成为程序员的必修课之一。在我过去几年的工作生活中,深刻感受到开发人员在时间管理上的被动性。程序员是一个高智商的队伍,每个人在每天都会遇到各种挑战,接触到许多新的技术,产生各种行为冲动。但是这些行为冲动往往由于时间和精力的原因无法成为实际,进而产生的挫败感是会限制程序员的创造力的。这里想推荐一种时间管理概念GTD。
GTD概念
GTD全称Getting Things Done,来自于David Allen的一本畅销书《Getting Things Done》。网上流传的中文版本为《尽管去做:无压工作的艺术》,有兴趣的读者可以去这里下载
http://ishare.iask.sina.com.cn/f/8657554.html
GTD的具体做法可以分成
收集,整理,组织,回顾,行动
五个步骤
收集:将所有想法都收集到一个收集栏中
整理:定期或者不定期地对inbox进行整理
整理步骤:
能立即短时间完成的:立即花2分钟完成
不能完成的或者不用完成的:直接放到垃圾箱中
要计划完成的:进行下一步组织工作
组织:
对参考资料的组织:收集完成这个事情需要的文档资料
对下一步行动的组织:
将计划分为:
下一步行动清单:具体的下一步工作,如果需要很多详细的更多工作,就细化成具体的工作
等待清单:等待别人做的事情
未来/某天清单:记录可以延迟处理的事情
回顾:
每周对所有清单进行回顾和更新
执行:
对每份清单任务进行行动,行动时候切记不要思考是否应该执行。
按照所处环境,重要性等来完成清单上的事项
理论上的东西网上能搜索到很多,当然最详细的就在《Getting Things Done》一书中了。这里就推荐一款应用GTD概念进行时间管理的工具:
Doit.im
这是一款很成熟的软件,有iphone,android,web版本等。我相信如果你没有用过它你会很快喜欢上的
界面如下:
第一步将想法放入收集箱
收集箱是最经常使用的,无论你有什么想法,立即将你的想法放入到收集箱中。你会在买菜的时候,逛街的时候,工作的时候偶尔蹦跶出的想法,这些想法都是应该记录下来的。
第二步要做的是清理收集箱
这个操作会非常频繁
收集箱中的条目可能有几个去处:
1 这个事情根本不用去做,去垃圾箱
2 这个事情是很大的事情,(比如“建立一个网站”)去项目栏
3 这个事情是有步骤的,(比如“了解Go语言的底层实现”,可以分解为“收集Go语言的底层相关文章”“阅读文章”“参照代码,理解”“写一篇博客”),将这个事情从收集箱中删除,将下一步行动放到“下一步行动”栏,其他的几步放到“择日待办”栏中
第三步是每日工作前,巡视下一步行动,等待,择日待办栏
将今天要做的事情放到“今日待办”栏中,将计划明天要做的放入“明日待办”栏中
后续
我已经使用这款工具两个星期了,对于它简便的事件管理功能非常喜爱。个人感觉,这种管理方式能最有效的就是杜绝了脑袋中不断记挂的“我还有哪些工作没做”的恐惧。并且GTD比其他管理方法好的地方可能在于它的整理过程。以前对于某件事情即使是很有计划和方案,但是很容易造成事情计划不周全,导致很多事情实际上是半途而废的,进而计划的任务和喜欢终止。GTD确实能有效杜绝这个现象。
程序员在思考自己的代码的同时也应该积极思考自己的思维方式和生活习惯。自勉~