编程后阶段看法

原创 2016年08月29日 17:23:46


谈编程不可避免的要谈到编程语言,而编程语言之所以出现,其最终的目的仍然是提供一种抽象方法来解决现实中的问题,问题本身的复杂程度往往取决于抽象的种类和质量。从汇编语言的出现解决了最初的抽象,而类似c或fortran语言出现则可以看做是对汇编语言的进一步抽象。这一步抽象的完成其实是很重要的一个进步,既我们在解决问题的时候不再需要关系复杂的机器模型或机器码,而是可以更多的关注问题和解决方案本身。

在这个阶段,从编程本身来说最核心的还是算法和数据结构。这也是任何程序最重要的两个基本要素。既把问题域本身涉及到的数据映射到合适的数据结构,把通过程序解决问题的过程映射为具体的算法逻辑。那么编程实际的难点在哪?不是算法本身或数据结构本身,而是当你拿到问题域的时候知道如何理解和分解问题,并将其映射到最适合的算法或数据结构上。这个映射其实本身不是程序解决的问题,还是人脑在思维,程序本身仅仅是在实现自动化的过程

那么程序在算法实现过程中最基本的是什么?我们看不同的程序片段可以看到的还是if/else,或者for/while,然后才是数据或数据类型定义。而前者即写任何一个程序中最重要的控制逻辑。那么编程里难的实际上不是控制语句本身,而是在把问题域分解后知道如何理解判断逻辑,如何将问题域中重复的东西抽象为循环,如何从问题域中抽象出数据结构。一个人编程能力本身的好坏,或者说编程思维能力,重点其实是体现在这种映射能力,也可以称这种映射能力为数学建模能力。举个例子来说,如果一个问题你已经知道了可以映射到构建二叉树,然后通过遍历的方式来解决了,那么可以说然后一个掌握了语言语法的人都可以写出程序来。那么实际编程思维或能力的强弱则在于前面谈到的映射和建模。

面向对象思想和面向对象编程语言的出现,可以说也是编程思维本身的第二次重大提升。既原有的编程语言可以看到我们关注更多的已经是抽象后的解决方案,而面向对象的编程语言则首先关注的是通过对象和类,通过继承,通过接口定义等首先对现实世界进行很好的抽象描述,其次才是如何去解决问题。现实世界中所有的一切都是对象,而面向对象语言中的类本身就是对现实世界中对象的很好的抽象。

对于面向对象的核心特征谈的比较多的是封装,继承和多态。这些可能比较偏技术词汇,那么再简单点来说面向对象编程思维其核心则是找到问题域中的对象,将其抽象为类,识别类应该有的属性和方法特征,同时去理清类和类之间的关联和交互关系,将问题本身的解决过程映射到类和类之间的方法交互上。如果从这个意义上来说,好像也不是很复杂,那么实际面向对象编程的难点实际在为了保持代码足够的健壮性,可维护性,可扩展性而做出的各种抽象,包括接口的提取和组合,控制或逻辑类的增加等,这些本质已经转换到技术域类本身。

除了上面谈到的,再谈下其它的一些内容。编程里面有一个重要的思想即是复用,从最简单的函数,到模版库,类库,再到更上层的公共组件等,都在体现复用的思想,而复用本身的目的则主要是提升开发效率,提升可维护性和代码的可读性等。复用可以理解为编程过程中的编程思想更加恰当。

编程的思想是自动化,不要简单的理解为编程语言能够帮助你解决建模和映射的难题,编程的自动化更多的还是体现在机器可以自动化的进行大量计算和运算,而这个运算是通过我们的程序进行的。程序中体现的一个重点我更喜欢把它理解为循环,从抽象中去发现和发觉一种可自动化的循环,这种循环的处理正是程序的强项。任何人都应该有这种自动化的编程思维,即懒人思维,重复的事情一定不要自己手工重复完成。

编程的6个阶段

第一阶段此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。第二阶段此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库函数。...
  • fengzar1984
  • fengzar1984
  • 2007年10月29日 17:33
  • 514

2. 程序编译的四个阶段

0.引言hello.c(源程序)是一条高级C语言程序,虽然它是以一种易读的形式,让人们容易理解。但是,它却无法直接驱动硬件CPU直接执行。为了我们编写的hello.c程序可以被执行,驱动硬件电路工作,...
  • DylanDong
  • DylanDong
  • 2017年03月05日 11:19
  • 1285

成为一名程序员的四个阶段!!!

 分类:成长篇    通过以下4个阶段的训练, 没有任何编程基础人就可以成为一名普通的程序员。 第一阶段:掌握一种编程语言     学习内容:学习任意一种主流的编程语言。例如C++语言。     学习...
  • lvwenshuai
  • lvwenshuai
  • 2007年10月15日 23:35
  • 625

编程的几个阶段..

  • everlast73
  • everlast73
  • 2010年06月09日 22:38
  • 228

编程看法

             很多人开始学习一种编程语言,典型的比如C语言,在学习到一定程度以后,比如已经能够熟练应用if else, while , for 等等语句编写程序解决简单的逻辑智力题等等,学...
  • adcxf
  • adcxf
  • 2008年07月19日 20:35
  • 392

Matlab二阶段单纯形法

Matlab二阶段单纯形法 dcxsf.msecP.m.m(test) dcxsf.m % 第一阶段函数 function [X,zR] = dcxsf(A,b,cOut,...
  • u011956307
  • u011956307
  • 2017年02月08日 08:34
  • 908

程序员的职业生涯也可分为四个阶段

程序员的职业生涯也可分为四个阶段:初级程序员(菜鸟)、高级程序员(熟练工)、系统程序员(高手)、软件大师(大师),其作品也经历四种境界: · 可以运行的程序 · 健壮、高效的程序 · 结构优美的程序 ...
  • bloom121
  • bloom121
  • 2004年11月08日 11:34
  • 828

对编程语言的认识

面对众多的编程语言,何处是归路?
  • kiaapeng
  • kiaapeng
  • 2015年06月07日 14:28
  • 882

对中国90后及00后“深入骨髓”的剖析

来源:陈默、慈怀读书会 檩子:这篇文章的作者叫陈默,华东师大心理学教授,他从自己的专业角度来分析当今的孩子,也就是90后,00后的这一代。对这些新新人类,我们似乎是了解的,但又好像不怎么了解;网上把...
  • lanyd
  • lanyd
  • 2015年10月26日 13:41
  • 366

PTES标准中的渗透测试阶段

1.2PTES标准中的渗透测试阶段          渗透测试执行标准(PTES:PenetrationTesting Executjion Standard)正在对渗透测试的重新定义,新标准的核心...
  • henni_719
  • henni_719
  • 2017年08月23日 09:35
  • 349
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程后阶段看法
举报原因:
原因补充:

(最多只允许输入30个字)