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

做一个懒惰的程序员

阅读更多

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

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

第一 拒绝鼠标

从今天,我将拒绝鼠标。

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

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

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++等编译语言。

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

第四 不调试程序

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

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

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

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

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

 

原文:http://blog.imalbert.com/archives/35.html

分享到:
评论

相关推荐

    做一个懒惰高效的Android程序员

    所以让我们来成为一个能偷懒又有高效率的Android程序员。想知道怎么做吗?不用急,接下来我就会写到。有许多第三方的库和框架是可供我们使用。出于种种原因,我们并不知道这些库或者知道但还没用过。有的开发者开发...

    程序员开发高频词汇.pdf

    程序员常用词汇

    偷懒的程序员

    做一个会偷懒的程序员

    loafer:懒惰程序员的 PHP 扩展

    mcurl是一个用于同步 curl 请求的 php 函数,基于select模型。 msql是一个用于 InnoDB 事务的 php 函数。依赖C++11 mysql客户端卷曲 PHP 版本 > 5.3建造你应该先构建php-cpp,你可以阅读文档。然后你应该安装mysql...

    println:懒惰程序员的简单 console.log

    懒惰程序员的简单 console.log 安装 npm install --save-dev println 用法 require ( 'println' ) ; var number = 1 ; number . println ( ) ; ( "[" + number + "]" ) . println ( ) ; "====" . println ( ) ; try...

    lazybox:懒惰程序员的工具

    懒人箱lazybox是脚本的集合,可帮助自动化性能评估实验。 但是,它可以用于自动... 对于由本地系统中的多个小型实验组成的基础实验的自动化(例如,测量程序a和程序b在同一系统中运行时的执行时间),lazybox提供了run_

    koala-js:适合懒惰程序员的 js

    考拉-js 一个方便的方法集合,可以节省不必要的击键(适用于所有懒惰的编码人员)。 随意使用和改进。入门安装模块: npm install koala-js var k = require ( 'koala-js' ) ;kd || k.defaultValue(obj, default...

    fakecuda:一个方便的包,让懒惰的火炬程序员离开你的所有

    一个方便的包,让懒惰的火炬程序员在 CPU 上运行时保持所有 :cuda() 调用保持原样。 ###用法: require ( ' fakecuda ' ). init ( true ) -- true is for using fakecuda, false or no-argument wont ...

    machine_learning_examples:ML的懒惰程序员的Udemy类

    machine_learning_examples 机器学习示例和教程的集合。 在找到相关的教程 在找到相关课程 直接课程链接 深度学习先决条件:Python中的Numpy堆栈 深度学习先决条件:Python中的线性回归 深度学习先决条件:...

    lazyprogrammer

    因此,一个懒惰的程序员不必担心在星期五下午进行部署。 懒惰的程序员尽可能少地去办公室,可能是在其他非懒惰的人不在的时候,所以他们不会浪费时间。 懒惰的程序员知道自己交易中最好的工具,以便他们可以尽可能...

    lazierSofa:懒惰的程序员

    lazierSofa懒人沙发--工具篇1、为解决接口定义构造JSON字符串、Java对象的痛点,懒人沙发实现JSON 字符串生成Java对象,及Java对象生成JSON 字符串。运行 JsonAndClassConverter 类的 Main方法,构造入参示例如下:...

    懒惰是金 介绍几个php通用的函数第1/2页

    追求程序的速度,而不是编程的速度 一、懒惰是金 做一个懒惰的程序员吗?这个想法太奇怪了!因为这个世界上最忙碌的人可能就是计算机程序员了。但正是因为程序员太忙了,所以才应该在编程时学会偷懒。 对于一个...

    程序员简历模版.zip

    优秀的简历是打开职业大门的敲门砖,但同时也不应过多地将精力放在简历上。良好的简历和面试技巧固然重要,它们是为了锦上添花。...无论是对于每一个知识点,都可以撰写一篇技术博客。在这方面,懒惰是需切忌的。

    怎样才能成为PHP高手?学会“懒惰”的编程

    PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。...追求程序的速度,而不是编程的速度 一、懒惰是金 做一个懒惰的程序员吗?这个想法太奇怪了!因为这个世

    gstate:懒惰的程序员的疯狂状态管理

    GState GState是基于图的状态管理,可用于管理客户端和服务器状态。 安装 $ npm i -S gstate 变化 0.1.3-具有临时state.get查询的state.watch(与state.batch相同,但用于读取侧)。 用于 文献资料 ...

Global site tag (gtag.js) - Google Analytics