编程其实就是解决问题,你解决实际问题的能力越强,你的编程能力越强。其实这和其他行业是一样的。下面是我搜集的一些编程的一些问题解释
有两种方式构建软件设计:
一种是把软件做得很简单以至于明显找不到缺陷;
另一种是把它做得很复杂以至于找不到明显的缺陷;
数据与计算的关系
传统的计算模型是数据向程序靠拢:数据流向计算程序
大数据的技术模型是:程序向数据靠拢:程序流向数据(分布式部署),归并后再流向程序
闭包与对象
闭包是附有数据的行为,对象是附有行为的数据
大家观察下:闭包与对象,传统技术与分布式计算其实都是逆向思维的产物,这个也是编程思维的一次跳跃
程序模型:
所有的程序模型都是围绕着输入、输出,和过程处理来展开的;这也是世界万物之间交互的最基本模型;我们总是企图使用程序来模拟世界万物的交互,未曾想交互异常复杂。几种典型的开发模型:典型的开发模型有:1. 边做边改模型(Build-and-Fix Model);2. 瀑布模型(Waterfall Model);3. 快速原型模型(Rapid Prototype Model);4. 增量模型(Incremental Model);5.螺旋模型(Spiral Model);6.演化模型(evolution model);7.喷泉模型(fountain model);8.智能模型(四代技术(4GL));9.混合模型(hybrid model);10.RAD模型;
其实编程的学习,在这个过程中,主要是两个方面的学习:一是论文的阅读,二是编程实践。
从一本“杂书”上看到了这样一个图(经过个人加工的):
A:程序; W=1;
B:编程产品; W=3;
C:编程系统; W=3;
D:编程系统产品; W=9;
其中,A,B,C,D表示编程之后产出的东西,W表示工作量。
可以看出,我们平时写的程序,至少是我这个刚进入研究生阶段的同志,只是可以运行的程序而已,既不能称作是系统,也不能称作是产品,更不能称作是系统产品。B:通用化,测试完整,文档完整,便于维护等。C:有明确的接口及其说明,可以方便进行系统集成等。另一方面,从工作量可以看出,写好程序和把程序转换为系统产品还有很大一段距离。因此,不能在写好了程序就沾沾自喜,以为完事了。当然了,也有后续工作很少的,但是那时在前期工作非常完善的情况下。
如果A是普通的程序员,那么B和C是优秀的程序员,D是卓越的程序员
领取专属 10元无门槛券
私享最新 技术干货