跟程序员相处你一定会有很多的挫折感。比如,程序员会把能让他们达到最高效率的那种神奇的境界叫做“那里”。
“那里”是真实存在的。至少对于我是这样的,很有可能你也很熟悉那里,只是情形不一样。对于非程序员的人来说,跟程序员的这种境界相对应的情形是, 当你完全投入进一本书或一场电影,你感觉整个世界都消失了,唯一留下了的只有你正在关注的东西。如果你有丰富的创作力,那有可能是在你写一本书或绘一副画 时候。
当你正全神贯注的读一本书上,有人打断了你,通常这会需要你花很长的时间重回到那种状态。通常,当我在读一本书,有人或什么事情(电话!)打断我, 他需要重读刚才那一页,试图接上刚才的思路。甚至一章的结束也会造成思路的打断,需要你花一段时间才能重新进入你刚才的那种阅读状态中。
我第一次进入这种境界是我深深的陷入了编程的状态,当时很年轻,大概17岁。我想写一个程序,在计算机屏幕上进行音乐合成。那是我第一次使用”结构 化编程“,是从一个朋友那里听来的。我在晚饭后开始干活,之后完全忘掉了时间,当我回过神来后,发现已经是早晨,鸟儿在树上鸣叫着向朝阳打招呼,到上班时 间了。我的第一反应是:”哇!,不会这么晚了吧!“我的感觉好像只忙了几个小时,但事实上已经过去将近10个小时了。
这次之后,这种状态出现了很多次,每次我都进入了一种忘我的境界,做事情比平时注意力不能集中或不能真正专注时又快又好。
一旦我知道了这种状态,我试图能重复它,进入它,试图能让这种状态保留更长的时间,获得更大的工作效率,或者能进入这种状态解决难题。很显然,对于 我,这种情形产生在绝对安静的环境里,在我面前的屏幕上只有一种东西(通常是文本编辑器)时,而且需要一个专用的时间,让我意识到不会被什么事情打搅。
数年过去了,生活越来越忙,如今更忙,我进入这种境界的频率越来越少。是否需要进入这种状态另说,现在进入这种状态可以做的大概就是闭上双眼,背着手想事情,如果遇到真正困难的问题或完全不熟悉的新任务,那会更好。
另一件让我印象深刻的事情是,当我处在这种状态里时,有人打断了我,我通常会表现的不太和蔼。我通常需要极大的忍耐不去发火(ok,我说实话,当我被打断时,我会发驴脾气,我的第一反应是发火,我怎么也忍不住。这方面需要多下功夫)。
原因很难说清楚,但我想改正这个毛病。当编写很复杂的程序时(有些问题会挑战我的能力的极限,但对你也许不是难题,而对我却是)我力图保持大脑里这 种我一直想达到的思维状态。一个打搅——不管多么的轻微和细小——整个心境都跌落到地上摔的粉碎。我必须重新构建整个状态才能工作下去,至少需要15分钟 甚至超过1小时。所以,30秒的打搅对于我的实际作用会延长至数十倍的时间,前提是我还能重回的之前的状态,而很多情形下是回不去了。
这种状态下效率的提高是如此的显著,以至于当想真正的干一件事时,我的办法是特意的为这种状态创造一种环境,我会等所有人都睡了,泡一壶新茶,把所有能造成分心的东西都关了(手机,辅助显示器等。)这样把可能的打搅降到最小。通常在这几个小时(2或3个)里,我把最困难的事情解决掉。其它较容易的事情在平时解决。
完全的专注具有强大的力量,它能让你完成你日常生活中或平时状态下不能完成的任务。
如果你总是处在一个噪杂和易分心的工作环境中,有时发现一些难关怎么也翻越不过去,你可以试试进入这种状态,当你真正的集中精力时你才会发现你究竟具有什么样的能力。
处在那种境界里并不是没有代价的,我通常需要好一段时间才能恢复,但终究收获大于损失,特别是它能让我解决在其它状态中不能解决的问题,以及能更快速的解决问题。
如果你也是一个生活在这种境界里的人,我真的想知道你的体验如何,请在评论里告诉我。谢谢。
后记:好几个人都推荐我看这个维基百科链接:意识流(心理学)。
原文出自:Living in the zone
译文出自:一种境界
分享到:
相关推荐
### 程序员工作效率低下11大原因详解 #### 一、工作时不专心 - **开通信软件:** 在工作期间打开QQ、MSDN、淘宝客户端等通信或娱乐软件,容易分散注意力,降低工作效率。古语云:“蟹六跪而二螯,非蛇鳝之穴而无可...
在当今技术迅猛发展的时代,C++作为一种高性能的编程语言,在软件开发领域拥有不可替代的地位。然而,并非所有程序员都能运用这门语言达到高效、优雅的编程境界。为了帮助程序员提升到这一水平,林锐博士与朱洪海...
无论是刚刚踏入编程世界的初学者,还是已经在行业里深耕多年的老兵,都应当重视刷题这一环节,不断挑战自我,突破技术壁垒,以达到更高的技术境界。通过深入学习和理解"faq.treenotation.org-main"等资源中的知识,...
正如陈正冲所言,普通人在三年内很难说掌握了C语言,五年内很难称得上熟悉,十年内难以达到精通的境界。这不仅是时间的积累,更是深度探索和不断实践的结果。 #### 掌握C语言的“捷径”——实践与调试 陈正冲提出...
通过阅读《编程珠玑第二版》中的每一个章节,每一个案例,每一个练习,程序员可以逐步地提高自己的编程水平,培养解决复杂问题的能力,最终达到一个更高的编程境界。这本书不仅是一本参考书,更像是一位经验丰富的...
从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出以下关于C语言的关键...正如文中所言,如果你想成为一名真正的程序员,并期望达到高手的境界,从C语言入手,努力学好C语言,将是你迈向成功的必经之路。
比如,通过Bottom_half机制加速系统对中断的处理,这是一种高效率的中断处理策略,旨在减少中断处理对系统性能的影响。这些精巧的设计思路,对于理解和优化现代操作系统有着重要的参考价值。 #### 成为专业程序员的...
每一种算法都有其适用的场景,如二分查找在有序数据中寻找特定元素时效率极高,但它需要数据的有序性这一先决条件。动态规划则在处理具有重叠子问题和最优子结构特征的问题时显得尤为突出。书中对这些算法的原理进行...
《More Effective C++》完全中文版是一本由Scott Meyers撰写的经典著作,该书...无论是初学者还是经验丰富的开发者,都能从这本书中获得宝贵的洞见和实用的技能,帮助他们在C++编程的道路上不断前行,达到更高的境界。
《汇编语言与禅-Zen Of Assembly Language》是一本深入探讨汇编语言编程哲学和技术的书籍,它旨在帮助读者理解并掌握汇编语言的核心概念,同时通过“禅”的理念,引导程序员达到编程的更高境界。汇编语言是计算机...
两者之间的转换相对容易,掌握了一种语言后,学习另一种将事半功倍。 ### 结语 编程学习是一场马拉松,而非短跑。它需要持之以恒的努力、不断实践和深入思考。从C语言起步,逐步探索更广阔的技术领域,如Java或C++...
而C++作为一种现代编程语言,它将面向对象编程的概念引入到程序员的视野中,使得程序设计更为高效、灵活。 在C语言编程技巧部分,书中的讲解从最基础的语法结构开始,包括了变量和数据类型的定义、控制流的使用、...
它鼓励程序员追求卓越,不断探索更优的解决方案,以达到更高的编程境界。通过阅读这本书,读者不仅能够在技术层面获得提升,还能在思维模式和解决问题的方法论上得到启发和升华,进而在未来的职业生涯中持续受益。
递归,作为一种常见的编程技术,允许函数自我调用,非常适用于处理这种可以分解为相似子问题的情况。通过递归函数,我们可以轻易地计算出任意月份的兔子总数,同时也锻炼了程序员的逻辑思维能力。 接下来,我们遇到...
因此,学习一种语言时,我们不应该只停留在表面的语法层面,而应深入探究其思想与哲学,这样才能做到触类旁通,融会贯通。 在代码质量方面,梁肇新持有明确的态度,他认为代码的质量是程序员职业尊严的体现。高质量...
在计算机科学领域,数据结构是实现程序逻辑和存储数据的基础框架,它决定了数据在内存中的布局方式,...通过它,你可以不断地锻炼自己的编程技能,挑战更高层次的数据结构题目,最终达到对各种数据结构灵活运用的境界。
这在程序设计中是一种常见的需求,比如在构建用户界面时,需要将一些特定的标签信息附加到用户的输入信息之后。我们的代码通过计算字符串的长度,并逐个字符地将第二个字符串拼接到第一个字符串的末尾,完成这一操作...
书中首先回顾了软件工程的起源——60年代计算机科学发展的早期阶段,那时编程被视为一种艺术而非科学,程序员凭借个人才华创造程序,却忽视了代码的可维护性和可扩展性。这一时期,软件的质量问题、进度延误和成本...
它以其高效率和灵活性著称,成为了众多程序员入门和深造的重要工具。然而,要想熟练掌握C语言,并非朝夕之功。它需要大量的实践来巩固理论知识和提升编程技能。为了解决这一问题,"C语言100个题目.rar"应运而生,为...