创新并不是什么神秘的事物, 它就产生于我们工程师一族日常的开发活动中。

为什么还要加班熬夜写程序? 为什么上班的8小时不能把该学的东西都学到手, 该做的事情都做好? 为什么还停留于低层次低效率的开发 ? 是什么阻碍了我们更快更好地完成任务? 我们的日常开发活动除了完成指定任务, 是否有创新性产出? 高效、创新式开发有哪些规则方法可循?

创新是另一种高效。一旦依靠创新性技术或产品领先于竞争对手,就有时间来调整彼此的节奏,思考整体战略发展,而不是忙着去跟随; 从另一个角度来说,开发出一种创新性方案,往往也使效率成倍提升。再快的马车也跑不过火车就是例证。那么, 如何使开发活动更具创新性产出 ?

事不过三

什么是低层次低效率开发? 相信很多人见过很多重复的代码,也做过很多重复的开发任务。 做第一遍增删查改的时候, 那是必须经过的途; 做第二遍, 或许可以加深印象, 做第三遍及以上,就不可容忍了。 这就是“事不过三”的原则。

为什么不能做个增删查改的通用组件, 略加配置就可以完成 ? 或者尽可能地减少做类似功能的工作量?  我见过一个简易快速WEB开发框架,采用 Jquery + struts2 将“带搜索和增删查改的的分页数据控件”做成通用了,要增加一个类似功能, 只需要按约定写好 create.jsp, detail.jsp, update.jsp , 及继承一个基类,填充好若干方法即可。整个设计还是很优雅的,代码质量也很高,维护起来只需要理解一次,就可以使用多次。

为了摆脱低层次低效率开发, 必须从 “功能开发” 的角度转到 “模式解决” 和 “解决方案开发” 的角度。 不是去完成一项具体功能, 而是去寻求一类问题的模式实现和解决方案,提高宏观思考与设计思维。

        及早确立方向

及早确立一个对自己有吸引力有前景的方向,然后全心投入探索。方向是努力的前提。

如果方向不明确,就容易被各种公司的低层次需要牵着走,将大部分时间和精力游走在各种开发框架和技术中,而无所精进。可能的结果是,即便写了若干WEB应用后,连 HTTP ,  Servlet 都不一定清楚; 浮于表面, 所花费的精力和时间都会随着时间很快地贬值。与此同时,某人可能早已在某个领域确立了主导地位。 大多数人一生的精力都只够做好一件事。必须将自己的力量、兴趣聚焦到一件事上面,才能有所成就。

加强科学功底

科学功底指的是这些东西, 比如索引如何提升数据库查询性能,文法如何指导语言的设计, 范式如何规范数据库的设计, 如何建立可靠的基准测试等。工程与科学的联系非常密切。

掌握计算机科学的力量,将可以使设计出的程序具备更强大的威力,触及计算世界的核心,这样更容易遇到非常具有挑战性的难题, 激发突破性创新。 云计算, 搜索, 数据库等这些突破性创新,无一不是在科学的基础上建立的。创意想法很容易模仿, 但科学的实力可不是那么容易偷走的,这也是 IBM 这个科技巨人一直屹立不倒的原因, —— 实力放在那里, 谁也不敢小觑。

大牛的人通常都具备很好的科学功底,—— 他们对计算机程序世界往往比我们单纯做开发的人看得更深更透彻。 读一读 《计算机程序的构造与解释》  这样偏科学性的书, 虽然不会教人具体的开发技能, 但可以引导人去领悟程序设计的精髓和道。

加固基础功底

基础功底是指计算机世界运行的基本的机制、原理和细节。 比如, 做网络开发,应用进程的数据是如何发送到指定远程机器上的应用进程的, 其中的整个连接、传输、关闭过程和细节清楚么? 做系统编程,一个进程是如何完成程序的一次运行, 系统如何调度多进程的执行, 数据结构、调度策略,其中的问题及解决方案、细节清楚么? 能够用实验来清晰地展示出来么? 不能总是满足于造空中楼阁。不要满足于做那些十岁小孩都能做出来的APP。

基础功底决定着一个人的发展潜力。 基础功底越强, 后爆发力就越强;  类似于内功心法,心法强的人,学习和參悟术式会很快;具备扎实基础功底的人,能够更容易地领悟新技术的本质,掌握新技术的应用,甚至引领技术发展。

        踏实开发, 广泛涉猎

既然本分是工程师,那么,就要踏实做好技术钻研和开发工作; 此外,也要根据自己的爱好,方向等去广泛涉猎一些非技术性的书籍,比如 设计类, 产品类, 运营类,文学类,哲学类等。 交叉性的学科更容易产生创新的源泉。

 多方面均衡

计算机程序设计实质上是一种心智活动,它运行于内心之中,表达于计算设备之上。因此, 不一定非得开电脑才能编程。 运动锻炼,理解倾听, 心智活动训练,人际交流等多种方式都可以从侧面加强开发能力的提升,—— 而且还可以丰富我们的生活, —— 不仅仅是学习技术这一条途经。 创新能力可能更受益于综合能力的提升和均衡。

释放天赋和直觉 

人类是从自然孕育而生的,因此,必然与自然存在某种紧密的联系和互通性。 人生而拥有强大的天赋、直觉和本能, 只需要去发现和释放它。

长期的学习和主流的教育理念使我们更注重系统的技能教育和分析性思维,而忽略了自然赐予我们的软力量: 本能, 直觉, 想象力, 而这种软力量实质上是更强大的,要相信大自然的智慧。

