很多时候,我解决问题的主要方法是靠搜索,但很快我发现了,下次我遇上同类问题,我依然不记得如何解决,还得继续搜索答案。
以 ssh 命令为例,我总是记不住 ssh -R , ssh -L , ssh -J 的用法,查过很多次,直到有一天我决定彻底解决它。我花了大概半个小时学习了 ssh 命令的相关知识,也写了笔记,我意识到知识短板不补依然会是短板。
师兄有个习惯,遇上不会的命令就查 man 手册,将所有命令行参数过一遍,然后把所有可能用上的参数记录下来学习一遍。我一度非常不理解,觉得这是教条主义。 后面才觉察,师兄是在内化学习,一个命令有 20 个参数,最常用的可能就 7,8 个参数,记住了这些关键参数,下次就用不再看冗长的 man 手册了。
以我为主的知识学习,带来强大的掌控感,少即是多,关键是到底掌握了多少用的上的知识。
你的知识短板并不全都显而易见。事实上,大多数的知识短板,你只能隐约觉察到。对于自己不知道的,你很难清楚地意识到,也很容易忽略。
知识短板会阻碍你进步。准确识别它们的最佳方式之一就是看看自己在哪些工作上花费了大量的时间,或者一直进行重复性劳动。通常,你会发现,自己的知识短板使工作速度放缓,额外需要大量的时间完成任务。由于理解得不彻底,你只能摸索着前进。这正是我不理解Lambda表达式的时候发生的情况。我花了大量的时间去调试代码,而不是用几个小时去理解它。
重复性工作也是如此。任何你所做的重复性工作都值得彻查一番,看看是否有自己不理解的地方,如果你这样做了,可能会提高你的工作效率。想想键盘快捷键。你一直重复使用某个应用,但是并没那么高效,原因是你不得不手动在屏幕上拖曳鼠标并点击。键盘快捷键可能就是你的知识短板。花点儿时间学习每天会用几个小时的应用(提示:你的IDE编程环境)的快捷键,一周能给你节约好几个小时的时间。
另一种识别知识短板的方法就是,时刻都要试图了解自己不理解或不清楚的事物。你可以维护一份清单,列出自己需要去研究或者自己不清楚的所有事物,追踪有哪些主题总是不断出现在这个清单上。你会惊讶地发现这份清单的增长速度有多快。 你只要对自己坦诚:如果遇到不理解的知识,不需要马上就学会,但是一定要把它添加到清单中,这样你至少可以找出自己的知识短板。