像高手一样使用你的计算机2020.12.17
万维钢·精英日课⁴(年度日更)
2020-11-11
像高手一样使用你的计算机
| 转述:怀沙 |
这一讲咱们说说如何高效地使用计算机。注意是“计算机”,是那种传统的、有实体键盘的、真正的计算机,是生产力工具,而不是手机、平板之类的娱乐和社交设备。现在有些人说 iPad 也是生产力工具,我对此表示嗤之以鼻。
挽弓当挽强用箭当用长,你需要趁手的兵器,你需要一台真正的计算机。
不管你的工作性质是什么,我推荐使用 Mac 电脑、有线机械键盘和大显示器。不过硬件和操作系统都不是关键问题。我见过长期使用 Linux 操作系统却只会拿个鼠标点来点去的人,也见过把 Windows 笔记本使到飞起的人。我们不讲具体的操作技术,专说一点儿有关效率的思想和正确的使用精神。
我只是一个普通的计算机使用者,远远没达到程序员级的水平。但是我的确读过一点程序员写给程序员的书 [1],我学到过一点东西,而且以前经常操练。我非常受不了旁观水平比我还低的人使用计算机,有时候看他们太笨了,有时候看他们简直是在虐待计算机。我们应该尊重计算机。
咱们说五条经验。
1.用键盘,别用鼠标
低水平计算机使用者最明显的特征就是干什么都用鼠标。眼睛盯着屏幕,一只手缓慢地移动着光标,一会儿点一下这里一会儿点一下那里……再也没有比这更笨拙的动作了。只要记住几个键盘快捷方式,你的形象就能大大改观 ——
* Command 键(Windows 下是 Win 或者 Alt 键)+ tab 在不同程序的窗口之间切换;Command + ` 在同一程序的窗口之间切换;
* Command + Q 关闭程序;Command + W 关闭窗口;
* Control + 左右方向键切换桌面;
* Command + L 回到浏览器地址输入栏;
* 填表时用 tab 键切换到下一个输入位置……
等等。有的人连编辑文档的时候时不时 Command + S 保存一下都不会,有的人连切换输入法都得用鼠标找到那个位置点一下。他们不仅仅是浪费时间的问题,他们打断了自己的思路和工作流畅性。
使用键盘,就相当于是把计算机当成了一个人,是你直接对他下命令;而用鼠标,则是把计算机当成了一个长满了按钮的机器,看半天都不知道点哪。从心到手,比从心、到手、到眼睛、再到手,要直接得多。新手点菜得看半天菜单,老手都是直接告诉服务员今天吃什么。
当然鼠标肯定是有用的,但这个要点是键盘的效率要高得多。手不要轻易离开键盘,你应该把键盘当做身体的一部分。我大多数情况下连浏览器的书签都不点,都是直接从地址栏输入网址的开头字母和要搜索的关键词,回车就有。我以前在 Linux 下编程的时候用的编辑器是终端状态下的 Emacs,它根本就不支持鼠标。我要去程序的哪一段都是直接搜索着过去,心到手马上到,连用键盘翻页都很少。
直接打字搜索,是比用眼睛浏览快得多的做法。很多人喜欢搞“整理”,把各种文件、收到的电子邮件都分门别类存放,文件夹套着文件夹做一个标签又一个标签弄得十分复杂,这是把计算机当档案柜用。正确的方法是搜索。IBM 公司专门做过研究 [2],发现那些平时费力把邮件分类保存的人后来查找邮件的速度并不快,反倒是平时不管邮件,用的时候直接搜索速度更快。现在所有计算机都有全局搜索功能。
计算机是有智能的,就好像秘书一样,有什么文件扔给他、放在一个差不多的地方就可以了,要用的时候直接找他要,而不是你去管理。我获取文件、阅读网页、读电子书常常都是在搜索。搜索是积极主动的,搜索约等于“审问”。
现在的应用程序都是图形界面的了,但是从使用效率角度来说图形界面是给新手用的。上世纪的计算机使用者习惯于干什么事儿都用命令行。Mac、Linux、Unix,包括 Windows 都提供了各种方便的命令行小工具。命令行一两句话就能交代明白的任务,图形界面得点上半天。在老一辈程序员眼中,图形界面环境中长大的程序员的工作效率是大大降低了:他们不是在“跑(run)”计算机,他们是在“走”计算机。
键盘的精神是“有事儿直接说”。用键盘,是对计算机智能的承认和尊重。
2.把事情自动化
计算机除了能让你看电视剧,还可以用来……做计算。只要稍微多了解一点它的语言,你就能让它为你做一些非标准化的、复杂的事情。
以前我搞科研的时候接手了一个模拟物理实验的程序。我需要做大量的实验,每次都是修改几个参数,提交到一台远程的超级计算机上运行,再把数据下载到本地,再用 Matlab 分析。我每天反复做这些操作,后来我意识到所有这些步骤都可以让计算机自己做。我修改了原来的程序,变成每次同时运行十个实验。我现学现写了若干个脚本,把下载数据、分析、比较数据和生成图形全都自动化,我只要输入一个命令就行。
我的“实验”工作变得无比轻松,我的操作不但省时省力,而且绝对准确。我有一种头脑被解放出来的感觉,我只需要专注思考实验的物理学部分。我想看什么结果马上就能看,我想做什么测试随时就能做。如果一个人反应特别慢,你问他一个问题很麻烦,你会懒得问他问题;而如果问他问题很方便,你不但会问更多问题,而且更容易问出高质量的问题。
这就是自动化的好处。计算机是一个智能的机器,它比你快、比你准,比你耐烦。你得好好利用这一点。
程序员有个信条叫做“不要重复你自己(Don’t repeat yourself, DRY)” [3]。一旦你发现你在重复做什么操作,你就应该想办法把它自动化。我有个同学有一阵买房子,他就专门写了一个程序,每天自动抓取几个网站的信息,向他汇报本地房源的变动情况。
理解了这一点,你就不难理解为什么几年前阿里巴巴公司发月饼,有程序员写了个脚本去替他抢月饼。并不是他有多么爱吃月饼,他只是抵抗不了用机械化战胜人工的这种快乐。掌握一点写自动化脚本的技能,能把计算机真正“跑”起来,让它替你去做各种事情,它就变成了一把神兵利器。你会忍不住想要用它。
3.建立自己的系统
高水平脑力工作者应该有若干个、生长在大脑之外的、信息管理系统。你大约需要一个日程表、一个待办任务列表、一个想法记录系统、一个文献管理系统和一个写作系统。
很多人写任何东西都只会用一个 Word —— 我坚决反对正常人用 Word。你要做的不仅仅是写下来,更是管理你写的东西。你需要的是轻量级的写作工具和高水平的信息管理系统。
我从读研究生的时候就开始记科研笔记。每天做了什么尝试,取得什么结果,读了哪篇论文,产生什么想法全都记在一个大本子上。我甚至还把计算结果的图形打印下来,用胶水粘贴在笔记本上。为什么不用计算机呢?因为我感到 Word 之类的工具管理这么多信息太麻烦了。但是有一天我发现一个好东西,叫 TiddlyWiki。
这是一个“非线性个人笔记本”,而且是纯自由的,不属于任何公司。我花了很大功夫,用 TiddlyWiki 定制了一个科研笔记系统。它支持图形和数学公式,方便各种样式的排版,特别是方便各条笔记之间做链接。我做的每一个项目、所有的想法、所有的实验结果都放在一起,方便检索,而且全局搜索。结果是我跟任何人讨论到科研上的什么东西,都能马上调出来。[4]
这个要点是你需要一个外部的大脑。所谓 GTD,核心思想就是大脑是用来想事儿的,不是用来记事儿的。良好的系统能让你的思路变得清晰。
4.把所有东西放在“云”上
你可能听说过某某作家因为丢失电脑而损失了多年劳动成果的故事。现代人不应该允许发生这样的事情。你的所有文档,管他重要还是不重要,都应该随时同步到云端。
“云”,是个近十年才有的概念,但是早在十几年前,人们就已经在用给自己发邮件的方式,把重要文档保存在 Gmail 之类的地方了。现在像 iCloud、Evernote、Dropbox 之类的云服务已经高度普及,使用方便价格便宜,你甚至可以在家里搞个自己的云服务器。哪怕你所有的计算设备都被破坏了,它给你带来的应该只是麻烦而不是毁灭。
而且现在云解决的不仅仅是安全的问题,更是方便的问题。你应该确保自己在任何一台电脑上、包括在手机上都能随时工作。
5.要折腾
现在可能已经改过来了,但是就在一两年前,海信和小米这两个品牌的智能电视,竟然每次开机都要强制播放十几秒的广告。我第一次听说的时候深感震惊。如果连这个都能忍,你还有什么事儿是不能忍的?
你应该在买电视的第一天晚上就想办法把那个广告机制给破解掉。这有点麻烦,但是并不要求你是个职业程序员:其实只要上网随便搜索一下,就有至少三种现成的方法。
高水平的计算机使用者总是对计算机做各种定制。计算机给你提供的,应该正好是你想要的,不多不少。有的人一开机屏幕上就是各种没用的弹出信息,有的人却能让所有网页都不带广告 [5]。哪怕是最不讲究的应用程序,为了能保住高水平用户,也会允许定制弹出信息。你要是不定制就等于接受他们的摆弄。
计算机上有无数个可设置的地方,默认值绝对不是最适合你的。一个工具用起来趁不趁手,你得非常敏感才行。如果不趁手,哪怕没有直接的可选项,你也应该设法改一改它。计算机这个机器的特点就是它总可以改。
折腾电脑是个很有意思的活动。你不用担心自己的水平,因为网上有无数人也在折腾同样的问题,很可能他们已经把答案贴出来了。你要做的只是搜索和照着操作而已 —— 而只要愿意搜索和照着操作,你就能解决绝大多数问题。
*
以前有句话说『真正的程序员认为计算机是有生命的』。我们不一定非得这么想,但是使用计算机跟使用电饭锅的确不一样。如果你积极主动地了解它、学习它、定制它、命令它、指导它、驯服它,它会给你巨大的回报。
回报包括虚荣心的满足。旁观高手把计算机使得上下翻飞,不但是一种享受,而且会让人心生敬畏。我曾经无数次目睹科学家上台作报告居然不知道怎么把 PDF 格式的 PPT 全屏。像这样的动作你用鼠标点都算露怯,应该直接敲一下键盘。我曾经不止一次,仅仅是用键盘切换个窗口,就被旁观者赞叹。使用计算机,你能不能有点“范儿”。
划重点
对于计算机,一点儿有关效率的思想和正确的使用精神:
1.用键盘,别用鼠标
2.把事情自动化
3.建立自己的系统
4.把所有东西放在“云”上
5.要折腾
如果你积极主动地了解它、学习它、定制它、命令它、指导它、驯服它,它会给你巨大的回报。
注释
[1] 推荐 Neal Ford, The Productive Programmer (2008). 这本书能让普通用户的水平立即上一个台阶。
[2] Christopher Mims, Stop Organizing Your E-mail, Says Study, MIT Technology Review, May 20, 2011.
[3] Hunt Andrew and Thomas David, The Pragmatic Programmer: From Journeyman to Master (1999).
[4] TiddlyWiki 最适合短小但是多样化的笔记。现在我整天写长文章,不搞科研,它就不适合了。我现在用 Evernote,见《我怎样管理信息》。
[5] 不看广告的人
日课精选
暂无留言
明 12月17日