关于“编程思维”

在开始之前首先感谢一下王若慧老师所给予的启发,结合参考了网络上的一些看法和加上个人的见解。

首先,我认为编程思维不是编程语言(编程语言只是一个工具),甚至于不是算法和数据结构本身,我们学习它们的内容只是为了有一个更加结构化的知识体系和框架,从而能够帮助我们解决问题。

真正的编程思维是指一种有效解决问题的思维方式,利用所学习到的知识体系和框架,从而去分析问题,解决问题。

我们要知道,同一个问题,解决他的算法就肯定不止有一种,这个时候我们就需要来思考并且判断采用什么样的算法来解题,甚至于对于一个问题而言,在大多数情况下,A算法的功能性要强,但在某种特殊的情况下,B算法却又优于A算法。

类比而言,同一个问题,能抽象为的数据结构也不相同。

01

一、问题分解

建议大家,解决问题的时候,首先要把问题分解。大化小,难化易,复杂化简单。一个棘手的复杂问题先被拆解成一系列相对而言容易解决的小问题。

1

大化小

将整个问题分解成更小的子问题,逐步解决每个子问题。

2

难化易

将复杂的问题分解成更容易解决的部分,逐步解决每个部分。

3

复杂化简单

将复杂的问题简化成更简单的子问题,逐步解决每个简化的子问题。

二、模板套用

在解决问题时,可以利用已有的解决方案来提高效率和准确性。这些已有的方法就是所谓的模版,以下是一些方法:

01

搜索引擎

使用搜索引擎查找与你面临的问题相关的解决方案。很多问题都有已经成熟的解决方案,搜索引擎可以解决大部分问题,我们直接拿来用就可以了,并且记住这种解决问题的方案。而剩下解决不了的小问题,我们在进行针对性解决,每一个小问题解决后,一整块大问题就随之解决。

02

学习和记忆

将已有的解决方案学习并记忆下来,以备将来使用。这样可以在遇到相似问题时快速找到解决方案。

03

开源项目和库

利用开源项目和库中的解决方案,这些项目和库通常包含了丰富的解决方案和工具,可以直接拿来使用。

三、抽象化处理

抽象

抽象是一种能让你在关注某一概念的同时可以放心地忽略其中一些细节的能力,在不同的层次处理不同的细节。任何时候当你在对一个聚合物品工作时,你就是在用抽象了。当你把一个东西称为“房子”而不是由玻璃、木材和钉子构成的组合体时,你就是在用抽象了。当你把一组房屋称为“城镇”时,你还是在使用抽象。

以复杂度的观点看,抽象的主要好处就在于它使你能忽略无关的细节。大多数现实世界中的物体 (object,对象)都已经是某种抽象了。正如上面所提到的,房屋是门、窗、墙、线路、管道、隔板等物体及其特定的组织方式所形成的抽象同样,门是一块长方形材料加上合叶和把手以及一种特定的组织方式的抽象。而门把手又是铜、镍、铁、钢等的一种特定形式的抽象。

抽象化处理在解决问题中有以下作用:

简化复杂性

通过抽象化处理,可以将复杂的问题简化成更易于理解和处理的形式,从而降低解决问题的难度。

忽略无关细节

抽象化处理可以让你忽略问题中的无关细节,集中精力解决核心问题,提高解决问题的效率。

提高复用性

通过抽象化处理,可以将问题中的通用部分提炼出来,形成通用的解决方案,从而提高解决方案的复用性。

提高概括能力

抽象化处理可以帮助你更好地概括问题的本质和特点,从而更好地理解问题并找到解决方案。

最后的话

养成独立思考的习惯,养成切分问题,养成大问题化解小问题,养成套用学过的算法,才会有思路。

路漫漫其修远兮

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值