"不要自己发明轮子"与"了解轮子是如何发明的"
2010-08-21 10:46
323 查看
[b]转自http://cto.csdn.net/Article.aspx?Name=wumin&pointid=3720[/b]
老外经常说:不要自己发明轮子。
其实现实中也有不少人跟我这么说。不是说这句话不对,而是说总感觉有点别扭,总好像是差了些什么。
高中时的政治课有一句“劳动创造了美”,总是让我觉得少了些什么。当然这句话我打小就知道,但想从道理上解析这句话,却是在课堂上产生的想法。困惑的解答是在大学二年级看一本哲学书中找到的,我在这里把原意重复一下:
1、“劳动创造了美”,这句话只是马克思书中一段话中的一句,虽然很美,但并不是那段话的全部含义。
2、“劳动创造了美”,并不是充分必要条件。我完全可以把它改成“劳动创造了丑”,而且完全正确,当然,如果前者正确。
3、“劳动创造了美”,是说劳动可以创造美,但没说劳动就不能创造别的什么(比如“丑”)。
我曾在《系统研发中的假命题》这篇博客中论述过类似情况,就是说,一个说法提出来,让你觉得是那么回事,可一旦实际起来,又觉得不太是那么回事。它的危害在于,听起来很对,做起来很错,做得越多,错得越远,危害越深。
“不要自己发明轮子”是对的,但老外一定没说过,你同样也不需要“了解轮子是如何发明的”。
我在现实生活中发现,许多人把“不要自己发明轮子”,同样理解成了不需要“了解轮子是如何发明的”。他们的逻辑仅限于“我会使用就可以了”。
这多少就像如果我是普通手机用户,那我会用手机就可以了。可如果我是手机的设计、生产、维修人员,我也仅限于会使用别人发明好的“轮子”,那就没有不出事的。
我发现有很多VC开发人员不知道Windows下的函数栈空间的默认值是1M。一旦变量声明需要的空间超过1M而导致运行崩溃时,他们一脸的无辜与不解。
我管这种方式叫“挑战常识”!比如,一个兄弟前两天和我说,读取一个1M左右的文件到内存是纳秒级的,我当时就晕了,不晓得计算机什么时候已经先进到这个程度了。后来一查,原来相关时间的最小单位是100纳秒!而他就看到了纳秒这两个字。这简直就是天地之差!
另一个让我惊讶的是一个来面试程序员。我问他一个char型数据的取值范围是多少,他认真想了一下回答我说:是0到2的8次方。我赶紧提醒说char是带符号的,他又想了一下说,是负的2的8次方到正的2的7次方。我当时无言以对!
不要自己发明轮子是对的,但如果大家都不知道轮子是如何发明的,就错得太远了!
技术之所以为技术,是因为它有很高的门槛。而这个门槛内外的区别就是:知其然,和知其所以然。大部分人可以知其然,某些人必须知其所以然。特定的时候可以知其然,过了这个时候就必须知其所以然!
老外经常说:不要自己发明轮子。
其实现实中也有不少人跟我这么说。不是说这句话不对,而是说总感觉有点别扭,总好像是差了些什么。
高中时的政治课有一句“劳动创造了美”,总是让我觉得少了些什么。当然这句话我打小就知道,但想从道理上解析这句话,却是在课堂上产生的想法。困惑的解答是在大学二年级看一本哲学书中找到的,我在这里把原意重复一下:
1、“劳动创造了美”,这句话只是马克思书中一段话中的一句,虽然很美,但并不是那段话的全部含义。
2、“劳动创造了美”,并不是充分必要条件。我完全可以把它改成“劳动创造了丑”,而且完全正确,当然,如果前者正确。
3、“劳动创造了美”,是说劳动可以创造美,但没说劳动就不能创造别的什么(比如“丑”)。
我曾在《系统研发中的假命题》这篇博客中论述过类似情况,就是说,一个说法提出来,让你觉得是那么回事,可一旦实际起来,又觉得不太是那么回事。它的危害在于,听起来很对,做起来很错,做得越多,错得越远,危害越深。
“不要自己发明轮子”是对的,但老外一定没说过,你同样也不需要“了解轮子是如何发明的”。
我在现实生活中发现,许多人把“不要自己发明轮子”,同样理解成了不需要“了解轮子是如何发明的”。他们的逻辑仅限于“我会使用就可以了”。
这多少就像如果我是普通手机用户,那我会用手机就可以了。可如果我是手机的设计、生产、维修人员,我也仅限于会使用别人发明好的“轮子”,那就没有不出事的。
我发现有很多VC开发人员不知道Windows下的函数栈空间的默认值是1M。一旦变量声明需要的空间超过1M而导致运行崩溃时,他们一脸的无辜与不解。
我管这种方式叫“挑战常识”!比如,一个兄弟前两天和我说,读取一个1M左右的文件到内存是纳秒级的,我当时就晕了,不晓得计算机什么时候已经先进到这个程度了。后来一查,原来相关时间的最小单位是100纳秒!而他就看到了纳秒这两个字。这简直就是天地之差!
另一个让我惊讶的是一个来面试程序员。我问他一个char型数据的取值范围是多少,他认真想了一下回答我说:是0到2的8次方。我赶紧提醒说char是带符号的,他又想了一下说,是负的2的8次方到正的2的7次方。我当时无言以对!
不要自己发明轮子是对的,但如果大家都不知道轮子是如何发明的,就错得太远了!
技术之所以为技术,是因为它有很高的门槛。而这个门槛内外的区别就是:知其然,和知其所以然。大部分人可以知其然,某些人必须知其所以然。特定的时候可以知其然,过了这个时候就必须知其所以然!
相关文章推荐
- "不要自己发明轮子"与"了解轮子是如何发明的"
- “不要自己发明轮子”与“了解轮子是如何发明的”
- "如何让自己成为一名黑客高手"
- 测试人员与开发人员沟通的"五要与四不要"
- 急求解决:如何将TodayScreen插件的宽度设为屏幕宽,就像系统自带的"日期"插件一样,不出现滚动条。
- 如何解决用"adobe pdf"打印Djvu文件出现横线或横条的问题
- windows 7 如何关闭 程序崩溃时弹出的"windows正在检查该问题的解决方案"
- 如何使用<identity impersonate="true"/>
- 不要在#include中使用".."
- 在公式语言中如何使用"/"?
- [9] CMake - 如何高效使用"cmake --help" ?
- 如何自己定制"发送到"
- 如何将java中的"/"替换为"/"以及replaceAll(String regex, String replacement) 注意事项
- 如何改变上传文件控件中的"浏览..."为别的文字?
- MVC详解:了解真正所谓的"框架"
- Qt 界面使用自己定义控件 "提升为"
- "undefined reference to strptime"之自己定义strptime函数
- "棱镜门事件"的思考:黑客是什么,如何成为黑客?[更新:2015-05-09]
- 在校大学生如何避免"未就业先失业" 学校教育未改变的前提下如何使自己更好成长