“不要重复发明轮子”,软件工程大师如此告诫。然而在我看来,很多情况下重复发明轮子是非常必要的,按现在流行的话就是“必须的”。当然,重复发明轮子是需要特别慎重的,有意义并且值得做方可,而且这个要发明的轮子要具备足够的创新。
前些日子,一个师弟要来我们公司实习,由于没什么相关经验没能如愿。然后他就问,如何积累原始经验呢?我当时又是怎么积累经验的呢?“实践”,我用这两个字回答。做计算机技术这行,必须要不断实践,不断学习,方能持续性地进步。从大学本科到研究生期间,我一直在兴趣的引导下写些小软件,比如五子棋游戏、PHP相册、启动U盘制作工具、个人网站等,另外还做了不少兼职项目,包括以前大学的招生网、招生语音查询系统、某公司后台管理系统、某WAP流媒体应用平台等等。此外,我还在学习和研究工作中,实现了一系列算法程序,网络存储、数据挖掘和分布式计算相关的软件。这些实践为我积累了很多很多经验,使得我在毕业找工作面试时,显得很有经验,并且很有信心。其实,这些实践大多都是在“重复发明轮子”。对于我来说,重复发明轮子为我积累了经验,而且时常对轮子的改进或者完全重新设计轮子,让我认识了创新的重要意义。
对我而言,为了学习和实践,为了积累经验,我不断重复发明着轮子,改进着轮子,也会发明全新的轮子。但是,很多人都没有意识到,很多情况下发明全新的轮子都是以重复发明了前人的轮子为前提的。创新是需要土壤的,而实践是这个土壤的主要组成部分。单从软件工程的角度来看,考虑软件质量、开发成本、开发周期等因素,我们需要尽量不重复发明轮子。对于IT公司,核心技术往往是企业的命脉,不能因为已经有轮子了,就不发明轮子。当关系和影响到公司的生存时,必须要发明自己的轮子,把命运牢牢掌握在自己手里。想想咱们中国,通用CPU、操作系统、编译器、办公软件...,就是因为我们没有发明自己的轮子,而处处受制于国外,甚至还威胁到国家的安全。在开源领域,中国对开源界的贡献是非常非常小的,就是因为我们大家都习惯于拿来主义,自由地享受着别人发明的轮子,而很少去重复发明或者全新发明轮子。
其实还是那句老话,“走自己的路,让别人去说吧”,该重复发明轮时就重复发明一下又何妨!如果再在轮子上来点创新,或者创新性地发明新的轮子,那说不定别人就会重复发明你的轮子了。
(Aiguille LIU / 刘爱贵 / aigui.liu@gmail.com)
分享到:
相关推荐
总结,避免产品设计中的“生造方案”和“重新发明轮子”,设计师需要深化对产品需求的理解,加强与团队的沟通,利用现有设计资源,注重用户中心原则,并持续提升自身专业素养。这样的设计过程将更有效率,更能创造出...
不过让我感到有点困惑的是,怎么样才叫做不要重复制造轮子?如何才能站在巨人的肩旁上?现在网络如此发达,资源如此丰富,开源社区也发展的很好。有很多源代码可以下载,使用。那是不是说当我们在写一个程序的时候就...
华为作为中国乃至全球领先的科技企业,在其成长过程中,一直贯彻着避免重复发明轮子的原则。通过重组和整合内部技术资源,华为将移动智能网技术与IP电话技术巧妙结合,推出了独特的解决方案。这种方法显著节约了研发...
在IT行业中,"重复造轮子,表单验证"是一个常见的议题,特别是在软件开发中。当我们谈论表单验证时,通常是指在用户提交数据到服务器之前,在客户端(通常是Web浏览器)进行的数据验证过程。这个过程确保了用户输入...
通过阅读博客文章"发明轮子之“红黑树 二”",我们可以期待作者对红黑树的深入解析,包括更复杂的操作如旋转和颜色调整,以及如何在实际编程中应用这些概念。"redblacktree"这个文件名可能是该系列教程的源代码示例...
此外,项目被描述为“方便以后重复造轮子”,这里的“重复造轮子”是一个比喻,源自于“不要重新发明轮子”的谚语,意思是不必重复做已经有人做过的事,但在这里指的是一种重复利用代码库的做法,即通过开源项目让...
不重复造轮子_Notes”这一主题,展开深入讨论,探讨如何通过使用这些资源来提升开发质量和效率。 首先,我们要认识到“不重复造轮子”这一理念的重要性。在软件开发的历史长河中,许多问题已经被前人解决,并且以...
轮子作为人类历史上重要的发明之一,它的出现极大地改变了人类的生产和生活方式,提升了工作效率,减轻了人力负担。 首先,轮子的主要特点包括圆形结构、旋转运动和滚动摩擦。圆形设计使得轮子在转动时具有连续性,...
它跟常用的开源运维工具( ansible , saltstack , puppet )没有本质区别,那为什么还要重复造轮子呢? 运维通道有那些特点? 运维通道简单,高效,安全,可靠,可扩展。 简单:只有一个初始化文件,无需第三方...
这份课件向我们展示了一个简单的发明如何成为人类文明进步的关键,并促使我们对这一“了不起的轮子”背后所蕴含的智慧和便利性有了更加深刻的认识和赞赏。轮子的历史,就是人类不断探索、创新和突破的历史,它的故事...
在机械设计领域,SolidWorks是一款广泛应用的三维计算机辅助设计(CAD)软件...设计师通过精确的计算和模拟,确保轮子在实际应用中既耐用又高效。这样的设计过程充分体现了SolidWorks在机械工程中的强大能力和灵活性。
C#上位机机器视觉框架源码RexVision直接编译运行,本人使用的是.NET Framework4.8直接运行,适合学习上位机视觉的学生,毕业生,工程师进行学习,非常有学习价值的...能让你站在巨人的肩膀上,节省重复造轮子的时间。
本项目本着避免重复造轮子的原则,建立一套快速开发JavaWEB项目(asurplus-layui),能满足大部分后台管理系统基础开发功能,使得开发人员直接可从业务模块开始,减少大量的重复开发工作。前端框架使用 layui-mini ...
总的来说,TRIZ提供了一个框架,让工程师和创新者能够系统性地处理复杂问题,跨越不同领域和行业,借鉴历史上的成功案例,避免重复发明轮子,从而加速创新进程。通过掌握TRIZ方法,个人和企业可以提升其解决问题的...
《轮子工程师》是一份针对幼儿园小班的科学活动教案,旨在通过有趣的方式引导幼儿认识轮子的特性和功能,并初步理解不同形状如圆形、三角形、正方形的特点及其在日常生活中的应用。活动的设计旨在激发孩子们的好奇心...
轮子哥安卓开发框架,一个非常优秀的开源框架。 各项界面,对话框,全面的内存优化、布局优化、代码优化、瘦身优化。 项目中常见的代码进行了封装,或是封装到基类中、或是封装到工具类中、或者封装到框架中,不...
课件“了不起的轮子”是专为小班儿童设计的科学教学内容,通过一系列精心设计的互动活动,帮助孩子们了解轮子的基本特性及其在日常生活中的广泛应用,并在此过程中灌输安全意识。 首先,课程的目标设置得十分明确,...
轮子是人类历史上的一项重大发明,极大地推动了交通运输和生产力的发展。在PPT的第一部分,讲述了原始人如何从滚动重物如圆木的过程中得到灵感,将滚木切割成轮子,从而减少了搬运的难度。这一创新体现了人类对工具...