“不要自己发明轮子”与“了解轮子是如何发明的”

“不要自己发明轮子”与“了解轮子是如何发明的”

吴旻

泰岩网络工作室

老外经常说:不要自己发明轮子。

其实现实中也有不少人跟我这么说。不是说这句话不对,而是说总感觉有点别扭,总好像是差了些什么。

 

高中时的政治课有一句“劳动创造了美”,总是让我觉得少了些什么。当然这句话我打小就知道,但想从道理上解析这句话,却是在课堂上产生的想法。困惑的解答是在大学二年级看一本哲学书中找到的,我在这里把原意重复一下:

1“劳动创造了美”,这句话只是马克思书中一段话中的一句,虽然很美,但并不是那段话的全部含义。

2“劳动创造了美”,并不是充分必要条件。我完全可以把它改成“劳动创造了丑”,而且完全正确,当然,如果前者正确。

3“劳动创造了美”,是说劳动可以创造美,但没说劳动就不能创造别的什么(比如“丑”)。

 

我曾在《系统研发中的假命题》这篇博客中论述过类似情况,就是说,一个说法提出来,让你觉得是那么回事,可一旦实际起来,又觉得不太是那么回事。它的危害在于,听起来很对,做起来很错,做得越多,错得越远,危害越深。

“不要自己发明轮子”是对的,但老外一定没说过,你同样也不需要“了解轮子是如何发明的”。

我在现实生活中发现,许多人把“不要自己发明轮子”,同样理解成了不需要“了解轮子是如何发明的”。他们的逻辑仅限于“我会使用就可以了”。

这多少就像如果我是普通手机用户,那我会用手机就可以了。可如果我是手机的设计、生产、维修人员,我也仅限于会使用别人发明好的“轮子”,那就没有不出事的。

 

我发现有很多VC开发人员不知道Windows下的函数栈空间的默认值是1M。一旦变量声明需要的空间超过1M而导致运行崩溃时,他们一脸的无辜与不解。

我管这种方式叫“挑战常识”!比如,一个兄弟前两天和我说,读取一个1M左右的文件到内存是纳秒级的,我当时就晕了,不晓得计算机什么时候已经先进到这个程度了。后来一查,原来相关时间的最小单位是100纳秒!而他就看到了纳秒这两个字。这简直就是天地之差!

另一个让我惊讶的是一个来面试程序员。我问他一个char型数据的取值范围是多少,他认真想了一下回答我说:是028次方。我赶紧提醒说char是带符号的,他又想了一下说,是负的28次方到正的27次方。我当时无言以对!

 

不要自己发明轮子是对的,但如果大家都不知道轮子是如何发明的,就错得太远了!

技术之所以为技术,是因为它有很高的门槛。而这个门槛内外的区别就是:知其然,和知其所以然。大部分人可以知其然,某些人必须知其所以然。特定的时候可以知其然,过了这个时候就必须知其所以然!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值