`
lvwenwen
  • 浏览: 953943 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

程序员该如何提高效率

阅读更多
“拖延症”这个名词近些年很火,似乎每个人都觉得自己的效率不高,很难集中注意力做好手头的事,那我们究竟该如何提高自己的工作效率呢,大牛来告诉你.

Aaron Swartz写过一篇很有名的文章,叫做"HOWTO: Be more productive",这篇文章写的实在是太好了,我看了好多遍,很赞同作者的观点。我借鉴了作者提到的一些方法并运用到自己的生活中,发现确实有效果,所以我愿意让更多的人看到这篇文章。Aaron Swartz这个人绝对是大牛人,他14时就参与了RSS1.0的制定,他在Stanford读了一年就主动退学了,成为了YC的一员,他的公司后来与reddit合并了,他还是web.py框架的创始人。
废话少说,下面就是译文:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
肯定有人跟你说过这样的话“你有看电视的那么长时间,都可以用来写一本书了”,不可否认写书肯定比看电视更好的利用了时间,但是这个结论的成立需要一个假设:"时间是可互换的",也就是说看电视的时间可以轻松的用来写书。但是很遗憾,事实并非如此。
不同的时间有不同的质量等级。如果我在走向地铁站的路上发现自己的笔记本忘带了,我就很难集中注意力写文章。同样,当你不停的被打断的时候,你也很难集中注意力。这里还有一些心理和情感上的因素,有的时候我心情很好,愿意主动去做一些事,但还有一些时候我感到很抑郁和疲惫,就只能看看电视了。
如果你想变的更加有效率,你必须意识到这个事实,并且很好的处理它。首先,你必须很好的利用不同种类的时间。其次,你必须让你的时间更有效率。

更有效的利用你的时间

选择合适的问题

生命是如此的短暂,为什么浪费时间做一些没意义的事呢?做一些让你感到舒适的事很容易,但是你应该问问自己为什么要做这些事呢?有没有一些更重要的事等着你去做?为什么你不去做那些事呢?这些问题很难回答,但是每解决一个都会让你更有效率。
这不是说你所有的时间都应该用来做那些最重要的事。我的时间就肯定不是这样(否则,我现在就不会在写这篇文章了)。但是,这是我衡量自己的生活是否充实的重要标准。

收集很多问题

另一个很多人都知道的秘密是:如果你认准一个问题,投入全部精力去解决它,这样你的效率是最高的。我发现这却是很难实现的。以现在为例,我正在锻炼身体,喝橙汁,整理桌面,和我弟弟聊天,同时在写现在这篇文章。今天一整天,我写了现在这篇文章,读了一本书,吃了点东西,回复了几封邮件,和一些朋友聊了聊天,买了点东西,改了改其他几篇文章,备份了硬盘,还整理了一下图书列表。
有很多不同的项目让我能够在不同质量的时间下做不同的工作。更重要的是,在你卡壳或是厌烦的时候有其他的一些事可以做。
这同时会让你变得更加有创造力。创造力就是你把自己从其他地方学到的东西能够用到你的工作中。如果你同时做许多不同方向的工作,那你就会得到更多的想法和创意。

列一个清单

找一些不同的事同时做并不困难,大部分人都有很多很多的待办事项。但是如果你想把它们全记在脑袋里的话,它们就会慢慢消失。要记住所有这些事所给你带来的心智上的压力会把你压垮。解决办法仍然是很简单:把它们写下来。
一旦你把要做的事列成了一个清单,你就可以更好的分类组织它们了。比如说,我的清单包括:编程,思考,差事,读书,娱乐休息。
大部分项目都包括很多不同的任务。以写这篇文章为例,除了真正的写作过程,还包括了阅读其他关于拖沓的文章,考虑文章的各个部分,整理语句,向别人请教问题等等。每一项任务都属于清单的不同部分,所以你可以在合适的时间才去做某一部分。

把任务清单和你的生活结合起来

一旦你有了这样一个任务清单,你需要做的事就是时常记得它,而记住它的最好方法是把它放在你能看到的地方。比如说,我总在我桌子上放一摞书,最上面的那一本就是我最近在读的。当我想要读书的时候,我就直接从上面拿一本书来读。
对于看电视/电影我也这么做。当我对某一个电影感兴趣的时候,我会把它放在电脑中一个特殊的文件夹内。每当我想休息一下,看看电影的时候,我就会打开那个文件夹。
我也想过一些更深入的方式,比如说我把一些想看的文章标记为"待读"(to read),当我想要上网的时候就看看那些从前积累下来的未读文章。

提高你时间的质量

像上面那样最大限度的利用时间还远远不够,更重要的是提高你自己的时间的质量。那你究竟该怎样做呢?

减轻身体上的约束

携带纸和笔

我认识的很多人的口袋里都有记事簿之类的东西。纸和笔在很多时候都是非常有用的,你可以随时随刻的记录自己的想法,我甚至通过这种方法在地铁上写过整篇文章。

避免被打扰

对于那些需要集中注意力的任务,你应该尽量避免被打扰。一个很简单的方法是去一个没人能打扰你的地方,另一个方法是告诉周围的人未来一段时间不要打扰你。
关于这点不要过犹不及。当你在浪费时间的时候你反倒应该被打扰一下,帮助别人解决问题肯定比坐在那里看新闻更好的利用了时间。

减轻心理上的约束

吃,睡,运动

当你感到很饿,很累,很焦躁的时候,你的时间的质量会很低。解决这个问题很简单,就是:去吃,去睡,去运动。对自己说“虽然我很累了,但我不能休息,因为我必须要工作”会让你感到自己很努力,但事实上休息之后你的效率会更高。既然你迟早都要睡觉,还不如先休息好,来提高剩余时间内的效率。

与快乐的人相处

跟快乐的人相处会也会让你变得快乐,也会让你心态更放松。也许很多人愿意躲在屋子里,不与其他人接触,埋头干活,他们觉得这样的话时间才没有被“浪费”,但事实上这会让他们变得情绪低落,工作效率也会大大下降。

与朋友分担你的压力

即使你的朋友并不是能够感染他人,给你带来快乐的那种人,和其他的人一起解决复杂的问题也会让问题变得简单。一方面,精神上的压力大家可以互相分担,另一方面,和其他人在一起可以让你专注于工作而不是时常分心。

拖沓

上面所说的那些并不是问题的重点,关于效率大家最大的问题还是“拖沓”。虽然很多人不承认,但是几乎所有人都或多或少的会拖沓。那又该如何避免呢?
拖沓是什么?从旁观者来看,你在做好玩的事(如玩游戏,看新闻)而不是做真正的工作。但问题的关键是:你究竟为什么会这样?你的脑子里究竟是怎么想的?
我花了很多时间来研究这件事,我能给出的最好解释是在你的大脑赋予“脑力场”给每一项任务。你玩过两块磁铁相互作用吗?如果你让它们异极相对,他们就会相互排斥,你会感到他们之间的磁场力。你越是想要把它们和在一起,越会感到它们之间的排斥力。
心智和精神上也是类似的。它是看不见摸不着的,但你却可以感受到它的存在。并且你越是想要接近它,它会离你越远。
你不可能通过蛮力来克服两个场之间的排斥力,相反,你应该做的是调转方向。
那又是什么产生了“精神力场”呢?似乎有两个主要原因:任务是否艰巨,任务是否是被指派的。

艰巨的任务

把任务细分

一个任务很艰巨的原因之一是这个任务很宏大。比如说你想要做一个菜谱构造程序,没有人能一下子完成它,这是一个目标而不是一项任务。一项任务是使你能够朝向目标更进一步的具体概念。一个好的任务是你能够立即拿来实施的,比如"画一个展示菜谱的草图"。
当你完成了上一个任务后,下一步就会变得更加清晰。你将会考虑一个菜谱有什么构成,你需要什么样的搜索机制,如何构建菜谱的数据库,等等。这样你就构建了一个引擎,每一个任务都会通向下一个任务。
对于每一个比较大的项目,我都会考虑我需要完成一连串什么样的任务,并且将这些任务加入到我的待办事项列表中去。同样,当我做完一些任务之后我会把接下来需要完成的任务再加入任务列表中去。

简化任务

另一个让任务变得艰巨的原因就是它太复杂了。"写一本书"这个任务会放你感到无从下手,那么就先从写一篇文章开始吧。如果一篇文章也觉得太多了,那么就先写一个段落的概要吧。最重要的是真正做了一些工作,真正的有进展。
一旦你明确了你的任务之后,你就可以更清楚的判断它,更容易的理解它。提高完善一些已有的东西比从头创建东西更容易。如果你的一个段落写好了,那么一点一点积累,它会变成一篇文章,最终变成一本书。

认真考虑它

通常来说解决一个困难问题需要一些灵感。如果你对那个领域并不熟悉,你应该从研究这个领域开始,借鉴一下其他人的经验,慢慢的研究理解这个领域,并且做一些小的尝试看看你能否搞定这个领域。

被指派的任务

被指派的任务是那些你被要求完成的任务。很多心理学实验都表明:当你"刺激"其他人做什么事的时候,他们反倒不容易做好那个事。奖励,惩罚等外部刺激会扼杀"内在动机"--你对于某个问题发自内心的兴趣。人类的大脑对于被要求做的事有先天的抗拒力。
这种现象不仅局限于其他人要求你做的事,当你向自己分配任务时仍然会出现这种现象。如果你对自己说"我应该好好做X工作了,这是我现在最重要的事",之后你就会感到X突然变成了世界上最困难的事情了。然而一旦当Y变成了"最重要的事",原来的那个X又变得简单了。

虚构一个任务

如果你要完成X,那就告诉自己做Y。然而不幸的是,这样欺骗自己却很难,因为你清楚你究竟要做什么。

不要自己给自己布置任务

给自己布置任务看起来很诱人,比如对自己说"我要写完这篇文章才去吃饭",更糟糕的是让别人假装布置给你一些任务。但是这两种方式都会让你变得更没有效率,事实上你还是在给自己布置任务,你的大脑只会去逃避它。

把事情变得有趣

困难的工作听起来不会令人感到愉悦,但事实上这可能就是最能让我感到高兴的事。一个困难的问题不但能让你集中全部注意力,而且当你完成它的时候你会感到非常棒,非常有成就感。
所以帮助自己完成一件事的秘密不是说服自己必须完成它,而是说服自己这件事确实非常有意思。如果一件事没有意思的话,你需要做的就是让它变得有意思

总结

效率的真正秘密在于"聆听自己",在你饿的时候吃饭,在你疲惫的时候睡觉,当你厌烦的时候休息一下,做那些有趣好玩的项目。
这看起来很容易,但是社会上的一些观念正在把我们向相反的方向引导。要想变得更加有效率,我们需要做的就是转过头来"聆听自己"
分享到:
评论

相关推荐

    程序员如何提高效率(转)

    程序员提高效率的关键在于合理安排时间,选择有价值的问题,以及持续自我提升。通过有效管理情绪,灵活处理多任务,以及不断学习新技术,可以显著提升个人的工作效能。同时,重视代码质量和复用性,将有助于长期的...

    程序员如何提高工作效率

    程序员如何提高工作效率

    程序员C++提高编程PDF.pdf

    通过这种方式,程序员可以减少重复代码,提高开发效率。 在实际使用函数模板时,有两种方式:自动类型推导和显示指定类型。自动类型推导依赖于编译器来自动识别传入的参数类型,而显示指定类型则是程序员明确告知...

    程序员如何提高工作效率.docx

    提高程序员工作效率是一个涉及多方面策略和技能的主题。以下是一些关键点,可以帮助程序员提升生产力: 1. **设定清晰的工作目标**: - 工作列表是保持效率的关键,它可以帮助你明确每天要完成的任务。 - 记录并...

    程序员如何提高英语水平.pdf

    针对程序员提高英语水平这一课题,本文首先从“听说写读”四个方面分析了语言技能提升的难度,指出尽管在口语和听力方面达到母语水平较为困难,但程序员通常在书写和阅读方面同样存在不足,这恰好是他们可以着力提升...

    程序员究竟该如何提高效率

    “拖延症”这个名词近些年很火,似乎每个人都觉得自己的效率不高,很难集中注意力做好手头的事,那我们究竟该如何提高自己的工作效率呢,大牛来告诉你.AaronSwartz写过一篇很有名的文章,叫做"HOWTO: ...

    程序员需要的高效率工具

    本文将基于提供的部分信息,深入探讨对于程序员而言哪些工具能够显著提高工作效率,并且如何运用这些工具。以下是对给定内容中提及的各类工具进行的详细解析与补充。 #### 增强型桌面工具 **Ditto** Ditto是一款...

    卓有效的程序员书,提高程序员的效率

    在IT行业,特别是软件开发领域,提升编程效率和工作质量是每位程序员追求的目标。《卓有效的程序员书》一书正是为了帮助程序员实现这一目标而编写的。它不仅提供了理论指导,还结合了实际操作技巧,旨在让读者成为...

    程序员如何使用ChatGPT提高工作效率

    程序员如何使用ChatGPT提高工作效率

    截图软件(程序员必备神器提高开发效率)

    而一款优秀的截图软件就成为了程序员提高开发效率的必备神器。本文将详细介绍这类工具的重要性、功能特点以及如何选择和使用。 首先,为何程序员需要截图软件?在编程工作中,遇到问题时,快速截取屏幕图像能够直观...

    程序员-工作日志示例

    工作日志是程序员日常工作中不可或缺的一部分,它可以帮助程序员更好地管理自己的时间、提高工作效率、记录工作进度、总结工作经验等。本文档是一个程序员工作日志示例,旨在帮助程序员更好地管理自己的工作,提高...

    ChatGPT插件+Webstorm提高程序员效率.zip

    ChatGPT插件+Webstorm提高程序员效率.zip

    如何用ChatGPT插件+Webstorm提高程序员效率

    如何用ChatGPT插件+Webstorm提高程序员效率

    程序员专用 编程输入法

    1. **快捷代码输入**:程序员输入法能够通过快捷键、组合键或者自定义短语来快速输入常见的编程语句、函数名或变量名,减少手动输入的时间,提高编程速度。 2. **智能提示**:当用户输入部分代码时,输入法会根据上...

    沟通技巧-程序员也该懂的技巧

    沟通的效率受到多种因素的影响,非语言因素,如声线、身体语言等,占沟通信息的绝大部分比重。而面对面沟通和电话沟通之间存在显著差异,如通过电话沟通时缺少非言语信息,而在面对面时,非言语信息如面部表情、姿势...

    程序员提高班纪事

    2. **编程语言**:《程序员提高班纪事》涵盖了多种编程语言的相关知识。每种编程语言都有其独特的语法和设计理念,如C++的面向对象特性,Python的简洁语法,JavaScript的动态类型等。理解不同语言的特点,能帮助...

    计算机程序员考试题

    * 文件管理的目的:提高文件存储效率、提高文件存取速度。 * 文件管理的方法:文件组织、文件保护、文件检索。 * 文件管理的实现:文件系统、文件缓存。 七、作业调度 * 作业调度的目的:提高系统性能、提高资源...

    程序员技巧收集助手-程序员的好帮手

    8. **API集成**:可能允许与其他开发工具或平台进行集成,如IDE插件,进一步提高开发效率。 【Tips.ini】文件可能是程序的配置文件,用于存储用户的个性化设置,如界面布局、默认语言、快捷键等。用户可以根据自己...

    程序员的必备工具

    Vim的学习曲线较陡峭,但一旦掌握,它的速度和灵活性将极大地提高程序员的效率。Vim可以通过插件扩展功能,如NERDTree用于文件管理,ALE用于实时代码检查,以及YouCompleteMe为自动补全提供支持。 除了这些,程序员...

    影响程序员编程效率的10个障碍!

    因此,合理安排会议时间、减少非必要的会议,对提高程序员的工作效率至关重要。 #### 2. 查看发来的无穷无尽的邮件 电子邮件是现代办公中重要的沟通工具之一,但过多的邮件不仅消耗了程序员的宝贵时间,还可能导致...

Global site tag (gtag.js) - Google Analytics