`
dcj3sjt126com
  • 浏览: 1825076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

高效编程的秘诀

 
阅读更多

 

DanielBMarkham曾发表博文《To code quickly, you must quit coding》, 文中他为我们分享了高效编程的几个秘诀。

昨天我做了一些事情使我的编程效率提高了一倍。 简单,容易,但使我的生活发生了巨大的变化。

你们中可能有些人已经知道我是怎么做的。 对于其他的人,这听起来有些疯狂。

我不持续工作。

或者,我把定时器设置成50分钟,在此期间我只干一件事——没Email,没聊天工具,没游戏,没分心的事。 50分钟后,我去散步。

它使我效率增倍。 而且作为一个副作用,它使我的工作更加快乐。

我知道你们中的很多人在想什么。 无论何时这个(或其它特别的Pomodoro技巧)被提及时,我都会听到各种的常见的怀疑声。

那就让我们一一看来:

这样做不会使我的注意力不能集中在我正要努力解决的难题上吗? 很奇怪,跟你的直觉相反,不会。 当你做其它的事情来放松你的神经时,你的大脑却仍然在思考你的问题。 很多次,思路豁然开朗,把很多一直都无法解决的难题都解决掉了, 这是因为你开始从远处观察这个问题,在大背景下,而不是紧紧的死揪着某处。

你是怎么停下来的?当我编程时我从来不看表。 昨天我使用的是微波炉的定时器,但我工作效率上的变化使我大为震惊, 我买了一个秒表,就是上面图中的那个。

我的生活中有太多的各种各样的打搅我的事情,邮件,聊天工具,电话短信。 你的方法对我不管用。我有个原则:在我的工作时间里不允许有分心的东西。 当我休息完后,我会花几分钟把这种分心的事情处理掉: 检查邮件,回复聊天软件里的消息,回电话。 当把这些事情全做完后我才开始启动定时器。

看起来它会给我的生活带来不必要的压力。 的确会,但却是积极性质的。 我发现自己急切的想知道在每个工作时间段里 能究竟能做多少工作。 我不由的开始把工作细化成更小的模块,催促自己看是否能在这时间段里完成这个模块。 但这没有压力。我有个更好的词来描述督促自己把工 作完成的更好更高效的现象:愉快。 我很愉快。它把难题变成了游戏。

工作后你会用多长时间来休闲? 我不知道。 这难住我了。 我会去散步 — 一个足够长的散步,至少10分钟。 有时我会到阳台上,吃个橘子,听听大自然的声音。 有时我会把秒表倒计时10分钟,以免我回来的太早。

在休息时间我可以做任何想做的活动吗? 我想不能。 我觉得你必须只做一种活动,让你大脑闲置的活动。 散步,乒乓,玩乐器,发呆,打盹。 考虑那些温和的、有目标挑战的活动 — 特别是户外的 — 效果会更好,但这只是我的猜测。

这里有什么秘密? 秘密,以我个人的见解,是当你强迫大脑释放缠绕很久的问题时, 潜意识里会使它缠绕的更紧:你的大脑强烈希望回到问题上。 于是它会一直研究它,思考它。 你越使你的大脑从工作上拽走,它就越强的返回到工作中。 越是特意的停止工作,你越更多的投入到问题中,你把思想带离工作越远,思想会越想回去。 这比起你死盯着 电脑屏幕/敲出一堆垃圾代码来,你的大脑会更有效率的多。 退一步,海阔天空。我可以保证,当你又重新回到座位上坐下来时,你会有各种更好的该怎么样做的想法。 就像是有一个小程序、设计评审程序,当你在玩乐时,在你的大脑深处后台运行,帮你思考问题。

如果你非常的聪明,怎么会想到要依赖这样的做法? 这个嘛。 这里我的故事要转向说一下坏的事情:我过去做事情也是这样“玩玩干干”! 事实上,我的工作时间和娱乐时间的分配已经无法控制。 我以前编程就像是在受煎熬。 我决定要改变。

为什么? 因为我发现当浏览器变得越来越友好,计算机变得约来越使人分心时, 我开始在潜意识里把计算机的娱乐功能和工作功能混淆在一起了。

我工作一会儿,就去看看骇客新闻,再去读几篇有趣的文章,然后再工作一会儿, 然后写几条评论,然后看看邮件,等等。

回头一想我在做什么? 很显然:我正在拿各种各样新鲜刺激的事物过程来轰炸我的大脑。 我的大脑不能工作在我的“主要”问题上,因为我忙着来回折腾在数十个不同的产生刺激因素的事物过程中。 事后你会发现这最后的结果是把一心只放到一件编程事情上的情况转变成一心放在了很多事情上, 而这些事情都跟编程没有关系。

如果你喜欢使用计算机进行娱乐活动,你可以在工作前,午餐时,或工作休息期间。 我越观察现代的计算机活动,我越相信计算机功能繁多、 使娱乐更方便的性质已经严重的跟它作为一种能够生产工作的机器的用途相抵触了。

几年来,我甚至慢慢的停止了赛场运动,约来越多的时间“沉浸”在了计算机世界里。 这对你的大脑不是件好事,请相信我。

这是一个很简单的事情,你也许会很难想象到它会有什么用处。 但请给自己一次机会 — 谁能预料你会有什么发现呢?

作为一个边注,从所有的这些事情, 我发现物理的把你的电子设备按功能分离开也许是另外一个能提高你的工作效率的好方法。 (这是一个防止你把消极的电子设备和消极的设备之间的界限弄混淆的方法)

分享到:
评论

相关推荐

    秘籍:C语言高效编程的四大绝招

    秘籍:C语言高效编程的四大绝招秘籍:C语言高效编程的四大绝招

    秘籍:C语言高效编程的四大绝招.txt

    秘籍 C语言 高效编程 四大绝招 txt

    高级C语言 C 语言编程要点

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\...

    高效算法:竞赛、应试与提高必修128例(新书)

    本书旨在探讨如何优化算法效率,详细阐述了经典算法和特殊算法的实现、应用技巧和复杂度验证过程,内容由浅入深,能帮助读者快速掌握复杂度适当、正确率高的高效编程方法以及自检、自测技巧,是参加ACM/ICPC、Google...

    免费下载:C语言难点分析整理.doc

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\...

    C语言难点分析整理.doc

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-...

    c语言难点分析整理,C语言

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\...

    高级进阶c语言教程..doc

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\...

    史上最强的C语言资料

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\...

    高级C语言详解

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\...

    C语言难点分析整理

    25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\...

    编程原本(中文版)

    这不是一本很容易读的书,它也不是能提升你的编程技能的秘诀和技巧汇编。本书的价值是更根本性的,其终极目标是提升你对编程的洞察力。要想从中大获裨益,你需要从头到尾认真学习:阅读代码,证明引理,完成练习。到...

    编程精粹 ─── Microsoft编写优质无错C程序秘诀(Writing Clean Code )

    本书介绍的所有决窍是当发现错误时,不断地就以下两个问题追问自己的结果: 1怎样才能自动地查出这个错误? 2怎样才能避免这个错误? 第一个问题可能使读者认为本书是有关测试的书,其实不是。...

    高级C语言.PDF

    C语言高效编程秘籍 ...................................................................................................................115 26. C运算符优先级口诀 ...........................................

    Android编程之高效开发App的10个建议

    本文讲述了Android编程之高效开发...这里不需要讨论高效编程,因为我们不会关心你写的代码是否能够经得起测试。即使高效的代码也是需要时间来运行。今天这篇文章我们就讲讲怎 么尽可能地缩短运行时间,以及如何开发用户

    Swift开发秘籍

     在Erica Sadun编写的所有编程畅销书中, Swift开发秘籍 将现代的最佳实践转换为几十个行之有效、方便适用的解决方案。本书的代码示例是针对开发人员遇到的现实问题而创建的,以反映Swift的最新功能和最佳实践。每...

    编程精粹 --- 编写无错的c程序

    <br/>编写优化、高效、无错地代码 <br/>编程精粹 ─── Microsoft 编写优质无错C 程序秘诀 <br/>Writing Clean Code ─── Microsoft Techniques for Developing Bug-free C Programs ...

    Tkinter GUI 应用开发秘籍【已排版和加书签】

    作为一种更通用的编程语言,Python 以其包含电池的理念而闻名,其标准库中包含丰富的模块集;Tkinter 是用于构建桌面应用程序的库。Tkinter 是基于 TKGUI 工具包构建的,是快速 GUI 开发的常见选择,复杂应用程序...

    C语言学习教程

     1、C语言学习:如何由dos向windows转变  2、二级C语言实例解答  3、等级考试:C 程序设计  4、备战C语言上机考试  5、C语言程序设计技巧  6、C语言初级讲座 ... 10、C语言高效编程的的四大绝招(2)

    45个JavaScript编程注意事项、技巧大全

    能够编写结构清晰、性能高效的JavaScript代码的开发人员,现如今已成了招聘市场最受追捧的人。 在这篇文章里,我将分享一些JavaScript的技巧、秘诀和最佳实践,除了少数几个外,不管是浏览器的JavaScript引擎,还是...

Global site tag (gtag.js) - Google Analytics