引言

对于程序员来说,键盘输入是我们工作的基本方式,当你的手指在键盘上飞起来的时候,不但能够提高工作效率,还常常引来旁人羡慕的目光。下面将从不同方面介绍一些提高键盘使用效率的方法。

程序员最主要的文字输入内容是代码输入,本文将主要讨论英文和代码的输入能力,最后将稍微讨论一下如何提高中文输入能力。

准备

一说到“提高键盘输入能力”,大家都会想到要练习打字,没错,练习打字就是我们提高键盘输入能力的主要途径。在正式练习打字之前,一些相关的准备也许会帮助你在练习打字的过程中事半功倍,或是让你更有练习打字的意愿。

键盘

很多人享受打字时机械键盘的噼里啪啦声,不过并不是所有人都有购置机械键盘的计划。这时不妨试试Tickeys这款软件,它虽然不能提供机械键盘的触觉反馈,但是能够模仿机械键盘的声音,让你在没有机械键盘的时候也能享受按键声音的愉悦,让你爱上打字。

键位选择

不少读者可能听说过鼎鼎大名的Dvorak键盘家族,其拥护者宣称Dvorak键盘是更科学高效的键位设计。不过我是不推荐使用Dvorak键盘家族的。我认为,对于写代码来说,键入效率并不是那么重要,只要键入速度不拖思路的后腿就可以了,不值得为了键入效率而花费巨大的精力和时间去适应新键位。同时,还有以下理由:

  • Dvorak键盘家族的效率可能没有想象中的那么高。这些键位基本都是针对英文输入设计的,无法同时满足输入中英文都能提高效率的需求。另外,键位改变之后,各种软件中的原本好用的快捷键会变得难用。
  • Dvorak键盘限制了你的自由。如果你想在所有平台上都使用Dvorak键盘,不但会花费相当大的精力,而且会失去使用一些本身很好用的平台、设备或软件的机会,只因为它们不支持Dvorak键盘的机会。而且不论你怎么努力,你总有被迫使用qwerty键盘的时候,这时又要重新熟悉原来的键位。

总之,使用Dvorak键盘很可能是弊大于利的,如果想深入了解,可以参考这篇文章。所以,我还是推荐使用传统的qwerty键盘。

指法

标准指法是一种公认比较合理的指法方案,强烈建议学习标准指法。有的读者可能会想,我原本的指法打字也很快啊。事实上,标准指法能够提高键入效率的上限,刚刚开始输入效率会降低一段时间,练习一段时间后效率能得到很大的提升。另外,标准指法的手指分工更加科学,能够减少长时间打字产生的疲劳。

关于标准指法的详细介绍,参加标准打字指法;更多基于标准指法的建议,可以参考一个过来人的打字指法纠正之路

打字练习

输入效率的指标

输入效率的通用指标是打字速度和准确率。其中打字速度的单位是WPM,意为每分钟能输入多少单词(字)。有不少测试工具能够检测你的输入效率。在此提供一个在线测速网站:Typeracer。在 Typeracer 中,你可以在线和全世界的打字爱好者同台竞赛,测试出自己的打字速度的同时,还能大致了解自己的输入效率处于一个什么水平。

我认为,打字速度在 30 - 50 WPM即可满足一般的代码输入需求。目前我的打字速度只有 20 WPM,准确率在95%左右,看来我还需要一定的练习。

打字练习网站

不用说,盲打是效率最高的打字方式,而且熟练的打字都是靠肌肉记忆。我找到了几个广为推荐的打字练习网站,这些网站都是教会你盲打和培养肌肉记忆为宗旨。我将选择自己喜欢的网站进行正式的打字练习,你也可以选择自己喜欢的打字网站。

Typing

Typing 提供了从入门到进阶共计45门打字课程,还提供足够的不同领域的练习文本,其中甚至还有针对HTML和CSS使用者的内容。另外,还有8个打字小游戏供你练习。

我体验了几节入门课程,课程包括一些完全从0开始教起的视频教程、键入练习和穿插其中的打字小游戏。键入练习的虚拟键盘也提供了包含按键手势的的指法提示,对于不熟悉标准指法的用户非常友好。

总之,Typing比较适合从0开始,不熟悉标准指法的打字练习者。

Typingclub

Typingclub 提供了648个关卡供你练习打字,经过体验下来,Typingclub和Typing是差不多的,课程内容基本一样,只是字母的学习顺序和一些交互细节有所不同,不妨分别体验一下,选择你喜欢的网站进行打字练习。

Kebr

Kebr 网站只有这一个界面,但是其设计却大有学问。屏幕上的键位图帮助你熟悉键盘,丰富的数据监测帮助你了解自己目前的输入效率。最有特色的是其练习文本:

  • 练习特定字母的时候,文本不再是简单枯燥的“jjjfff”这种无意义的字符串,而是英文中真正会出现的字母组合。
  • Kebr 会根据你打字时的数据针对性设计文本,专门练习你的弱项字母。
  • 练习文本中字母出现的频率符合一般的英文文本中字母出现的频率,字频更高的字母你将练习得更多。

