您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
编程思维到底是什么?
思维,抽象,问题编程思维到底是什么?
发布时间:2020-12-06加入收藏来源:互联网点击:
在这个阶段,从编程本身来说最核心的还是算法和数据结构。这也是任何程序最重要的两个基本要素。既把问题域本身涉及到的数据映射到合适的数据结构,把通过程序解决问题的过程映射为具体的算法逻辑。那么编程实际的难点在哪?不是算法本身或数据结构本身,而是当你拿到问题域的时候知道如何理解和分解问题,并将其映射到最适合的算法或数据结构上。这个映射其实本身不是程序解决的问题,还是人脑在思维,程序本身仅仅是在实现自动化的过程。
那么程序在算法实现过程中最基本的是什么?我们看不同的程序片段可以看到的还是if/else,或者for/while,然后才是数据或数据类型定义。而前者即写任何一个程序中最重要的控制逻辑。那么编程里难的实际上不是控制语句本身,而是在把问题域分解后知道如何理解判断逻辑,如何将问题域中重复的东西抽象为循环,如何从问题域中抽象出数据结构。一个人编程能力本身的好坏,或者说编程思维能力,重点其实是体现在这种映射能力,也可以称这种映射能力为数学 建模能力。举个例子来说,如果一个问题你已经知道了可以映射到构建二叉树,然后通过遍历的方式来解决了,那么可以说然后一个掌握了语言语法的人都可以写出 程序来。那么实际编程思维或能力的强弱则在于前面谈到的映射和建模。
面向对象思想和面向对象编程语言的出现,可以说也是编程思维本身的第二次重大提升。既原有的编程语言可以看到我们关注更多的已经是抽象后的解决方案,而面向对象的编程语言则首先关注的是通过对象和类,通过继承,通过接口定义等首先对现实世界进行很好的抽象描述,其次才是如何去解决问题。现实世界中所有的一 切都是对象,而面向对象语言中的类本身就是对现实世界中对象的很好的抽象。
对于面向对象的核心特征谈的比较多的是封装,继承和多态。这些可能比较偏技术词汇,那么再简单点来说面向对象编程思维其核心则是找到问题域中的对象,将其抽象为类,识别类应该有的属性和方法特征,同时去理清类和类之间的关联和交互关系,将问题本身的解决过程映射到类和类之间的方法交互上。如果从这个意义上 来说,好像也不是很复杂,那么实际面向对象编程的难点实际在为了保持代码足够的健壮性,可维护性,可扩展性而做出的各种抽象,包括接口的提取和组合,控制或逻辑类的增加等,这些本质已经转换到技术域类本身。
除了上面谈到的,再谈下其它的一些内容。编程里面有一个重要的思想即是复用,从最简单的函数,到模版库,类库,再到更上层的公共组件等,都在体现复用的思 想,而复用本身的目的则主要是提升开发效率,提升可维护性和代码的可读性等。复用可以理解为编程过程中的编程思想更加恰当。
编程的思想是自动化,不要简单的理解为编程语言能够帮助你解决建模和映射的难题,编程的自动化更多的还是体现在机器可以自动化的进行大量计算和运算,而这个运算是通过我们的程序进行的。程序中体现的一个重点我更喜欢把它理解为循环,从抽象中去发现和发觉一种可自动化的循环,这种循环的处理正是程序的强项。 任何人都应该有这种自动化的编程思维,即懒人思维,重复的事情一定不要自己手工重复完成。
回答于 2019-09-11 08:43:50
编程思维属于理性思维,情绪化的东西,计算机应付不来。
回答于 2019-09-11 08:43:50
对于编程来说确实需要有思维,在公司也带些实习生,发现他们有的就是一点门路都摸不到,不管讲多少遍跟没说一样,让你抓狂的不行,平常交谈感觉就没在一个纬度上。
对于编程来说个人认为就是纯理性的思维一步一步进行,中间没有夹杂感性思维,就像数学的严密性一样,永远都让你程序的每步运行都是一加一等于二的效果。
可能未来开发出更加高级的语言,或者人工智能高度发达之后人们就能用感性思维编程了吧
回答于 2019-09-11 08:43:50
看到编程两个字,我们首先会联想到的就是程序员,那么编程思维就变成了程序员的思维。其实,这么理解也没有错。编程思维其实是一种高效率解决问题的方式,是“理解问题——找出路径”的高效思维过程,它由“分解—抽象—模式识别—算法”四个步骤组成。我们来详细认识一下这四个步骤。
1.分解
简单来说,分解就是把复杂的大问题,拆解成更加可以理解的、可以执行的小步骤。比如说,老师让你写2万字的论文,你会感觉无从入手,这就是一个复杂的大问题,但是如果你有编程的思维,就可以把它拆分成更小的步骤,先定题目,然后列框架,一步一步填充,最后完成论文,解决这个大问题。
2.抽象
抽象,是指“抽象思维”,锻炼的是我们忽略无用信息,抽取关键信息的能力。比如我们在学语文,做阅读理解的时候,就要快速抓住关键信息和中心思想,才能更好地理解全文。
3.模式识别
模式识别,就是找出相似的模式,并高效解决。简单理解的话,其实就是找规律。比如从1加到100,就是50个101相加,最后得到结果为5050。
4.算法
算法就是根据之前一系列对于问题的理解,设计一步步的解决路径,并解决整个问题。也就是说你前面的都已经做好了,最后要实际的去做了,中途可能会出现错误,就需要再回头去看,直到最后解决问题。
那么,拥有编程思维有什么好处呢?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |