编程、输入法和打字速度

6 minute read

学习编程是否需要好的输入法?是否需要很快的打字速度?编程萌新可能会遇到这两个问题。你可能更更想问学编程是否需要英语?是否需要数学?别问,问就是需要 :)

我们想做一些事的时候,总会担心自己基础不够,那个差、那个也差,这个应该补一补,那个也应该补一补,并且我们非常希望这件事能够在短时间内完成。这意味着什么?意味着我们想通过自己扎实的基础去快速学习、快速完成一件事,如果完不成就会自然而然地放弃,而不是惩罚自己。这是人性,这是人天生自有的速成倾向。

因此我们需要衡量一下,学编程需要多少时间,学输入法需要多少时间,学快速打字需要多少时间?这里隐含的其实是机会成本。什么是机会成本呢?机会成本衡量的是在两种或多种物品直接的利益取舍,为了简化起见,一般是在两个物品直接衡量机会成本。一般我们衡量机会成本不是算立刻拿出的时间或费用,而是根据相对严密的数学运算,进行心理预估,进行抉择时,失去一种物品的收益而接受另一种物品的收益。

19c7120a9b916cb490ec1b22c9742642

我们无法在同一时间内既学习编程又学会高效的输入法,还把打字速度也练得很快。因此我们会进行权衡取舍,哪个的学习成本低、学习收益高,哪个学习成本高、学习收益低。虽然我们都是理性人,会去考虑边际量,比如学会了编程,能够去参加工作、能够做一些工具,能够做有效益的事,并且编程越厉害,越是有更多高薪工作,能做出高效工具。但是,我们也会因为编程有点困难,一时之间无法突破障碍、陷入僵局,不做这主要的 A 事情,而去做 BCDEF事情。结果呢,A 多半没做好,BCDFE 可能做到了,但对 A 没有任何帮助。

在我大学最早接触编程的时候,还是用 C 语言来写 Hello World。因为不熟悉键盘布局,还是尖起两个食指去找字母和符号,比如# {} //。那时我从来没想过会是因为输入法、打字速度影响我学编程。我只知道,如果编程需要用到这些字母符号那么我就会去找它们,如果有自己熟悉的但是很重复的,就会用到 Ctrl+C 和 Ctrl+V 。后来,我在学习编程的时候,一边听老师上课,一边跟着老师敲代码,真的就不知不觉会去按那些原来看起来很陌生的字母,打字速度就是在编程的练习中提高的。

742c3242e17ff34c69c4da879cb40579

后来的后来,我想精进自己领域的技术,还是得去看一些书,做一些笔记。我尝试去抄书来深度学习,但即便是用键盘打字,没有手写还是很费力。因为我还是用的拼音输入法,错字率不仅略高有时输入一个拼音需要翻一两页找,而且有时还会切换英文去输入字母。切换翻页切换翻页,这么下来效率很低。于是我去找了找有什么输入更高效的输入法。还真找到了,网上说的是拼音输入法的输入效率最低,然后排名分配是 双拼 < 五笔 <= 二笔。听说有时五笔最高效,我经过几天尝试还是没能掌握,二笔也是因为没有找到个合适的学习材料终止。但现在想起来,输入法还真没有成为我在编程上的障碍,只是我想再跳一跳摘到更高的桃子时的一个垫脚石。既然我没有掌握它,到不如把现在的输入法多加联系,把拼音输入法的石头多垫几层,多用点时间而已。

1

原来真相是这样:当我做好编程这件事的时候,其他的事情也会跟着好起来,输入法越用越灵活,从两个手指敲键盘到盲打。关键还是从做好一件事开始

最后,类比英语和数学的基础在编程中的需求情况,现在你是否知道自己需不需要它了?想学编程还是不用关注英语是否扎实,数学思维是否够灵活。重要的还是投入时间去看编程的基础概念,去动手编码验证结果,脱离教材去尝试面对白板去写代码。