我的高效编程秘诀

        高效编程、高效学习、高效工作、高效生活

        高效的意思是指在相同或更短的时间里完成比其她人更多的任务,而且质量与其她人一样或者更好。用英文来说就是write less,do more,这是程序永远的主题,在我们日常编程中一段代码经常复用的时候我们会进行代码封装,借助一些工具来快速定位错误这些都有利于提高我们编程的效率。今天和小伙伴们聊聊高效编程的秘诀,其实不仅仅是高效编程的秘诀,更是高效学习、生活和工作的秘诀,因为小编感觉编程就如同人生一样,一样的丰富多彩,一样的璀璨夺目。指导小编高效编程、生活、学习、工作的秘诀就是GTD,即Getting Things Done的缩写,翻译过来就是“把事情做完”,GTD的核心理念概括就是必须记录下来要做的事,然后整理安排并自己一一去执行。GTD的五个核心原则是:收集、整理、组织、回顾、执行。接着小编就来详细的介绍一下这五个步骤。

                   

        Get Things Done的核心理念

        GTD的核心理念在于只有将我们心中所想的所有的事情都写下来并且安排好下一步的计划,我们才能够心无挂念,全力以赴地做好眼前的工作,提高效率。而当我们总是有些事萦绕在心头,悬而未决的时候,你要么就是会不时地想起它而影响眼前的工作,要么就是会忘记了去做。
        而GTD通过将所有的这些事都罗列出来再进行分类,确定下一步的处理方法,将所有这些悬而未决之事都纳入我们可控制的一个管理体系中。GTD认为人生最大的不安的来源不是事情太多,而是有很多事情你该做却没有做,你跟人说了你要做却没有做。GTD就是要确保你所有该做 的事情都做到。DavidAllen认为,压力不是来自任务本身,而是任务在大脑里的混沌塞积,造成心理的焦虑和抵触。我们要做 的,就是逐一清点大脑里的这些事务,将所有未尽事宜通通捕获并收集在大脑之外的文件系统中,比如实实在在的工具篮、纸质记事簿、电子记事簿 和邮箱等。 GTD的理念在于只有将你心中所想的所有的事情都写下来并且安排好下一步的计划,你才能够心无挂念,全力以赴地做好眼前的工作,提高效率。GTD 其实就是两点:
        1. 清空你大脑的内存: 通常一件事情在你脑袋里所占的空间大小和你现实中已经完成多少成反比。把所有要做的事情分门别类,另外 存放在一个逻辑性强而又可靠的系统中去。大脑是用来思考的,不是用来记事的。我们的大脑每天耗费太多时间提醒我们该做又没做的事情,应该把大脑从这种思维中解放出来。
        2. 把任何任务和项目具体成行动: 不管是什么任务项目,我们要问的问题是下一个动作是什么?只有这样才能把计划具体化,才能让我们随时把握该 做什么。这样一来,在一个给定时间具体采取一个给定行动(action)的时候,我们才能做出最好的选择,而且对自己的行动选择有信心。
