做一个懒惰的程序员

标签: 思与辩 | 发表时间:2011-02-26 11:35 | 作者:albert748 risent
出处:http://blog.imalbert.com

本文写给所有可爱的程序员,(我)你们都是一群可爱的,用双手建造世界的思想家。

从今天起,我要做一个懒惰的程序员。

第一 拒绝鼠标

从今天,我将拒绝鼠标。

鼠标,是鼠标手的根源,无数的程序员都被鼠标手所困扰,这似乎已经成为了程序人员的专利。我们养成了一个一个的“恶习”,比如,滥用鼠标右键刷新,看文档的时候,喜欢用鼠标来标记正在阅读的段落等等。这些非常规的使用使我们的手得了严重的疾病,我不知道,这样继续下去,当我们牙齿掉光的时候,是否还有能力抚摸妻子动人的面庞。

所以,我要从以下几个方面拒绝鼠标的诱惑:(虽然某些时候它真的很方便)

1. 我要开始使用Emacs或是Vim

Emacs和Vim就是程序员的倚天剑和屠龙刀!花一点时间学习来学习它,即便我以后不做程序员了,也将会终生受益。因为它同时也是普通人的编辑利器

作者本人曾经就是Emacs使用者,后来转入了Vim。直言不讳的说,玩Emacs或Vim本就是一个享受的过程,因为你总能无意间挖掘出它的一个又一个有趣用法。

如果你还执迷于Notepad++这些编辑器,看看这个Wiki:《Comparison of text editors》,你还有什么理由不选择它呢?

2. 我要使用键盘来浏览网页

学会了Emacs或是Vim,我开始想把这种高效的用法用在浏览网页上,毕竟这也会占据我的大部分时间。

如果是Vim的话,可以选择:Vimperator(firefox)或是Vimium(Chrome)

如果是Emacs的话,可以选择:Firemacs(firefox)或是Edit with Emacs(chrome)

3. 我要使用键盘来操作系统

我要使用更多方便的工具来帮助我管理系统:

我要使用AutoHotKey,使重复工作一键完成。

我要使用Totoal Commander,使系统文件管理变成一件轻松而有效率的事情。

我要学习更多的快捷键,包括Win+R的常用命令Outlook的快捷键,让这些以前只能缓慢移动鼠标的操作变成快捷的键盘操作。

第二 少用键盘,甚至少看屏幕

鼠标用的少了,键盘却用得多了,这还不够。

1 我将使用更多的时间来阅读纸质的书籍,而非PDF

阅读纸质书籍基于两点:

第一,我们可能有Twitter,有新浪微博,有QQ,电脑面前阅读有可能会使我们精力分散。

其二,阅读纸质的书籍会更加集中精力,触觉和视觉的结合会让我们记忆更加深刻

2 我将用更多时间进行交流和思考

我将腾出更多的时间用于思考,而不是腻在电脑面前。我将花更多的时间思考人生,思考设计,甚至思考我正在思考的东西。

第三 少写代码

1 构建自己的代码库

所有我写过的代码,我都要保存起来,反复思考,修改,尽量让其变成通用的代码。

遇到所有我没有写过的代码,我都要抓出其最独立的代码段,算法段,反复思考,修改,让其变成通用的代码。

我要把所有我思考过的代码都保存起来,放到我的代码库里边。遇到一个问题,先看看我的代码库里有没有?有的话就拿出来,直接用,或是修改一下再用,没有的话才自己重新写过,当然,这些新实现的代码将再次进入我的代码库。如此一个良性循环,从此,很多相似的问题再也难不倒我,因为我熟悉我的代码就像熟悉自己的身体一样。

因为我承认:

1 我的记忆是有限的,它不能永远记得所有细节。

2 再造轮子是一件可怕的事情,除非我能造得比人家更好。

2 让代码自己生成

最简单的代码生成是非逻辑生成,比如李先静曾经举过这样一个例子:

前几天遇到一个问题,要定义一组宏,它的格式是这样的:

KEYMAP(GDK_Op_Left, GDK_F12, DIKS_F12)

KEYMAP(GDK_Op_Right, GDK_F13, DIKS_F13)、

大约有30多行,第一列的Op_Left之类是自定义的按键,是我们讨论的结果,放在一个表格中,手工把这份表格转换成以上的宏,不难也要不了多少时间,但这样单调的事很容易出错,特别对于我这样粗心大意的人来说。于是决定用awk来做:

awk ‘BEGIN{i = 4} {print “KEYMAP(GDK_” $1 “, GDK_F” i “, DIKS_F” i “)”; i++}’ keys.txt

这就是代码产生器!就一行代码。简单吧,它却产生了30多行代码。其实我经常在用这样的代码产生器,给我节省了不少时间,减少了出错的可能。所以能用脚本就用脚本,脚本实现困难时才考虑用C/C++等编译语言。

复杂的代码生成便是逻辑生成,有这样一篇文章可以参考:《浅谈代码生成

第四 不调试程序

我要抱着严谨的态度写程序,我要如同追求艺术极致一般追求编码的极致。虽然我们知道,这世界上有太多的程序员,他们远远比我们厉害。但这并不妨碍我们超越他们的脚步。

我要像熟悉自己的身体一样熟悉我的代码,熟悉我思维中的每一个误区,每一个漏洞。我要写出优雅,优美的代码,而非依赖调试工具来找出问题。

我要善用我的眼睛,让它接受每一段代码,我要善用我的大脑,让它模拟出每一段代码的问题。我的思维会为我调试一条语句,不管其是空指针还是内存泄露。我的眼睛会为我找出每一个语法错误,不管是我粗心还是大意。(参见李先静的博客:《程序员成长计划》,像机器一样思考, 123

写完一段代码我不会心急地运行,看它的效果,我会花上10分钟检查我的代码,直到我确定,或者是“自以为”是bug 0.

从今天起,做一个懒惰的程序员,虽然我知道这条路很难走,但这并不妨碍我的热情。因为我知道,总有一天,我会变得比那些现在我只能仰望的人更加懒惰!

相关 [懒惰 程序员] 推荐:

做一个懒惰的程序员

- risent - I'm Albert
本文写给所有可爱的程序员,(我)你们都是一群可爱的,用双手建造世界的思想家. 从今天起,我要做一个懒惰的程序员. 鼠标,是鼠标手的根源,无数的程序员都被鼠标手所困扰,这似乎已经成为了程序人员的专利. 我们养成了一个一个的“恶习”,比如,滥用鼠标右键刷新,看文档的时候,喜欢用鼠标来标记正在阅读的段落等等.

高效程序员的特征:聪明,懒惰

- - 外刊IT评论
这里我使用了 聪明, 懒惰和 程序员这几个词. 程序员:有积极活力的,专注于用代码解决真实世界里的问题. 不是指那些梦想家,那些永远只想不做的人. 聪明:能够周全的思考问题(不是那些耍小聪明的人). 懒惰:就像是程序中的 lazy-loading,是指延后写代码的时间(而不是无所事事的人).

程序员是懒惰反复无常的伪知识分子,果真如此吗?

- fyits0 - cnBeta.COM
“计算机编程中极少人是真正的艺术家,大多数人充其量不过是房屋粉刷匠而已. 管理顾问 Tim Bryce 不喜欢程序员,而许多程序员也不喜欢他. (注:Tim Bryce 发布过一篇名为《P理论:管理程序员的哲学》的文章.

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.

程序员收入报告

- diaoxsh - cnBeta.COM
最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告. 数据显示,上月是目前为止他收入最多的一个月. Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者. 他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富.