打字教程

程序员打字:真正拖慢你的是哪些键

约 6 分钟读完 · 最后更新:

一个在普通文章上能打到每分钟 80 个词的程序员,写代码时常常掉到一半,原因并不是内容更难理解,而是代码主要由普通打字练习从不触及的那些字符构成。

英文文本绝大部分落在基准行及其紧邻的字母上。代码则充满了花括号、方括号、尖括号、下划线、分号、等号和箭头——它们全都住在键盘边缘,而且大多需要配合 Shift。

时间到底花在哪

以下是持续消耗程序员最多时间的字符,大致按「难受程度」排列。

字符位置为什么慢
{ 和 }右边缘,需 Shift小指够取,外加对侧 Shift,而它是 C 系语言中最常用的一对。
( 和 )数字行 9 和 0,需 Shift右手较弱的手指要向上做长距离够取。
_0 的右侧,需 Shift整块键盘上最远的常用够取。
[ 和 ]右边缘右手小指,凭手感极易与花括号混淆。
< 和 >逗号与句号,需 Shift泛型、JSX 和箭头中随处可见;需在下排配合 Shift。
=> 和 ->双键序列把别扭的够取和一个几乎没人专门练过的转换叠加在一起。
| 和 \回车键上方右手小指最大限度伸展,而且不同布局位置还不一样。

练转换,而不是练单个字符

孤立地练一个花括号几乎没用,因为花括号从不孤立出现。真正消耗时间的,是从字母到符号再回到字母的移动,而且中间某处还要按一次 Shift。

要练你真正会打的序列。落到实处,就是一份每天要出现几百次的组合清单。

  • 把 (); 和 {} 当作完整单元来练,包含右括号在内,而不是当成一个个孤立字符。
  • 你所用语言的箭头形式:JavaScript 的 =>,Rust、Go 和 C 的 ->;如果你在两者之间切换,就都要练。
  • snake_case 和 CONSTANT_CASE,它们把下划线的够取和普通字母串联了起来。
  • === 、!== 和 >=,这些是两三个符号键直接相连的情形。
  • 「引号 + 内容 + 收尾引号」这一整套循环,很多人恰恰在这里彻底丢失位置。

让编辑器替你干活

代码输入速度的一部分最大提升,来自根本不去打。这不是偷懒:它恰好消除了那些最慢、最容易出错的击键。

  • 自动补全括号意味着你只需打开括号。要学会「打穿」右括号,而不是把它删掉重打。
  • 代码片段能把三个字母的触发词展开成一整段结构。
  • 多光标可以用一次编辑替代十几次相同的改动。
  • 用 Ctrl 或 Cmd 加方向键做按词导航,可以避免狂敲方向键——出人意料的大量写码时间就消耗在这上面。

有一点值得说明:如果完全依赖补全而从不去练符号的够取,那么一旦离开你配置好的编辑器,你就会变慢——终端、远程会话、代码评审框和面试环境都算在内。

打字速度对编程重要吗

说实话,没有打字爱好者宣称的那么重要。程序员一天中的大部分时间用于阅读、思考和调试,每分钟打 120 个词并不会让你更快读懂一个代码库。

真正重要的是:打字不应该打断思考。当你不得不停下来找一个花括号时,你就丢掉了正在构建的那条思路。目标不是纯粹的速度,而是让「写代码」这个机械动作不再和真正的问题争夺你的注意力。

本站训练器的第六关就是真实源代码,包含上文提到的括号、下划线和箭头序列——正是因为普通文章练习完全碰不到它们。