`

高效编程的秘诀

阅读更多

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

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

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

我不持续工作。

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

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

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

那就让我们一一看来:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原文链接:To code quickly, you must quit coding

分享到:
评论

相关推荐

    汤姆斯旺C++编程秘诀

    《汤姆斯旺C++编程秘诀》是一本深入探讨C++编程技巧与实践的经典著作,由知名编程专家汤姆斯旺撰写。这本书以其独特的视角和深入浅出的讲解,为程序员提供了一系列宝贵的编程经验和建议,旨在提升C++编程的效率和...

    汤姆·斯旺 C++ 编程秘诀

    《汤姆·斯旺 C++ 编程秘诀》是一本专为C++程序员精心编写的指南,旨在揭示C++编程中的高效实践和技术。作者汤姆·斯旺以其丰富的编程经验和深入的理解,分享了一系列有助于提升代码质量、性能和可维护性的技巧。 ...

    C++编程秘诀(汤姆斯旺

    C++编程秘诀是资深程序员汤姆斯旺分享的关于C++编程的重要指导,旨在帮助初学者和有经验的开发者深入理解和掌握C++语言的核心概念、语法特性以及编程技巧。C++作为一门强大的面向对象编程语言,其灵活性和高效性使得...

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

    ### 秘籍:C语言高效编程的四大绝招 在计算机科学领域,C语言作为一门基础且强大的编程语言,被广泛应用于系统开发、嵌入式系统以及高性能计算等多个方面。为了提升C语言程序的效率与性能,本文将详细介绍四种实用...

    Ruby语言探秘:从入门到实践,解锁高效编程之旅-markdown案例教程.zip

    通过这本书,你将逐步解锁高效编程的秘诀,让你的代码更加简洁、高效。 不要再等待了,现在就来查看这份资源吧!让我们一起探索Ruby语言的奥秘,开启一段充满挑战与收获的编程之旅。你准备好迎接这场编程的盛宴了吗...

    VESA图形图像编程秘籍_GUI_中文_VESA_

    在这个“VESA图形图像编程秘籍”中,我们将探讨这个主题的基础知识以及如何使用VESA接口来创建自己的图形用户界面(GUI)。 首先,GUI(图形用户界面)是用户与计算机系统交互的主要方式,通过图标、窗口、菜单和...

    基于arcgis的python编程秘籍第二版数据文件.zip

    Python作为一门易学易用且功能丰富的编程语言,与ArcGIS的集成使得地理数据处理变得更加高效和便捷。本篇将围绕"基于arcgis的python编程秘籍第二版数据文件"这一主题,深入探讨ArcGIS的Python API以及相关编程实践。...

    汤姆斯旺C++编程秘诀

    《汤姆斯旺C++编程秘诀》是一本深入探讨C++编程技巧的著作,虽然出版时间可能较早,但其内容依然具有很高的参考价值。C++作为一种强大的、面向对象的编程语言,一直以来都是软件开发领域的重要工具。这本书以其独特...

    汤姆.斯旺的C++编程秘诀

    《汤姆....斯旺的C++编程秘诀》,开发者不仅能提升C++技能,还能培养出良好的编程思维和习惯,从而写出更高效、更可靠的代码。这本书对于任何想要深入理解和掌握C++的程序员来说,都是宝贵的资源。

    Python编程秘籍:笔记与源码合璧.zip

    《Python编程秘籍:笔记与源码合璧》是一本集...总之,《Python编程秘籍:笔记与源码合璧》是每一位Python学习者不可多得的良师益友,它以其独特的编写方式,为读者提供了一条高效、系统的学习路径,助力其在Python编程

    python爬虫虫编程秘籍

    Python爬虫编程秘籍主要涵盖了Python语言在网页数据抓取领域的应用,这是一门实践性强、技术含量高的技能。Python以其简洁易读的语法和丰富的第三方库,成为了爬虫开发者的首选工具。在这个教程中,我们将深入探讨...

    汤姆斯旺C++编程秘诀.rar

    《汤姆斯旺C++编程秘诀》是一本深入探讨C++...通过学习《汤姆斯旺C++编程秘诀》,读者不仅能提升C++技术,还能理解更深层次的编程哲学,从而写出更加优雅、高效和可靠的代码。这本书是C++开发者不可或缺的参考资料。

    VC++编程十大秘诀[1]

    在VC++编程中,掌握一些高效且实用的技巧可以显著提升开发效率和代码质量。以下是对"VC++编程十大秘诀[1]"的详细解读: **秘诀一:理解STL(Standard Template Library)** STL是C++标准库的核心部分,包括容器(如...

    基于arcgis的python编程秘籍第二版数据文件

    《基于ArcGIS的Python编程秘籍》第二版是一本深入探讨如何使用Python语言与Esri的ArcGIS平台进行集成开发的专业书籍。这本书旨在帮助读者掌握如何利用Python的强大功能来自动化和扩展ArcGIS的功能,提高地理信息系统...

    Java网络编程全解析:构建高效网络应用的秘诀

    Java 是一种广泛使用的高级编程语言,由 Sun Microsystems(现在是 Oracle 公司的一部分)在 1995 年首次发布。Java 语言的设计理念是具有尽可能少的实现依赖性,这意味着编译的 Java 代码可以在任何支持 Java ...

    C++编程调试秘笈

    C++作为一种高效、功能强大的编程语言,在实际应用中,程序员往往会遇到各种复杂的调试问题。掌握有效的调试技巧可以大幅度提升开发效率,减少程序错误。 本书标题直接指出了其核心内容——C++编程调试。这意味着书...

    一个学霸的Linux Shell编程秘籍

    ### Linux Shell 编程秘籍知识点详解 #### 标题解析 - **标题**:“一个学霸的Linux Shell编程秘籍” - 解析:本文档旨在通过深入浅出的方式介绍一系列Linux Shell编程技巧,适用于希望成为Linux高手的学习者。...

Global site tag (gtag.js) - Google Analytics