总的来说,GTD主要原则在于一个人需要通过记录的方式把头脑中的各种任务移出来,通过这样的方式,头脑可以不用塞满各种需要完成的事情,而集中精力在正在完成的事情,是一种消灭压力的高效编程、学习和工作的方法。

                      

       第一步:收集

       GTD的第一步就是将你能够想到的所有的未尽事宜统统罗列出来,GTD中称为stuff,放入inbox中,这个inbox既可以是用来放置各种实物的实际的文件夹或者篮子,也需要有用来记录各种事项的纸张或PDA。收集的关键在于把一切赶出你的大脑,记录下所有的工作 。

      小编每天都早上八点到八点半的这段时间,都有写晨间日记的习惯,写完晨间日记之后,在日事清里面把今天要做的事情罗列在一起,在这里,小编使用了四象限原则, 把工作按照重要和紧急两个不同的程度进行了划分,基本上可以分为四个“象限”:既紧急又重要、重要但不紧急、紧急但不重要、既不紧急也不重要。用GTD的思想来说就是把任何需要跟踪或者记住或者做的事情记在Allen称之为‘水桶’的地方:一个收件箱,电子邮箱,磁带,笔记本,PDA,或者它们的组合。把你脑子里的任何东西都拿出来放到你的搜集设备里,准备好做下一步的处理。每星期所有的水桶都应该被至少清空一次。

                

        第二步:整理

       将stuff放入inbox之后,就需要定期或不定期地进行整理,清空inbox。将这些stuff按是否可以付诸行动进行区分整理,对于不能付诸行动的内容,可以进一步分为参考资料、日后可能需要处理以及垃圾类,而对可行动的内容再考虑是否可在两分钟内完成,如果可以则立即行动完成它,如果不行对下一步行动进行组织 。

       处理我们的收件箱要遵循一个严格的工作流程:
       从最上面开始
       一次处理一项
       不把任何东西放回收件箱
       如果任何一项需要做:
       做(如果花的时间少于两分钟)
       委托别人完成
       或者把它延期
       否则把它存档以便查询,
       把它扔掉,
       或者使它成熟以便下一步的处理
       两分钟原则:任何事情如果花的时间少于两分钟,那么马上就去做。两分钟是一个分水岭,这样的时间和正式地推迟一个动作所花的时间差不多。

                           

        第三步:组织

        小编感觉组织是GTD中的最核心的步骤,组织主要分成对参考资料的组织与对下一步行动的组织。对参考资料的组织主要就是一个文档管理系统,而对下一步行动的组织则一般可分为:下一步行动清单,等待清单和未来/某天清单。等待清单主要是记录那些委派他人去做的工作,未来/某天清单则是记录延迟处理且没有具体的完成日期的未来计划、电子等等。而下一步清单则是具体的下一步工作,而且如果一个项目涉及到多步骤的工作,那么需要将其细化成具体的工作。GTD对下一步清单的处理与一般的to-do list最大的不同在于,它作了进一步的细化,比如按照地点(context)(电脑旁、办公室、电话旁、家里、超市)分别记录只有在这些地方才可以执行的行动,而当你到这些地点后也就能够一目了然地知道应该做那些工作。

        在这里需要说明一下,由于这些事项和日历对我们的反思和回顾有很大的作用和帮助,为了能够更好的保存这笔财富。建议将这些日历同步到网络上,这里推荐GoogleCalander,也就是谷歌日历,注册账号之后通过一个同步软件可以对本地的日历进行同步,同步软件Google Calendar Sync相当于备份的作用,但是不知道为啥现在谷歌日历登录不进去了,话说翻墙才可以,不过没关系,QQ也有类似的功能。还有一个需要说明一下的是GTD的第四步是回顾,第五步是执行,但是小编擅作主张把顺序给颠倒了,咳咳咳,第四步是执行,第五步是回顾。

                         

       第四步:执行

       经过了上面的精心策划,我们就可以按照清单开始行动了,而行动是整个GTD中最关键的一步,因为好多人都在这里停止了脚步。而影响行动的主要因素可以抽象为两个:内因干扰,外因干扰,在这里小编推荐使用番茄工作法。

       番茄工作法是简单易行的时间管理方法,是由弗朗西斯科·西里洛于1992年创立的一种相对于GTD更微观的时间管理方法。使用番茄工作法,选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后在纸上画一个X短暂休息一下(5分钟就行),每4个番茄时段多休息一会儿。番茄工作法极大地提高了工作的效率,还会有意想不到的成就感。番茄工作法这么好,那么具体的我们该怎么做呢?
 具体做法:
         1、每天开始的时候规划今天要完成的几项任务,将任务逐项写在列表里(或记在软件的清单里)
         2、设定你的番茄钟(定时器、软件、闹钟等),时间是25分钟。
         3、开始完成第一项任务,直到番茄钟响铃或提醒(25分钟到)。
         4、停止工作,并在列表里该项任务后画个X。
         5、休息3~5分钟,活动、喝水、方便等等。
         6、开始下一个番茄钟,继续该任务。一直循环下去,直到完成该任务,并在列表里将该任务划掉。
         7、每四个番茄钟后,休息25分钟。

         行动只能用行动去证明,再多的理论和思想,如果不行动那都成了浮云。如果你把你的时间都花在组织工作,而不是做它们,那么所有的GTD系统都是不好用的!David Allen的观点是,如果你可以把必须做的事情,让它变得简单、容易、有趣的话,那你就比较不会拖延、或者被太多的“开放性回路”所压倒。

                            

        第五步:回顾

       回顾也是GTD中的一个重要步骤,一般需要每周进行回顾与检查,通过回顾及检查你的所有清单并进行更新,可以确保GTD系统的运作,而且在回顾的同时可能还需要进行未来一周的计划工作。如果你不至少每天或者只要你有时间就回顾检查,那么你的行动和提醒的列表将会变的毫无用处。以你当时拥有的精力,资源和时间,决定什么是对你来说最重要的事情,然后做。如果你倾向于拖延,你可能会老是做最容易的事情,避免那些难的。为了解决这个问题,你可以一个接一个地做列表上的事情,按照它们的顺序,就象你处理你的收件箱一样。所以至少以星期为周期,GTD要求你回顾所有你比较主要的“行动”,“项目”和“等待”的事项,确保所有的新任务或者即将到来的事件都进入你的系统,而且所有的事情都更新到符合最新的情况。

      关于这最后一步也不不可缺失的一环,在回顾的过程中可以看到我们这一天都做了什么?那些计划受到打扰?自己的时间浪费在哪里?在执行的过程中又有什么问题?下一步应该如何去做的更好?小编会在每天的晚上下班的时候对自己进行回顾和分析整理。

                 

        工欲善其事 必先利其器

        这句话的意思是说,谓工匠想要使他的工作做好,一定要先让工具锋利。比喻要做好一件事,准备工作非常重要。语出孔子·《论语·卫灵公》:子贡问为仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。”所以在日常编程的过程中,我们要善于利用工具来帮助我们寻找bug,而不是自己在哪儿大眼瞪小眼,瞅半天也不知道哪儿有错。

        比如,我们熟悉的单元测试,单元测试(是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。再比如assert,编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。

                  

        参考书籍  搜索引擎

        小伙伴们都知道现在是互联网的时代,任何问题我们都可以通过搜索引擎找到很好的解决方法,根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为我们提供检索服务,但是你会发现,无论网速多快,搜索引擎的技术有多么的牛叉,还是在办公桌前放一两本参考书来的方便,参考数据主要用于查询而不用于连续阅读的书籍。很多时候,我们不可能记住一个框架所有的API,所以他们要不等 IDE 几秒钟做代码补全,要不一边翻文档一边做。或许MSDN 这些本地文档系统比查书快吧,但是用 Google 和网络搜索绝对比书慢。所以在你的办公桌前面放一两本参考书吧,很有好处的哦。

                  

         小编寄语:该博文,小编主要介绍了高效编程的方法,其实小编更愿意理解成高效学习、生活、工作的方法,因为编程本来就是来源于生活,编程是一种生活态度,程序是美的,计算机给人的乐趣在于,如果你有什么好的想法,你可以马上实验去得到结果。当然,你可能不会立刻得到正确答案,而必须坐下来,盯着电脑屏幕,苦思冥想求解问题的有效方法,通过不断的尝试去验证你的结果。可以通过找到正确的方法,使问题突然消失,也可以换一个角度,突然灵光闪现:原来是这样!
  编程是对创造力的训练,好的程序员不会循规蹈矩,不会使用平庸的方法去解决问题,而是根据自己的见解去寻找更简单的方法,因为他们能看到隐藏在问题背后的实质。然后他们会写出全新而漂亮的程序去验证他们的方法。“不过还是很难说清楚,闭门苦思冥想地要找到解决某个问题的漂亮答案,为什么竟会有如此巨大的魅力。但是,你要是曾经有过找到更好方法的经历,你就会明白,这简直是无以伦比的感觉。这种感觉能让我们快乐得像一个孩子,乐不知疲。这种“无以伦比”的感觉,流动在程序员体内,让程序员们为之痴迷,疯狂。而痴迷的程序员从他艺术性的创造中得到了难以言传的乐趣,并让为之上瘾。

                                  


(文章出处:http://blog.csdn.net/u010850027/article/details/47415887)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值