.

什么是编程思维写代码需要什么能力

有朋友在问现在市面上那么多编程培训班,是否有必要去学习编程,为了理解编程,咱们从计算机的起源开始。二战的时候,为了破解德军通信内容,盟军研发了恩尼格玛密码机,可以将加密后的信息进行解密,以获取军事情报,在电影《模仿游戏》中,讲述了这样一个故事:盟军招聘一批当时的精英,并组建了专门的工作小组,希望以此破解德军的通信内容。当时,在其他人用各种方法进行破解的时候,图灵的想法是设计一台通用的机器来解决密码的加密解密问题。二战的转折点是斯大林格勒保卫战,而不是一个简单的密码破译,电影美化了个人英雄主义。在现实中图灵也并未造出一台真正的通用机器,只是与丘奇一同提出了邱奇-图灵论题,认为“每个算法可在一台通用图灵机上程序化”。可以简单地理解为每个问题都可以算法在一个通用的机器上编程实现。当然理论还停留在论题的阶段,并非真正的命题。电影中讲到了图灵做出来了通用的机器,这里很有意思的是,现在的计算机就是一种通用模型的简单实现。可以理解为,预想中的机器太难做出来,只停留在理论阶段,只能做出一个简化版本,在计算机上编写程序解决问题。怎么理解?计算机的引入是为了解决一种特定的问题,而大多数的问题都能转化为“计算”,计算机的底层都是0,1编码,通过所谓的加法和乘法实现了整个大的算术逻辑系统,程序员在这个系统上编写程序,运行程序,就是我们现在见到的软件。咱们在计算机上实现一种计算步骤,就是一种理解问题,将其转化为计算的过程,在编写代码的时候,没有思路,往往是对问题的理解有问题,一个大的问题有许多小问题组成,而代码编写的过程就是一种对问题分解过程,将其拆解成更小的步骤,这也是我们人类的一种有效的思维习惯。我们常说聪明的人,其实就是有能力对问题进行抽象和组合的人,在《有关人类理解的随笔》中,作者写到我们人类的心智活动,除了尽力产生各种简单的认知之外,主要表现为如下三个方面(1)将若干简单认知组合为一个复合的认识,由此产出各种复杂的认知。(2)将两个认知放在一起对照,不管他们如何简单或者复杂,在这样做时,并不能将他们合而为一。由此得到有关他们的相互关系的认知。(3)将有关认识与那些在实际中和它们同在的所有其他认识隔离开,这就是抽象。所有普遍的认识都是这样得到的。从心智对照到编程思维,其实就是对我们要解决的问题进行一个拆解,将其变成一个个小问题,然后对其分析、抽象,写出一个个更小的程序,每个程序之间都是独立的个体,组合起来就是我们程序。现在很多编程培训班,都不教这种能力,只是告诉你代码怎么写,这种能力只能在实际的思考中获得,与前面提到的,要造出能够解决所有问题的通用机器,学习编程的过程即学习一种解决问题的通用能力,无论技术怎么改变,这种能力可以一直存在。


转载请注明:http://www.abachildren.com/xgyy/8233.html

  • 上一篇文章:
  • 下一篇文章: 没有了