程序员打字:真正拖慢你的是哪些键
约 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 个词并不会让你更快读懂一个代码库。
真正重要的是:打字不应该打断思考。当你不得不停下来找一个花括号时,你就丢掉了正在构建的那条思路。目标不是纯粹的速度,而是让「写代码」这个机械动作不再和真正的问题争夺你的注意力。
本站训练器的第六关就是真实源代码,包含上文提到的括号、下划线和箭头序列——正是因为普通文章练习完全碰不到它们。