盲打——开发人员最重要的技能,却鲜有人提及

2025-06-08

盲打——开发人员最重要的技能,却鲜有人提及

作为一名开发人员,我一个工作日提交的代码量差异很大,但大约 8000 个字符的代码量或许是一个合理的估计。
在我学会盲打之前,我的打字速度大约是每分钟 30 字。
这意味着我大约 50 分钟就能打完所有这些代码。我现在的打字速度大约是每分钟 70 字,所以我每天只能节省 30 分钟。

作为一名开发人员,我不受打字速度的限制,思考代码、阅读代码、寻找正确的位置来更改单行代码以修复错误比我的原始代码输出更重要。

总而言之,触摸打字似乎只是一项小小的优化,那么为什么触摸打字是我作为开发人员学到的最重要的技能呢?

为什么盲打很重要

很多对我来说最重要的事情可能也带有个人和主观色彩。但我仍然相信,以下这些事情不仅对我适用。

同步代码和想法

思路的流动并不连贯。我们常常突发奇想。此外,我们的思维并非以线性、自洽的方式涌现。我们常常只能将并非直接相连的想法联系起来并结合起来。
对我来说,盲打意味着思考代码和编写代码之间的间隔更小。我可以快速地将之前必须记在脑子里的想法打出来。无法在编辑器中跟踪我的思维过程迫使我不得不在脑子里进行更多步骤的思考。
打字让我的编码方式更加迭代。编写不会出现在最终提交中的代码完全没有问题。我经常担心写出的代码是否干净,这限制了我,减慢了我的速度。现在我可以编写代码而不必担心它的外观,因为输入一行代码后立即重构它非常容易。

它还涉及导航和编辑代码

在学会打字之前,我无数次尝试使用 VIM(以及它的快捷键),却始终以失败告终。我尝试过,但始终没能形成以 Vim 方式导航和编辑代码的肌肉记忆。没人告诉我,打字技能几乎是 VIM 的硬性要求。
在我学会盲打之后(尽管我打字速度仍然很慢),我只花了一周时间就掌握了足够的 VIM 技能,感觉自己效率很高。
“写代码”其实只有一小部分是写代码。我们很容易忽视,代码操作很大程度上在于编辑和导航。

我们输入的不仅仅是代码

通常我们专注于编写实际的代码,还有很多事情需要输入,以便我们可以将它们贡献给产品/团队/讨论:

  • 代码审查
  • 松弛消息
  • 文档
  • 用户故事
  • Stack Overflow 帖子
  • ...

无需看字就能打字与盲打不同。

这里我只能说说我自己:
现在打字不用看键盘了。这很难解释,但盲打时用同一个手指按同一个键的感觉和以前还是很不一样。实际打字所需的注意力远不如以前那么多,我几乎可以完全专注于代码。

为什么没人谈论盲打

在开发者中,主要分为两类。
许多开发者在学校早期就学会了盲打。因此,他们认为盲打是理所当然的,并没有意识到它对他们工作的影响有多大。而
那些在童年时期没有学习盲打的开发者则需要投入大量的时间和精力,在真正体验到盲打的好处之前,学习打字
需要时间。大多数人即使多年不按系统打字,仍然能够打得很快。作为开发者,我们依赖于效率。学习打字意味着一开始速度会慢很多,这可能会让人感到害怕。
因此,成年后学习打字的人并不多。
对我来说,学习盲打非常值得。因为我每天都从这个决定中受益匪浅,所以我想分享我的经验,甚至鼓励别人也去学习,任何时候都不晚。

我的盲打之旅

因为我一生都在无系统地打字,积累了一些肌肉记忆,所以重新学习手指动作对我来说很困难。
因此,我选择了最激进的方法:

COLEMAK 获胜

我把积攒的所有假期都用上了,每天都把键盘布局从QWERTY换成COLEMAK。
说实话,这简直是地狱。突然间我完全打字打不出来。看着键盘也完全没用了,因为键帽上的字母和实际的字母完全不符。
我甚至连在浏览器地址栏里输入一个短网址都费劲。

为了慢慢地重新学习所有内容,我使用了网站https://www.keybr.com/,从尽可能最小的键盘开始。
为了避免看着自己的手,我打印了一份 COLEMAK 图表并将其贴在显示器后面的墙上。
当我最终进步到 keybr 上的完整键盘时,我切换到https://www.keyhero.com/进行日常训练。
两周后,我的打字速度仍然比以前慢,但至少足够快,可以重新开始工作而不必担心跟不上。
从那时起,我从每天 6 小时打字练习减少到下班后仅 2 小时。又过了一个月,我不再每天练习,只是偶尔练习。
大约四个月后,我才感觉打字对我来说很自然。现在我的打字速度仍然不是太快(大约 70 WPM),但我认为速度只是盲打对我的工作产生的积极影响的一个次要因素。

让我听听你的想法

你对此有什么看法?你同意还是不同意?为什么?
我对各种想法、观点和经验都很感兴趣。但我更想听听那些在人生后期才开始学习盲打的人的意见,看看他们是否有类似的经历。

鏂囩珷鏉簮锛�https://dev.to/davidsanwald/touch-typing-the-most-important-skill-for-developers-nobody-talks-about-3352
PREV
使用 pipenv 设置 Python 开发环境 其他有用的 pipenv 命令
NEXT
如何通过遵循一个简单的原则在 TypeScript 中设计更好的类型