不知道自己不知道

不知道自己不知道

一言不合,就写一个文件上传工具,又或是写一个转换器,又或是写一个分发器。表面上看,都是很简单的东西,但让newbie一动手就会发现困难重重。并且,会因为“连这么简单的东西也做不好”,而感到沮丧。

或许这就是典型的:不知道自己不知道。

在计算机的世界里,文件上传、文件目录树、parser、shell,本身就是一款款不简单、不平凡的程序。但是,由于实力太差,你根本认识不到这个事实。

通常,很多人还会排斥或懒于去写这些工具。又或是想、却又不敢去造轮子。为什么没办法静心去写一个小工具如聊天通讯产品,从头去写一个框架如Spring、一个容器如tomcat?

或许就是源于“不知道自己不知道”。你无法理解和评估所要写的东西有多大难度、要耗费多少精力。于是你整个就迷失了目标,看不到价值和方向。

细想起来,为什么写一个工具,或者造轮子如此困难?因为它强制性地要求你理清楚貌似简单的东西背后的细节。进而在你理清的细节基础上,灵活地运用它们,把它们变成最后的编程产物。

从这个角度来讲,造轮子是一种极其严酷的训练,像数学的公理体系构建一般,强制性地把所有细节搞清楚。

为什么单纯地看源代码会感觉毫无滋味?为什么非得去添加一两个feature、修改一两个bug就感觉有了滋味,似乎也能看到这段代码的精髓?为什么都不提倡新手只是阅读源代码,必须要动手做做。而某些高手,却能够一看就懂?

原因还是在,你不知道你不知道。没有动手之前,没有对这个目标做“重复造轮子”的动作之前,你甚至根本不知道哪些东西是困难的,哪些东西在这个已有产品的解决方案中是精髓、是重点。你都不知道。

但是,只要你开始从零开始写一遍,只要你开始亲自造轮子,你就能从“不知道自己不知道”变成“知道自己不知道”。这就是造轮子的价值:让自己的认知再升级一层。

反过来讲,为什么高手可以相对走点捷径,有时不必动手操作?因为他的实力已经远远高于你,能够在这个领域做到“知道自己不知道”。当然,如果这些高手想要进一步精进,他也不得不通过造轮子和实践来继续探索自己的“不知道自己不知道”的领域。

这就是造轮子的价值:不在于为这个世界重复创造了多少冗余,而是一把利器,帮助你穿破“不知道自己不知道”的迷雾,做一次认知上的再升级。

所以在软件的世界里,你必须要勤快一点,像一名匠人亲自去重新制作一下已有的产品,让自己能够知道自己的不知道,进而才能明确什么方向是对,什么方向是精髓。

为什么说到了一个新领域、新公司,没有磨练上三年就不要谈战略?因为这个时候你还在不知道自己不知道的状态。你得通过实践,知道了自己的不知道,才能更中肯、客观地看问题、提方案。

为什么总是觉得别人的行业好,而自己所在的行业不怎么样?也是如此:你在别人的行业就是那个“不知道自己不知道”的人,所以看不到坑,只能看到好。而自己的行业,你清楚自己的不知道,于是漫坑遍野,感觉很糟糕。

而再进一步有了更多的积累,经历了“不知道自己知道”,你逐渐变成“知道自己知道”,信心就会增加很多,看事情也淡定不少。


近期回顾

Blitzscaling的战斗哲学
抽象概念的习得之路
机变


如果你喜欢我的文章或分享,请长按下面的二维码关注我的微信公众号,谢谢!

更多信息交流和观点分享,可加入知识星球:

https://press.one/file/v?s=b6ea9804b69b56da90ef1dbda6d92b1383e24d1fbcc79453e0ef462fd55f78b6fcf4aaa16c07e102994ce370c0fe58f12a57331400bd0c5fc8469a7c7435b5791&h=966b6167e4af4976ed0e3b71b794f3b3a99a7348e507e5849cc9f3fe23a1958b&a=e37dc7ad240ce4bfcd9cb80ee7e8715b85fd5fbb&f=P1&v=2

发表评论