我在体验的过程中发现,屏幕中的键位图在输入时没有指法提示,在对标准指法不熟悉的阶段可能需要适应一段时间。所以,该网站比较适合对标准指法比较熟悉的打字练习者。

Speedcoder

程序员打字的特点是单词分布比较集中,需要输入大量的符号,而 Speedcoder 就是一个针对程序员打字需求的网站,为程序员提供真实的代码作为练习素材,支持 C, C++, Java, Python, Javascript, PHP等十余种编程语言,还可以上传自己的代码作为练习素材。同样的,Speedcoder 支持虚拟键盘以及指法提示,不过不像前两个那样提供按键手势。该网站适合程序员的代码输入练习。

练习方案

对于以上提供的几个网站,你既可以坚持使用一个网站进行打字练习,也可以组合使用,不论如何只要坚持练习,输入效率一定会有所提升。组合使用的话,我推荐的方案是先使用 Typing 或者 Typingclub 练习所有的按键,熟悉标准指法,然后使用 Kebr 进行巩固练习,最后使用 Speedercoder 进行代码输入专项练习,也可以在熟悉标准指法后直接使用 Speedercoder 进行练习。

快捷键

Cheat Sheet

快捷键能让程序员尽量拜托鼠标,是提高键入效率的利器。各种软件都有各自好用的快捷键,但是记忆大量的快捷键的负担是很重的,忘记自己想用的快捷键再去查询设置就有些麻烦,Cheat Sheet是一个克服这个问题的不错的选择。在Cheat-Sheets.orgCheatography这两个网站中你可能会找到你需要的Cheat Sheet,在一开始仔细阅读一下Cheat Sheet,保存起来以备查阅,

当然,不少软件查询快捷键也很方便。比如在VS Code中,可以按ctrl+k,ctrl+s来打开快捷键查询和绑定页面;或者是按F1打开终端输入命令shortcuts来打开一个实时更新的VS Code快捷键的Cheat Sheet文档。

你也可以试着建立自己的Cheat Sheet,前面提到的Cheatography即可满足你自制Cheat Sheet需求。

Vim

在写作本文时,我还不会使用Vim。出于对提高键入效率的考虑,我已经决定开始学习Vim,原因有以下几点:

  • Vim虽然是一款古老的编辑器,但是其输入思想非常高效。
  • 面对复杂的编辑需求时,Vim更是无可匹敌的存在。
  • 有些时候你将不得不使用Vim,比如ssh登录Linux时。
  • 当你使用不同的IDE、编辑器时,需要记忆大量不同的快捷键方案,即时是查阅Cheat Sheet也有些笨拙。而不少流行的IDE和编辑器往往都支持Vim扩展,学会Vim的使用后你掌握一套可以到处使用的高效快捷键方案。学习Vim将使你受益终生。

不少人对Vim陡峭的学习曲线望而却步,之前的我也是如此。Vim 不是那么可怕,这里有5个免费的资源可以用来学习它这篇文字集合了一些高质量的Vim学习方法,相信你能够通过这些资源掌握Vim。

中文写作

除了输入代码之外,程序员也有写博客、文档等中文写作需求,相信大家对自己的中文键入速度都有一定的自信,而排版会耽误一些写作时间,或者是为了省事放弃了排版。事实上,高效和美观是可以兼得的。

Markdown 是一种轻量级标记语言,非常适合博客、文档这种没有硬性排版要求的场景,Github的默认Readme文档就是Markdown 格式的,本文也是用Markdown 写作的。Markdown 语言有如下优点:

  • 语法简单。Markdown 语言最常用的语法规则不到十条,而且都很简单,能够被迅速掌握。想要快速了解常用的Markdown语法,可以参考Markdown教程语法汇总大全
  • 输入流畅。和所见即所得的富文本编辑器不同,Markdown 是一种标记语言,用纯文字就能赋予文档格式。在大部分写作场景中,Markdown 能够让你在写作时双手不离开键盘,这对提高输入效率是非常重要的。

  • 跨平台性好。在各大平台都有非常优秀的Markdown编辑器,很多博客网站也支持用Markdown写作。在不同平台上,Markdown 文档的显示效果也能保证基本一致。

如果你对Markdown非常感兴趣,可以参考Markdown 完全入门深入了解Markdown语言。

如果你使用的是Win平台,推荐一款非常优秀的Markdown编辑器:Typora。本文就是在Typora上编辑的。Typora的优点有很多,下面介绍两个比较重要的:

  • Typora的主打功能是即时渲染,能够将Markdown源码立即渲染成带格式的文本,让Markdown也能“所见即所得”。
  • Typora提供了打字机模式和专注模式。打字机模式是让当前行始终保持在屏幕中央,专注模式是将除了当前行以外的所有文字变成灰色。Typora本身的UI就非常简洁,这两个模式相互配合能够让你更加专注地进行写作,进一步提高输入效率。

