@R星校长

这一讲咱们说说如何高效地使用计算机。注意是“计算机”,是那种传统的、有实体键盘的、真正的计算机,是生产力工具,而不是手机、平板之类的娱乐和社交设备。现在有些人说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] 不看广告的人

转载来源《万维钢·精英日课4》2020.11.11日



像高手一样使用你的计算机相关推荐

  1. 从零开始学计算机组装与维修技术,从新手到高手:电脑组装、维护与故障排除...

    从新手到高手:电脑组装.维护与故障排除 语音 编辑 锁定 讨论 上传视频 <从新手到高手:电脑组装.维护与故障排除>是2010年年清华大学出版社出版的图书.[1] 书    名 从新手到高 ...

  2. 大学计算机基础超详细知识点(高手总结),大学计算机基础超详细知识点(高手总结).doc...

    大学计算机基础超详细知识点(高手总结).doc 第一章 计算机及信息技术概述 电子计算机的发展历程 ①1946年2月由宾夕法尼亚大学研制成功的ENIAC是世界上第一台电子数字计算机."诞生了 ...

  3. 一个计算机高手的成长--转载

    主题:一个计算机高手的成长(来自计算机爱好者论坛) 这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能  够为国内IT的发展尽自己一份微薄的力量.最近看到很多学生朋友和我当 ...

  4. 计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)

    9.俄罗斯方块(四)失败 编码,编码,努力的编码.再接下来的几天里,木鸿飞如同笔者一般,一有空就开始码字.当然他码的是英文程序,笔者码的是中文汉字,他在笔记本上码,笔者在笔记本电脑上码.终于大约两千行 ...

  5. 学计算机发展方向,2021女生学计算机专业好吗 有什么发展方向

    女生学习计算机专业的就业方向还是什广泛的,因为现在计算机行业发展迅速,社会人才的需求量大增,而女生在计算机行业的就业人才还是很紧缺的. 女生学计算机专业好不好 对于女生来说如果对计算机有兴趣的话,那么 ...

  6. 计算机主板的功能论文,计算机主板论文题目推荐 计算机主板论文题目怎么取...

    [100道]计算机主板论文题目推荐,每一个论文题目都是精选出来的,看了后定能知晓计算机主板论文题目怎么取等相关写作技巧,让计算机主板论文写作轻松起来! 一.比较好写的计算机主板论文题目: 1.基于Ch ...

  7. 我的计算机学习过程与.net学习过程(一):大学之前(转)

    最近园子里有不少讨论职业发展.技术前景方面的文章,今天也看了"带着自己飞翔"的<.NET不死,为什么企业招聘都要java?>这篇文章,有点感想,回想起自己学习计算机的过 ...

  8. 我的计算机学习过程与.net学习过程(一):大学之前

    最近园子里有不少讨论职业发展.技术前景方面的文章,今天也看了"带着自己飞翔"的.NET不死,为什么企业招聘都要java?这篇文章,有点感想,回想起自己学习计算机的过程,学习.net ...

  9. 为什么计算机共享查看不了,为什么在网上邻居里看不到其他共享的电脑,

    2004-10-19 我和楼上的同事共同用一根电话线上网(adsl),都能正常浏览网页,也能互相用ping拼通对方的IP地址,但就是不能在网上邻居里看到对方的电脑(只能看到自己的电脑,工作组设置是一样 ...

最新文章

  1. hive同时不包含一些字符串_Hive中常用的字符串操作
  2. 关于scriptManager与JS代码兼容问题
  3. 前端学习(1269):axios的拦截器
  4. Linux: Apache 安全设定
  5. Spring 计划 7.0
  6. NLP大牛菲利普•科恩机器翻译权威著作
  7. 最新添加了一键加入服务器的功能,功能介绍 - 晴天漫画系统 晴天漫画程序 基于标签的一套自动采集更新漫画系统...
  8. 某学校买了一批计算机配置为,初中信息技术考试选择题
  9. 如何用管理员权限打开CMD(快捷键)
  10. Raid磁盘阵列并管理
  11. 用C语言输入半径求球体的体积
  12. STC12C5A60S2最小系统
  13. 安卓逆向 -- AndroidKiller介绍
  14. nowcoder刷题总结
  15. The project uses Gradle 4.1 which is incompatible with Java 11 or newer
  16. 如何将WPS中新建表格下的空白行去掉?
  17. GEA无法运行Python 程序
  18. 洛谷 P1862 输油管道问题
  19. 教程六 在Go中使用Energy创建跨平台GUI - 应用下载事件
  20. Visual Studio 2019调试HTK代码

热门文章

  1. c# winform vlcPlayer播放器
  2. HikariPool-1 - Shutdown initiated... HikariPool-1 - Shutdown completed. Stopping
  3. 李宏毅机器学习特训营之作业二年收入判断
  4. 【计算机网络】MAC地址、IP地址以及ARP协议
  5. 2018年的个人总结
  6. WifiInfo(二)
  7. 来自python的【set集合总结/frozenset】
  8. java 调用tesseract_通过maven调用tesseract引擎
  9. SQL-在Update中进行子查询和左联查询
  10. 主流浏览器汇总(火狐,OPera,safari,谷歌等)