如何提高程序员的键盘使用效率?——ASE第一次作业
引言
对于程序员来说,键盘输入是我们工作的基本方式,当你的手指在键盘上飞起来的时候,不但能够提高工作效率,还常常引来旁人羡慕的目光。下面将从不同方面介绍一些提高键盘使用效率的方法。
程序员最主要的文字输入内容是代码输入,本文将主要讨论英文和代码的输入能力,最后将稍微讨论一下如何提高中文输入能力。
准备
一说到“提高键盘输入能力”,大家都会想到要练习打字,没错,练习打字就是我们提高键盘输入能力的主要途径。在正式练习打字之前,一些相关的准备也许会帮助你在练习打字的过程中事半功倍,或是让你更有练习打字的意愿。
键盘
很多人享受打字时机械键盘的噼里啪啦声,不过并不是所有人都有购置机械键盘的计划。这时不妨试试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.org和Cheatography这两个网站中你可能会找到你需要的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第一次作业的更多相关文章
- 如何提高程序员的键盘使用效率(搬砖工人的自我修养(tucao))
高软第一次作业 程序员使用键盘最常用的技能 搬运自:https://learnku.com/articles/22806 括号内为个人吐槽 1.尊重操作系统特性(如Mac OS的某些键位自定义设 ...
- DIY党的福利!鹅厂程序员教你200元以内制作专属分体键盘
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由VellHe发表于云+社区专栏 前言 作为一名程序员,键盘在手,天下我有啊,不整把高大上的键盘怎么提升B格.之前一直想买个机械键盘,听 ...
- freecplus框架,Linux平台下C/C++程序员提高开发效率的利器
目录 一.freecplus框架简介 二.freecplus开源许可协议 三.freecplus框架内容 字符串操作 2.xml解析 3.日期时间 4.目录操作 5.文件操作 6.日志文件 7.参数文 ...
- [转]ThoughtWorks(中国)程序员读书雷达
http://agiledon.github.io/blog/2013/04/17/thoughtworks-developer-reading-radar/#rd?sukey=f64bfa68330 ...
- 第一章-第七题( 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么? )--By 侯伟婷
首先,“银弹”在百度百科中的解释是银色的子弹,我们更熟知的“银弹”一词,应该是在<人月神话>中提到的.银弹原本应该是指某种策略.技术或者技巧可以极大地提高程序员的生产力[1].此题目中关于 ...
- 【转】java架构师之路:JAVA程序员必看的15本书的电子版下载地址
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- 【转载】张逸--ThoughtWorks(中国)程序员读书雷达
原文地址:ThoughtWorks(中国)程序员读书雷达 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与 ...
- Java架构师之路:JAVA程序员必看的15本书
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- JAVA程序员必看的15本书-JAVA自学书籍推荐
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
随机推荐
- [51Nod 1244] - 莫比乌斯函数之和 & [51Nod 1239] - 欧拉函数之和 (杜教筛板题)
[51Nod 1244] - 莫比乌斯函数之和 求∑i=1Nμ(i)\sum_{i=1}^Nμ(i)∑i=1Nμ(i) 开推 ∑d∣nμ(d)=[n==1]\sum_{d|n}\mu(d)=[n== ...
- python pip获取所有已安装的第三包
pip freeze > requirements.txt # 生成txt 文件 pip install -r requirements.txt # 别人使用时可以直接安装所有的包 [progr ...
- 使用JSP/Servlet技术开发新闻发布系统---Servlet基础
Servlet简介 什么是Servlet 其实就是一个类,主要负责处理用户的请求和做到数据的相应以及页面的跳转,基于Java技术的Web组件 Servlet API Servlet接口 Servlet ...
- h5css样式
兼容性前缀: 谷歌:webkit 火狐:moz ie:ms 欧鹏:o选择器: 属性选择器: * = 包含 {href * = 'www'} ^ = 以什么开头 $ = 以什么结尾 伪类选择器: 第一个 ...
- PHP 函数运行的内存
函数在运行期间占用的内存,在运行结束后会被回收.但是还有问题不明白,函数内部的echo在函数执行结束后还占用内存吗??? //PHP 函数执行完内存就会被收回 function test() { ec ...
- 004_simulink建立子系统
1. 按照<001_创建simulink>文件内容修改 2. 在选中的位置右键,选择create subsystem selection 3. 得到如图所示 4. 双击subsystem进 ...
- 普通页面引入React(使用和不使用JSX)
1. 不使用JSX 优点: 不用配置有关JSX的编译. 依赖语法: React.createElement(component/type, props, ...chilidren); //第一个参数可 ...
- Mysql存储过程查询数据插入别的表里。
DELIMITER// CREATE PROCEDURE setRoomManger2() BEGIN ); ; DECLARE cur CURSOR FOR SELECT roomid FROM n ...
- react的登录逻辑
https://blog.csdn.net/qq_36822018/article/details/83028661(先看看这个 https://blog.csdn.net/weixin_342681 ...
- SD六校联考二轮
数据差评 D1T1 string 直接模拟 每次 string_u = const_string + string_v 理论得分 30 实际可得 100 D2T1 n^2 理论得分 30 实际可得 1 ...