参考让 Markdown 写作更简单,免费极简编辑器:Typora,了解Typora的更多特性,相信我,Typora绝对不会辜负你的期望。

总结

Programming is not about typing, it's about thinking. —— Rich Hickey

键盘输入效率虽然重要,但是追求太高的输入速度是没有意义的,只要能够满足基本的输入需求即可。对于程序员来说,最重要的是代码思想和能力,在编程的过程中真正用于键盘输入的时间是很少的,现实情况往往是思路远远跟不上你的键入速度,花费过多的时间在“提高效率”上面反而是一种浪费,不如把这些时间花在提高代码能力上面。

祝愿读者的键入效率和代码能力能够齐头并进。

如何提高程序员的键盘使用效率?——ASE第一次作业的更多相关文章

  1. 如何提高程序员的键盘使用效率(搬砖工人的自我修养(tucao))

    高软第一次作业 程序员使用键盘最常用的技能 搬运自:https://learnku.com/articles/22806    括号内为个人吐槽 1.尊重操作系统特性(如Mac OS的某些键位自定义设 ...

  2. DIY党的福利!鹅厂程序员教你200元以内制作专属分体键盘

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由VellHe发表于云+社区专栏 前言 作为一名程序员,键盘在手,天下我有啊,不整把高大上的键盘怎么提升B格.之前一直想买个机械键盘,听 ...

  3. freecplus框架,Linux平台下C/C++程序员提高开发效率的利器

    目录 一.freecplus框架简介 二.freecplus开源许可协议 三.freecplus框架内容 字符串操作 2.xml解析 3.日期时间 4.目录操作 5.文件操作 6.日志文件 7.参数文 ...

  4. [转]ThoughtWorks(中国)程序员读书雷达

    http://agiledon.github.io/blog/2013/04/17/thoughtworks-developer-reading-radar/#rd?sukey=f64bfa68330 ...

  5. 第一章-第七题( 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么? )--By 侯伟婷

    首先,“银弹”在百度百科中的解释是银色的子弹,我们更熟知的“银弹”一词,应该是在<人月神话>中提到的.银弹原本应该是指某种策略.技术或者技巧可以极大地提高程序员的生产力[1].此题目中关于 ...

  6. 【转】java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  7. 【转载】张逸--ThoughtWorks(中国)程序员读书雷达

    原文地址:ThoughtWorks(中国)程序员读书雷达 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与 ...

  8. Java架构师之路:JAVA程序员必看的15本书

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  9. JAVA程序员必看的15本书-JAVA自学书籍推荐

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

随机推荐

  1. VMWare虚拟机中网络连接类型对比

    1.NAT NAT:Network Address Translation,网络地址转换:虚拟机的网卡连接到宿主的 VMnet8 上 虚拟机与主机的关系:只能单向访问,虚拟机可以通过网络访问到主机,主 ...

  2. JS 导出网页中Table内容到excel

    <html> <head> <script type="text/javascript" language="javascript" ...

  3. vue自定义弹框

    vue 全局自定义简单弹框 https://www.jianshu.com/p/1307329aa09e https://www.cnblogs.com/crazycode2/p/7907905.ht ...

  4. 学习C/C++的简单方法

    如何学习C++呢.C和C++是很多专业的必修课,尤其对计算机专业来说,更是重中之重.C++语言是早期发展的高级语言,具备执行速度快,语法优美等特点.是底层高效率系统的首选开发语言.今天就和大家分享一下 ...

  5. 数据结构实验之图论三:判断可达性(SDUT 2138)(简单DFS)

    #include <bits/stdc++.h> using namespace std; int gra[1002][1005]; int vis[1002]; int n,m; voi ...

  6. xshel链接linuxl安装nginx

    原文链接:https://blog.csdn.net/Sweet__dream/article/details/78256952?utm_source=blogxgwz9 这个连接更详细:https: ...

  7. 下载MAMP

    下载https://www.mamp.info/en/downloads/ MAMP PRO will create copies of the MySQL databases located in ...

  8. hadoop 2.x HA 出现ssh不能解析问题记录。

    在docker里面安装hadoop HA 在启动或者停止的时候报ssh不能解析问题. 问题现象: 发现图片不清晰:把问题现象粘贴如下: root@master:/usr/local/hadoop-2. ...

  9. java读取excel文件数据导入mysql数据库

    这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...

  10. 2018-2019-2 20165222《网络对抗技术》Exp9 Web安全基础

    1.实践过程记录 1.字符串型注入. 2.整数型注入 3.注入语句查看其他内容 4.xss是一种漏洞,这种漏洞允许用户输入脚本并且浏览器提交的时候不加编码.这种东西是最为流行并且有害的web应用的问题 ...