Table of Contents:

环境

使用双屏,大屏幕,4k,屏幕尽量宽
顺手的鼠标(多按键,自定义操作)、键盘等硬件工具
提高电脑的配置,运行速度
提高桌子椅子舒适度,久坐不累

快捷键

培养自己好的反思习惯

就是不断反思自己在工作中可以提升效率的地方,比如
* 常用的命令是不是做了alias?比如:总敲 ls -l,是不是应该alias出一个 ll 来?
* 常用的服务器信息是否写在了 .ssh/config 里?服务器登录是否使用了pub/private key(毋须输入密码)?
* 对于某些操作,可不可以定义一些快捷键(比如说google search)?
* 项目里重复的工作是不是写成了makefile(或是其他任务脚本)?
* 常写的代码结构是否定义了snippet?

多看高手的screencast

很多时候我们没有机会近距离看高手是怎么工作的,但观看他们的screencast不失是一种提高自己的好办法。这样可以弥补自己根本就不知道的操作盲区

善用自动化

具体该如何做呢?要实现自动化,首先就要观察你平时做的事情中,有哪些属于重复劳动;
然后评估一下这些重复劳动是否可以用某些工具来替代;
如果有可能替代,你就可以动手把这个工具实现出来,然后就可以让工具来帮你做事情了。

实现“自动化”的例子:
* 调试程序
当程序行为不正常时,经常需要设置断点,然后单步跟踪代码,以便找出程序出错的源头。其实这个过程也有大量的重复劳动。
俺一般喜欢通过程序断言(以下简称 assert)来简化上述过程。看到这里,有些同学心里犯嘀咕了:程序断言和自动化有毛关系啊?其实每一个 assert 就好比一个【自动的】代码检查点,【每次】程序运行到 assert 处的时候,如果你设置的逻辑条件不成立,它会立即终止程序并打印出相关信息(比如函数调用栈、文件行号等)。
如果你在写代码的时候,经常在一些【关键点】设置一些【条件恰当】的 assert,可以大量节约调试时间。俺自己写的程序,在自测的时候,有70%-80%的逻辑错误会被 assert 暴露出来,所以改起来非常快;测试人员提交给俺的 Bug,大概也有一半以上可以通过 assert 快速定位出错误的源头
* 自动化测试
说完了程序员的例子,再来说一下测试人员。俺发现很多公司的测试人员,重复劳动特别严重。他们不断地重复做一些软件功能的验证操作;发现bug后通知程序员改;程序员改完,再次进行验证操作......如此循环往复。N年之后,这些测试人员的个人能力没啥提高,年龄倒大了不少。
在此,俺强烈建议测试人员:尽量多使用一些自动化测试工具(比如 QTP)和一些测试脚本来完成上述的软件功能验证操作。不光能节约很多时间,提高了效率;而且在自己编写测试脚本的过程中,或许还能学些新东西,提高一下个人能力。比如俺见过一个测试人员,由于经常用Python写一些脚本进行网络和数据库方面的测试,久而久之,写 Python 脚本的水平很熟练,然后就被转去做 Python 开发。
* 人肉自动化
上面说的自动化都是技术层面的(都是靠软件实现)。为了给大伙儿扩展一下思路(免得思维定势),最后来说一下非技术的例子。
比如部门中经常有人出差,每次出差都要都要订机票。订机票就属于重复劳动,而且挺繁琐。得去网上查航班、还得看哪个航班折扣优惠、选好航班还得付钱,然后去机场还得打印行程单,出差回来还得填写报销单(报销单还得找N个人签字),然后拿着报销单与行程单找秘书报销。这些琐事累加起来,少说也得一个小时才能搞好。
为了提高效率,把上述这些琐事统统都交由秘书搞定。出差的家伙需要做的就是发一个邮件告诉秘书,要订某天某时的飞机到某地,就一切 OK 了。经过这样改革,部门里的人(除了秘书)都皆大欢喜。