首页 > 代码库 > 我的高效编程秘诀
我的高效编程秘诀
高效编程、高效学习、高效工作、高效生活
高效的意思是指在相同或更短的时间里完毕比其她人很多其它的任务,并且质量与其她人一样或者更好。用英文来说就是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相当于备份的作用,可是不知道为啥如今谷歌日历登录不进去了。话说FQ才干够,只是没关系,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的观点是。假设你能够把必须做的事情,让它变得简单、easy、有趣的话。那你就比較不会迟延、或者被太多的“开放性回路”所压倒。
第五步:回想
回想也是GTD中的一个重要步骤,一般须要每周进行回想与检查,通过回想及检查你的全部清单并进行更新,能够确保GTD系统的运作,并且在回想的同一时候可能还须要进行未来一周的计划工作。
假设你不至少每天或者仅仅要你有时间就回想检查,那么你的行动和提醒的列表将会变的毫无用处。
以你当时拥有的精力,资源和时间,决定什么是对你来说最重要的事情,然后做。假设你倾向于迟延。你可能会老是做最easy的事情,避免那些难的。为了解决问题。你能够一个接一个地做列表上的事情,依照它们的顺序,就象你处理你的收件箱一样。
所以至少以星期为周期,GTD要求你回想全部你比較基本的“行动”,“项目”和“等待”的事项,确保全部的新任务或者即将到来的事件都进入你的系统,并且全部的事情都更新到符合最新的情况。
关于这最后一步也不不可缺失的一环,在回想的过程中能够看到我们这一天都做了什么?那些计划受到打搅?自己的时间浪费在哪里?在运行的过程中又有什么问题?下一步应该怎样去做的更好?小编会在每天的晚上下班的时候对自己进行回想和分析整理。
工欲善其事 必先利其器
这句话的意思是说,谓工匠想要使他的工作做好,一定要先让工具瑞丽。
比喻要做好一件事,准备工作非常重要。语出孔子·《论语·卫灵公》:子贡问为仁。
子曰:“工欲善其事。必先利其器。居是邦也,事其大夫之贤者。友其士之仁者。
”所以在日常编程的过程中,我们要善于利用工具来帮助我们寻找bug。而不是自己在哪儿大眼瞪小眼,瞅半天也不知道哪儿有错。
比方,我们熟悉的单元測试,单元測试(是指对软件中的最小可測试单元进行检查和验证。
对于单元測试中单元的含义,一般来说,要依据实际情况去判定其详细含义,如C语言中单元指一个函数。Java里单元指一个类,图形化的软件中能够指一个窗体或一个菜单等。总的来说,单元就是人为规定的最小的被測功能模块。
单元測试是在软件开发过程中要进行的最低级别的測试活动,软件的独立单元将在与程序的其它部分相隔离的情况下进行測试。
再比方assert,编写代码时。我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,能够将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式。程序猿相信在程序中的某个特定点该表达式值为真。能够在不论什么时候启用和禁用断言验证,因此能够在測试时启用断言,而在部署时禁用断言。相同,程序投入运行后,终于用户在遇到问题时能够又一次起用断言。
參考书籍 搜索引擎
小伙伴们都知道如今是互联网的时代。不论什么问题我们都能够通过搜索引擎找到非常好的解决方法。依据一定的策略、运用特定的计算机程序从互联网上搜集信息。在对信息进行组织和处理后,为我们提供检索服务,可是你会发现。不管网速多快。搜索引擎的技术有多么的牛叉,还是在办公桌前放一两本參考书来的方便。參考数据主要用于查询而不用于连续阅读的书籍。
非常多时候,我们不可能记住一个框架全部的API,所以他们要不等 IDE 几秒钟做代码补全。要不一边翻文档一边做。
也许MSDN 这些本地文档系统比查书快吧,可是用 Google 和网络搜索绝对照书慢。
所以在你的办公桌前面放一两本參考书吧,非常有优点的哦。
小编寄语:该博文,小编主要介绍了高效编程的方法。事实上小编更愿意理解成高效学习、生活、工作的方法,由于编程本来就是来源于生活。编程是一种生活态度,程序是美的。计算机给人的乐趣在于,假设你有什么好的想法,你能够立即实验去得到结果。当然,你可能不会立马得到正确答案,而必须坐下来,盯着电脑屏幕,苦思冥想求解问题的有效方法,通过不断的尝试去验证你的结果。能够通过找到正确的方法,使问题突然消失,也能够换一个角度,突然灵光闪现:原来是这样。
编程是对创造力的训练,好的程序猿不会循规蹈矩。不会使用平凡的方法去解决问题,而是依据自己的见解去寻找更简单的方法,由于他们能看到隐藏在问题背后的实质。
然后他们会写出全新而美丽的程序去验证他们的方法。
“只是还是非常难说清楚,闭门苦思冥想地要找到解决某个问题的美丽答案,为什么竟会有如此巨大的魅力。可是。你要是以前有过找到更好方法的经历,你就会明确,这简直是无以伦比的感觉。
这样的感觉能让我们快乐得像一个孩子。乐不知疲。这样的“无以伦比”的感觉,流动在程序猿体内。让程序猿们为之痴迷,疯狂。而痴迷的程序猿从他艺术性的创造中得到了难以言传的乐趣,并让为之上瘾。
我的高效编程秘诀