开发三技巧

探究原理, 掌握方法, 查阅文档。

大多数时候, 都是边学边用。像 Extjs 这种框架, 配置项N多,看都看不过来,到处都是坑,怎么学? 那就要理解它的基本工作机制和原理, 掌握核心常用的部分,其后通过查阅文档来解决实际问题。 不探究基本的工作机制和原理, 遇到问题就容易一筹莫展,不能知其所以然; 不掌握核心常用的部分,难以实际应用; 想贪多求全, 精力又应付不来。

创新式开发在哪里 

总是忙着开发,开发, 究竟开发些什么东西? 产生了多少价值和影响? 我们常常关注开发的高效性, 却忽视了开发中的创新能力。 是时候重视这个问题了!

转载于:https://www.cnblogs.com/lovesqcc/archive/2013/03/30/4037771.html

创新式开发探索(一) —— 开篇相关推荐

  1. UEFI开发探索97 – EDK2模拟器搭建网络环境

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) EDK2模拟器搭建网络环境 1 搭建EDK2开发环境 1)工具安装 2)下载代码库 3)更新子模 ...

  2. UEFI开发探索94 – 迷宫小游戏

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) UEFI下的迷宫小游戏 1 Maze程序结构分析 1)定义全局变量 2)设置迷宫 3) 游戏控制 ...

  3. QT开发环境的建立以及qte4.6.3、tislib1.4移植到博创star2410开发板

    1.首先是建立Linux开发环境 1.1.在windowsXP下安装博创公司提供的虚拟机软件VMware Workstation,版本为VMware-workstation-full-7.0.1-22 ...

  4. 紫光信息港 软件测试,紫光同创PGL22G开发平台试用连载(3)---以太网测试工程二...

    原标题:紫光同创PGL22G开发平台试用连载(3)---以太网测试工程二 续前一篇博文,经过多次对PANGO工具的参数进行修改的尝试,在资源占用率为(LUT-70.02%,Register-36.34 ...

  5. 紫光信息港 软件测试,紫光同创PGL22G开发平台试用连载-(2)以太网测试工程一

    原标题:紫光同创PGL22G开发平台试用连载-(2)以太网测试工程一 PGL22G开发板中包含一个以太网接口,紫光同创FPGA通过RGMII接口与外部PHY芯片互连.而在千兆模式下,RGMII的运行速 ...

  6. XMOS 开发探索3-麦克风拾音

    date: 2021-03-29 XMOS 评估板型号:XUF216-512-TQ128-C20   实现麦克风拾音,并从耳机输出声音,官方网站上的一个demo:  ***************** ...

  7. 小型教育网站的开发与建设-开篇(一)

    一.本科计算机专业毕业设计论文写作指南系列文章 本科计算机专业毕业设计论文写作指南 小型教育网站的开发与建设-开篇(一) 小型教育网站的开发与建设-前言与需求分析(二) 小型教育网站的开发与建设-总体 ...

  8. UEFI开发探索81- YIE002USB开发板(04 制作HID设备)

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) YIE002USB开发板之制作HID设备-USB系统概述 1 USB规范简介 2 软件工程师眼中 ...

  9. UEFI开发探索99 – UEFI Shell下截屏工具

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) UEFI Shell下截屏工具 1 PrintScreenLogger的代码结构 1)Print ...

最新文章

  1. Spring Boot 2.x整合Quartz
  2. Android图片轮播
  3. xxl-job dotnet core executor执行器开源
  4. spring 异常捕获异常_使用Spring跟踪异常–第2部分–委托模式
  5. 亲密接触VC6.0编译器
  6. qt怎么设置标签背景图片_HTML中怎么设置h1的字体样式你知道吗?关于设置h1标签的样式详解...
  7. cts(7)---android 8.1 vts环境和测试
  8. 如何让ul的符号隐藏_亚马逊关键词大师,那些你不知道的隐藏keywords操作方法(干货)...
  9. volley 调用php接口,从Android发送数组并使用Volley在PhP服务器上...
  10. 小任务:简单实现银行业务系统(附 ideal编辑器固定序列化版本方法)
  11. 世界名人的博客,他们走在了我们前面,努力奋斗吧
  12. python列重命名
  13. 使用宏定义求圆的周长,面积
  14. Java绘制太极阴阳图
  15. 使用Raspberry Pi,DHT-22和OLED显示屏的ESP32 MicroPython MQTT教程
  16. 区块链技术成为金融业务应用热点
  17. 论文的黑斜体,白斜体是什么意思?
  18. comsol学习笔记之求解器不收敛
  19. java字符串反转reverse();
  20. Vue初学者需要掌握的知识点及案例

热门文章

  1. 一元流量参数为null_为什么牛逼的程序员都不用 “ ! = null quot; 做判空?
  2. java代码分类_08 java代码块的概述和分类
  3. java 圆的交点_java求两个圆相交坐标
  4. [总结] 网络流经典建模
  5. 2021.02.01 Visual QA论文阅读
  6. 【学习笔记】自然数幂和
  7. BZOJ 2402 陶陶的难题II (树链剖分、线段树、凸包、分数规划)
  8. php 分页类使用,php 分页 分页类 简单实用
  9. oracle 三列数值相加,Oracle SQL/PLSQL:按货币拆分和求和值的分层查询
  10. 斗鱼实名认证 mysql_斗鱼扩展--DouyuRoom使用说明(十四)