程序员应知 善于借鉴

开发 后端
作为程序员,我想每个人都对于提高和进步非常渴望,也期望自己有朝一日能够从菜鸟变成大师级的人物,能够做出很棒的系统,能够得到他人的尊敬和赞赏,当然还可以得到不菲的收入。

最近几天对D语言有了一些了解,据说能够具备和C、C++一样的高性能,语法类似于C#和Java,并且支持当前比较流行的语言——像Ruby和Python——的一些新特性,而且微软还提供了Visual D的插件,可以安装在Visual studio中,从而使用它来开发D语言的程序。

我们会发现,其实这门语言,在很大程度上是以往各种语言长处的结合(不知道是否实现了这一点,但目的应该是这样),与其说是一种新的语言,不如说是在借鉴了很多语言之后,组合出的一种语言。

由此我们可以发现,借鉴具有很强的力量。通过借鉴,我们能够创造出一些新的有自身特色的东西来。

说到借鉴,就不能不说创新,曾经有位朋友拿微软和苹果做过比较:微软最近几年来,在技术上一直没有非常明显的创新,似乎总是跟在别人的后面走,比方说云计算,比方说手机开发,再比方说服务式的web应用等等。而苹果的东西似乎每一种都具有很强的创新性,iPad、iPhone、手表式的ipod,还有传言中的裸眼3D功能的iPad等等,都让人能够眼前一亮。

的确,创新很棒!能够产生不错的效果。相比之下,借鉴似乎就要差一些,而且“山寨”和借鉴之间也有些搞不清楚。然而,我们也应该看到,创新其实也是建立在借鉴的基础之上,而且借鉴也能够产生很不错的效果。毕竟,创新力不是说说就能具备的,也需要长时间的积累和思考,而且还有一些天赋的成分在里面,试问世界上又能有几个乔帮主级别的人物。而借鉴往往更适合我们这些普通人,能够让我们从中受益。

作为程序员来说,也有很多地方都可以采用借鉴的方式来提升自己的能力。

比方说前几天我在百度Web app开发大会上的演讲中,谈到Web应用前端设计如何能够美观的时候,我就借鉴了版面设计的理论(来自于《写个大家看的设计书》),web应用的设计也应该遵循重复、对齐、对比、亲密性四种原则,那样就会达到美观的效果。而谈到设计需要规范的时候,我也借鉴了项目中经常会使用的代码规范,对于前端设计也一样要有相应的规范,那样才能够更利于开发和后期的维护工作。

再比方说之前的一篇blog中,我谈到了如果《以投资的观点学习编程》,这正是在听了公司投资部经理关于投资的一场讲座之后想到的,学习编程和投资一样,也有不少可以触类旁通的地方。

不仅仅如此,软件这个年轻的产业,本身很多方法都是从其他传统行业借鉴过来的,软件架构在很大程度上借鉴了建筑学的知识,而精益的理论更是来自于生产行业,我们能够看到,软件行业的发展与对其他行业的借鉴是分不开的。

而作为程序员,我们应该借鉴什么呢?

首先我想要借鉴已有的程序和项目,当我们想要完成一项任务的时候,不一定要从零开始,毕竟不是考试,我们完全可以先查看一下是否已经有类似的程序或者类似的项目,看看他们是如何完成的,而且在完成的过程中是否有相关的经验和教训,那些都是非常宝贵的财富。当然我们不是要完全地复制,而是要“批判地学习”,在理解了已有内容的基础上,加上自己的思考,从而创建出最适合我们自己的程序。在这个过程中,借鉴本身就是学习和提高的过程。

其次我想可以借鉴在非计算机领域解决问题的方式。我们知道,计算机真正广泛应用在解决问题上,也就是几十年间的事儿,之前遇到问题,传统的行业中一样可以解决,也都形成了不少方法论。那正是我们需要借鉴的地方,不一定在解决问题的时候完全要依赖于计算机,先从非计算机的方式入手,放宽一下自己的视野,可能会有更好的效果。

想要真正实现良好的借鉴,我想我们要时刻有借鉴的准备,机会总是留给又准备的人的,当我们在平时的生活中,或者是在各种书籍中,发现好的解决问题的方法时,就可以试着思考一下,是否可以借鉴到计算机领域中,这样,在以后编程解决问题的时候,可能就会不自觉地使用了。切不可把自己处于一种封闭的状态,对外界的事情不闻不问,更可怕的就是完全排斥了,根本就不接受外界的思想,那样“闭关锁国”的话,如何才能发展呢?(这里貌似也是借鉴,:))

关于借鉴,你的想法如何,欢迎在此评论。

作者:侯伯薇@大连

出处:http://www.cnblogs.com/houbowei/

原文地址:http://www.cnblogs.com/houbowei/archive/2011/05/26/2057771.html

【编辑推荐】

  1. C/C++是程序员必须掌握的语言吗?
  2. 程序员应知 循序渐进
  3. 谁做了程序员眼中的程序员
  4. 为什么程序员得到的报酬与他们的生产力不成正比
  5. PHP程序员突破成长瓶颈
责任编辑:于铁 来源: 博客园
相关推荐

2011-05-31 09:22:39

程序员

2011-05-24 13:47:25

程序员

2010-07-27 16:21:25

程序员

2011-06-02 09:02:36

程序员

2011-05-31 09:37:53

程序员

2011-06-02 09:56:21

程序员团队精神

2011-05-31 10:50:36

程序员

2023-05-06 07:24:22

程序员视频算法

2022-11-04 07:12:24

JavaScript基准测试

2014-06-09 16:43:11

程序员

2022-09-04 19:43:05

程序员数据库

2024-03-14 12:17:00

数据库数据模型

2022-10-25 08:23:09

Reactor模式I/O

2022-12-02 07:16:29

MySQL函数日期

2019-01-30 14:14:16

LinuxUNIX操作系统

2023-09-12 11:25:15

2011-07-25 09:14:40

程序员

2015-12-04 09:33:15

程序员前端演进史

2015-11-30 11:01:34

前端程序员历史

2015-03-16 15:33:11

JavaScript程序员应备素质
点赞
收藏

51CTO技术栈公众号