原野: 嘿,你有没有听过一句老话,叫“不要重复发明轮子”?最近感觉这句话都快成金科玉律了,好像一说要搞点新东西,就得先去网上搜一圈,看看有没有现成的轮子可以用。但我总觉得,这话说得有点…扼杀创造力?你怎么看?
晓曼: 哈哈哈,可不是嘛!这句话听着好像是帮你节省时间,实际上是劝你别思考。你想想,当年那些真正的大牛,要不是先从“自己搓个小轮子”开始,哪儿来的汽车、飞机啊?
原野: 嗯,有道理。那你觉得,咱们自己重新“发明轮子”,对学习真的有帮助吗?
晓曼: 绝对有帮助!我跟你说,很多东西啊,“不能创造,就不能真正理解”。就拿编程里最简单的字符串来说吧,你直接用现成的库,一行代码就搞定了。但你要是自己写一个字符串类,去处理字符编码、内存分配,保证遇到bug的时候,你就知道它内部有多复杂了。
原野: 哇,自己写字符串库?听着就头大…
晓曼: 哈哈,别怕!又不是让你写到工业级别,做一个玩具版本就行。就像小时候玩乐高,先搭个小房子,再慢慢把它改成城堡。重点是那个过程,理解它的运作方式。
原野: 明白了。那是不是像路径处理、文件操作这些基础的东西,也应该自己“造轮子”?
晓曼: 对!编程里的“兔子洞”可多了去了。你自己做一个路径解析库,体验一下斜杠、反斜杠、相对路径那些细节,保证学到的东西比单纯看文档多得多。而且,你还会发现,有些库的设计简直是反人类!
原野: 这么说,重塑轮子除了学技术,还能带来啥好处?
晓曼: 好处可多了!一来,你可能做出更适合自己特定场景的“轮子”。二来,学会如何修复和改造现有的“轮子”。三来,以后给新人讲原理的时候,你就是第一手教材!四来,你会了解到那些“轮子”的发明者当初为啥要这么设计。再者,你会认识到,构建大型系统,其实就是各种小轮子的拼拼凑凑。
原野: 这听起来有点像烹饪,得自己先做一次蛋糕,才知道烤箱、面粉、糖该怎么配比。
晓曼: 完全正确!不过,这其中也需要平衡。现成的方案速度快,但不一定贴合你的特殊需求。你自己“造轮子”虽然慢,但更灵活,更可控。
原野: 所以,更合理的策略是不是:先小试牛刀,做一个原型,学到东西了,再决定要不要扔掉重来?
晓曼: 一言中的!小步快跑嘛。这样才不会因为害怕重新开始,就一直原地打转。照搬别人的东西,也可能走到死胡同。
原野: 好,那咱们最后总结一下。今天这期节目,其实是想说:偶尔“造轮子”别害怕,先造一遍你才真懂。等你造够了,想影响更多人,就可以复用成熟的方案。
晓曼: 没错!为洞察而重塑,为影响而复用!
原野: 好,今天就聊到这儿,下次再见!
晓曼: 拜拜!