程序猿为什么要看源码
姑姑家的弟弟比我小七岁,小时候我带着他玩,有一次一起玩,他问起了“什么动物大的问题”,我说出来一个动物,他就会马上追问:“有比这个动物大的吗?”,就这样问了好几轮,受知识所限,我回答到“蓝鲸”之后问答停止
当长大之后,他不再像小时候那样提问题了,我也不在为一个提问多想了,我们都丧失了那种打破沙锅问到底的精神
好多时候我们的认知过程是分为 WHAT, HOW, WHY 三个层次,我们也习惯性的停留在 WHAT 阶段
WHAT
这个层次是最简单的, 对于多数人来说,智力没缺陷,也不超群,我们只需运用"记忆力"即可解决,短时间内就可以完成对某一事物或问题的认知,无论是什么问题,知道 What is it?, 也就具备了“谈资”;因为简单,这个层次也是我们的舒适区。但是仅仅在这个层次停留我们看到的很多都是表象,看山是山,看水是水
HOW
认知过后,怎样玩起来,单纯靠记忆力是解决不了问题的,我们需要查阅相关资料,看“攻略/辅助说明”,在这个过程中,我们慢慢了解 How to do?,但同时也产生了思想碰撞,发现在 WHAT 层次看到的和现在理解的貌似有偏差,看山不是山,看水不是水
WHY
HOW 是怎样玩起来,WHY 就是怎样玩转,我们在深入了解 WHY 的过程,不但需要动用分析、推理、归纳、总结等各种思维能力,可能还需要跨学科,跨领域,这个过程很痛苦,因为完全不在我们的舒适区,违背人性,但 世之奇伟、瑰怪、非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。前段时间看《码出高效》一书,里面有一句话让我印象深刻 “先让自己骑到老虎身上” ,倒逼输出,玩转了,当我们回看,看山还是山,看水还是水
三个阶段的闭环
看到这里,作为程序员,我们要看源码吗?也许答案已经一目了然,我们只需重拾那种 打破沙锅问到底 的精神,好比侦探,带着疑问,排除,验证,推敲,发现答案,你就是 Sherlock Holmes ,欣赏人迹罕至之美景,前行的道路,我们一起.