`
iihero
  • 浏览: 257405 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

其实,学习编程的过程就是学习造轮子的过程,还是拥抱造轮子吧

阅读更多

前段时间,在网上或者书籍里时常看到“尽量避免重复造轮子”的忠告,话是不错。可是我们也不能片面理解这个忠告。

我们学习编程之初,不就是要慢慢学会自己造轮子吗?只不过,那些轮子很是粗陋、简单而已。从实现一个简单的功能扩充到实现一个比较通用的系统框架,到实现一个比较通用的系统。

要说造轮子,以数据库访问接口(Data Access)为例,微软的ODBC, OLEDB, ADO,ADO.NET,无不是造了一个又一个的轮子,我们难道要排斥它们吗?还有,Java里的JDBC,JDO以及其它一些持久化、O/R Mapping框架层出不穷,它们也是在造轮子,以前Borland的BDE (Database Engine),Sybase的PowerBuilder里,更是包括了几乎所有主流数据库的底层通用访问接口,还有自己的专项DataWindow, DataWindow.Net。
从功能上来讲,它们大都在重复制造。可是这些轮子的再造过程绝对是值得的,有比较才有选择。没有最好的,只有合适的。只有与你实际应用过程需要最贴近效率最高的,才是最合适的。

现在的Web框架多如牛毛,有时候甚至让人不知道该选择这么多轮子中的哪一个为好。可是,要想成为主动积极的程序员,最好的办法不是排斥造轮子,而是不时的主动的去造轮子,当然不是闭门造轮子,可以在复用人家功能的基础上进行创造,或者直接修改人家的轮子,改成自己的轮子(在不违相关法规和商业道德的基础上)。

或许,就像做科研一样,明智的人会站在他人已有思想的基础上,继续研究,才容易出成果。在吸收已有轮子的基础上进行改进,才容易造出好的轮子。

如今,很多编程语言都有同化的趋势,C++中的泛型流行一段时间以后,Java也在自己的语言特性里加入泛型。PHP, Perl原来都没有面向对象的特性,后来也都加上了。
Erlang支持自然的并发特性,可以充分的利用多核物理特性,随着它的流行,估计C++/Java这些语言在编译器级会考虑吸收Erlang的思想。

所以,我觉得,既然这么多轮子在“重复”创造,我们多造几个轮子,也无可厚非。尤其对于那些要求有“核心技术”的软件企业来说,更是如此。有了真正属于自己的轮子,才能造更好的轮子。

广而言之,不光是软件制作,即便是硬件设计,不也是如此吗?人家有了Intel,依然会有AMD,还有威盛。所以,也就有了龙芯存在的必要。

"轮子"不能一家独大,而是要百家争鸣。程序员,应该在吸收其它轮子创造过程的基础上,争当造轮子的先锋。

分享到:
评论

相关推荐

    STL仿造轮子

    在这个“STL仿造轮子”的项目中,我们旨在通过模仿SGI-STL(斯坦福大学图形小组的STL实现)来深入理解和学习C++以及数据结构的基本原理。 首先,STL的核心组件包括容器、迭代器、算法和函数对象。容器是STL的基础,...

    Django是否存在重复制造轮子

    很多时候,都听人家在说不要重复制造轮子,要站在巨人的肩膀上等....不过让我感到有点困惑的是,怎么样才叫做不要重复制造轮子?如何才能站在巨人的肩旁上?现在网络如此发达,资源如此丰富,开源社区也发展的很好。...

    重复造轮子,表单验证

    在IT行业中,"重复造轮子,表单验证"是一个常见的议题,特别是在软件开发中。当我们谈论表单验证时,通常是指在用户提交数据到服务器之前,在客户端(通常是Web浏览器)进行的数据验证过程。这个过程确保了用户输入...

    swt table 自己造个轮子

    在IT行业中,自造轮子通常指的是开发人员重新创建已经存在的功能或组件,以此来学习、理解和改进。在这个场景中,“swt table 自己造个轮子”指的是使用SWT(Standard Widget Toolkit)库来创建一个自定义的表格组件...

    中班科学轮子PPT学习教案.pptx

    【中班科学轮子PPT学习教案】是一个针对幼儿教育设计的教学材料,旨在帮助孩子们了解轮子的历史、发展以及在日常生活中的应用。本教案通过图文并茂的方式,引导孩子们探索和理解轮子的重要性和演变过程。 轮子是...

    自己造造机器学习轮子,模仿sklearn的封装.zip

    机器学习算法构建一个基于样本数据的数学模型,称为“训练数据”,以便在没有明确编程来执行任务的情况下进行预测或决策。[1][2]机器学习算法用于各种应用,例如电子邮件过滤和计算机视觉,在这些应用中,开发用于...

    20 其实不用造轮子—Executor框架详解.pdf

    Java并发编程学习宝典(漫画版),Java并发编程学习宝典(漫画版)Java并发编程学习宝典(漫画版)Java并发编程学习宝典(漫画版)Java并发编程学习宝典(漫画版)Java并发编程学习宝典(漫画版)Java并发编程学习...

    13-Java并发编程学习宝典.zip

    3. **Executor框架** - "20 其实不用造轮子—Executor框架详解-慕课专栏.html":讲解了Java的`ExecutorService`和`ThreadPoolExecutor`,这是管理和控制线程执行的重要工具,可以有效地管理线程池,提高系统性能。...

    SolidWorks小轮子

    设计过程可能包括绘制草图,定义参数,使用旋转、拉伸、倒角等特征来塑造轮子的轮廓。设计师还会考虑轮子的尺寸,如直径、宽度以及中心孔的大小,以确保与轴承的配合和整体结构的稳定性。 轴承是轮子中的关键部分,...

    了不起的轮子学习教案.pptx

    【了不起的轮子学习教案】是一份教育材料,旨在教授孩子们关于轮子的基本知识及其在日常生活中的重要性。这份教案可能适用于幼儿园或小学低年级的孩子,通过生动有趣的方式激发他们对机械运动和简单机械原理的兴趣。...

    中班科学轮子学习教案.pptx

    在教学过程中,教案通过一系列生动有趣的方式,引导孩子们对轮子的基本概念、功能以及如何使工作变得更省力等方面进行深入的学习。 教案的第一页至第五页可能涵盖了课程的引入和背景知识。虽然具体内容未给出,但...

    科学轮子的故事学习教案.pptx

    - 轮子在交通工具中的应用:无论是古代的马车、现代的汽车,还是飞机,轮子都起到了关键作用,它们降低了摩擦力,使车辆能够快速、平稳地移动。 - 医疗领域:在病床中使用轮子,便于医护人员快速移动病人,提高了...

    自己实现轮子优秀实践

    总结来说,自己实现轮子是一个极好的学习机会,它涵盖了基础数据结构与算法、设计模式、并发编程、数据库操作、网络编程等多个方面。在Java世界里,你可以选择从简单的工具类到复杂的框架逐一实现,每次成功都会加深...

    省力的轮子PPT学习教案.pptx

    【标题】:“省力的轮子PPT学习教案.pptx” 【描述】:这份“省力的轮子PPT学习教案”似乎是一份教育材料,旨在帮助学生或学习者理解轮子的基本原理及其在日常生活中的应用。它可能涵盖了轮子的历史、工作原理以及...

    20--[旋转的轮子1].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    20--[旋转的轮子1].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码20--[旋转的轮子1].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码20--[旋转的轮子1].zip源码scratch2.0 3.0编程项目源文件源码...

    幼儿园小班科学活动教案《轮子工程师》含反思.docx

    《轮子工程师》是一份针对幼儿园小班的科学活动教案,旨在通过有趣的方式引导幼儿认识轮子的特性和功能,并初步理解不同形状如圆形、三角形、正方形的特点及其在日常生活中的应用。活动的设计旨在激发孩子们的好奇心...

    省力的轮子PPT课件.pptx

    《省力的轮子》是专业课件,主要围绕轮子的...无论是从基础科学原理的教学,还是在现实生活的广泛应用,轮子都发挥着至关重要的作用。通过深入学习和理解,我们可以更好地利用这项技术,推动社会进步,提高生活质量。

    少儿编程学习的好处育儿知识.doc

    这有点像麦肯锡方法,不要重新发明一个轮子,就是应用了函数思维,需要时直接借用原有的思维模式,重新输入条件,进行问题解决。例如,编程者通常会把那些将会被重复使用到的运算过程或方法,先编写并储存为函数,...

Global site tag (gtag.js) - Google Analytics