西方国家的一句谚语,不要重复发明轮子,
Don’t Reinvent the Wheel.
我想IT从业人员没有不知道其中的含义的,其基本的意思是说,企业中的任何一项工作都有人做过,我们需要的就是找到做这项工作的人。在IT业引申起来,就有了不同的理解,有人说某项技术别人已经做过,我们需要用的时候,直接拿过来用,不要重新制造。有人说西方人自己不就在发明一个又一个轮子吗,比如有了struts,还要搞webwork、tapestry等,有了hibernate,还要搞ibatis、jdo等。对此,我的看法是,我们不重复发明轮子,但我们必须深入研究其轮子的制造原理,如果我们能制造更先进的轮子,那有必要发明这个轮子。所以,当我们在使用别人的轮子时,如struts、spring、hibernate,我们要深入了解其轮子的制造原理,我们也可以制造一些类似web框架的小玩具,但不是先进的轮子,那就仅限自己学习之用了,没必要去推广。
还有一种重复发明轮子的情况值得重视,那就是在我们的工作学习中,经常会碰到一些新的轮子,那我们当然是要深入了解了,有些人就从最基本的入门开始,自己翻译官方文档或查看源码,花了很长的时间和很多的精力,最后终于说,我已经深入了解这个轮子了,哈哈。导致的结果就是,我们搜索或看blog时,就有很多这种文章,如***入门(原创),***参考(原创)。这种情况我深有体会,最近我花了很多时间和精力去研究代码静态分析工具的使用,可无意中发现了在developerworks上已经有了这方面详细的介绍和分析,比我整理的还好,那个心情,郁闷呀,白花花的时间和精力就这么白费了。如果之前我先搜索这方面的资料,也许我可以只花很少的时间就可以上手,剩下的时间进行更深入的研究了。
人的时间和精力是有限的,就算不同的人天赋不一样,那我们也应该把有限的时间和精力花在刀刃上。所以,当网上有了很好的资料借鉴时,我们可以更快速的上手,可以把经验和心得记录下来,而不是闭门造车的,艰难的翻译官方文档,节省下来的精力可以进行更深入的研究。希望有一天,blogjava上不是充斥着***入门,***教程之类的文章,而更多的是不仅是原创,更重要的是没有重复的,如***经验总结,***感受感想的文章。不是说我们浮躁的不去翻译官方文档,做什么事情都先要去搜索,而是我们应该像牛顿一样,踩在前人的肩膀上,才可以看的更高,更远。