我为什么要求团队成员盲打
涛叔工作中接触过好多工作多年程序员,都不怎么会盲打。我浏览了社区对盲打的讨论,大致有如下观点:
- 能写出代码就行,盲不盲打无所谓
- 多数时间在思考和设计,编码的比重不大,盲打不是主要矛盾
- 应该把精力放到计算机科学和软件工程知识的学习上,盲打浪费时间
今天我说一下自己的看法。先说结论,程序员必须盲打。
可为什么呢?盲打是为了打字快吗?我们又不是打字员,至于这样吗?
请大家思考这样一个问题。我们中国人吃饭多用筷子。我们在吃饭的时候关注的都是菜的色香味,根本不会在意筷子要样拿。我们姑且称之为盲筷吧。但这种技能是与生俱来的吗?显然不是。你能想像一个美食家在点评美食的时候还要不断尝试夹筷吗?反正我没法想。
说回盲打。盲打不是为了打得快,而是为了解放大脑。就像盲筷一样,我们在打字的时候应该关心的是思考,是表达,而不是按哪个键。我们吃饭的时候会自然拿筷子,我们走路的时候会自然跆腿,我们骑行的时候会自然扶车把,等等等等。我们关注的是目标,而非实现目标的手段。这是我认为盲打和非盲打的区别。
大家可以把我们的大脑想像成一台计算机。如果不会盲打,就像没有 DMA 单元,每次 io 操作都会触发中断,打断 CPU 当前的执行过程;如果会了盲打,则如同装备了 DMA 单元,CPU 不会被频繁打断。
再反驳一下「盲打不是主要矛盾,应该把精力放到计算机科学和软件工程知识」的观点。盲打确实不是主要矛盾,可学习盲打也占用不了多少时间。每天有意练习的话,一到三个月肯定能盲打了。只是谁也不知道一个人要学会盲打到底需要多长时间,因为有这种不确定性,索性就不去尝试。学习盲打并不会占用你学习其他知识太多的时间。这种时间甚至是可以怱略不计的,但这种技能一旦掌握,受用终生,投入产出比极高。
俗语有云:「工欲善其事,必先利其器。」盲打就是「器」的一种。学习盲打本身就是一种严于律己、精益求精的表现。盲打本身也不是什么高大上的技能,花点时间总会练成。
不过现在社会太浮躁。大家习惯了快节凑,习惯了「立等可取」。你让他花一两个月练习盲打确实有点奢望了。
一家之言,供大家参考。