美文网首页
抽象能力

抽象能力

作者: 明翼 | 来源:发表于2020-02-28 18:29 被阅读0次

一 抽象

世界是复杂的,复杂到我们大脑反应不过来,所以进化出来一个很重要的能力就是抽象。

记得在一个小品节目中看到一个笑话,“问,把大象装到冰箱里面,一共需要多少步?” 答:“一共需要三步,第一步把冰箱门打开,第二步把大象放进去,第三步把冰箱门关上” 。虽然是个笑话,却也告速我们看待问题的层次很重要,也就是要学会抽象,在普通人看来,大象放冰箱里面是个非常复杂的事情,划分成多少步几乎是个无解的问题,却通过高度的抽象,把问题简化到最简,问题就迎刃而解了。所以遇到几乎无解的问题,就把视线拔高,从更高的层次去看代问题,做各种各样的简化,最终将大事化小事,小事化成可以真正执行的步骤。

二 层次化思维

抽象是一种层次化思维,就拿我们程序员来说吧,如果新开发的程序发现一个bug,你是个程序员,这个bug是你开发引入的,需要你来解决,但是折腾了几天了还是毫无头绪,各种沮丧的情绪好像世界末日(不知道开发朋友有同感嘛?:))。

这时候视角在这个bug上,确实是很大的问题;如果把视线拔高从整个程序角度来看,这个bug存在,是否整个程序不能用,还是这部分功能不能用,如果只是部分功能不能用,那我们是不是可以把这个功能暂时砍了去,程序还是正常运行;如果再次把视线拔高,也许这个产品只是个实验性的产品,整个产品都砍下去,对公司影响都很小,何况是这个bug;

对个人来说,解决不了这个bug,只能算找bug这种能力有待提高,但是作为一个程序员,不光需要编码能力,从高一些的层次来说,还需要架构设计能力,编码能力,基础能力等必须技能;但是从更高一些的层次来说,以上所说的能力,只能算软件编码设计能力,还需要沟通能力,协调能力,表达能力,视觉越高,bug这个问题的影响就越小;就算编码设计能力一无是处,离开了软件开发这个行业,仍然有很多行业选择。这些是从行业的角度,如果再高一个层次,除了工作,还有生活,所以同一个问题,在不同的维度看来就会越来越小。bug是这样,其他的事情也一样,除了生命,一切都是小事。

这种高层次的抽象思维很重要,比如在做规划的时候,是将整个人生做规划,所以不是仅仅规划今年完成几样工作,而且是要将个人健康,生活,以及工作都综合考虑进去,这其实是对人生的几个事情做了抽象,无论哪个主题扩展开来都会有很多内容;通过高度抽象,从而做到简化的目的,
简化是为了好把握,大脑对于复杂的事情,很头疼,简化了抽象了,使我们考虑问题的时候,更综合,更立体了,确保没有遗漏大方向。

三 抽象优点

像上面所说的,抽象高层次看待问题,可以简化问题,可以将问题考虑地更加全面。抽象简化了问题之后,让我们可以从更高角度来考虑问题,从而设计出更复杂的东西。就好比用乐高积木来拼个城堡,感觉很复杂,那么我们把城堡先看成一个个房屋组成,而房屋又是由 门,墙壁,屋顶这基本组成,而门,墙壁,屋顶这些还可以继续分下去,这样我们通过这种多层次的层层抽象,简化,最终拼成很复杂的成本。

这也类似于软件设计里面的模块化思维,任何复杂的软件都是由一个个模块组成,模块再细分为一个个类,类再细分出成员变量和函数,函数再分成一行行普普通通的代码。阅读一个软件的源码不能上来就看代码,最好的办法,先了解功能,知道可以划分成多少个模块,然后再分析每个模块涉及到哪些接口,哪些类,重点分析模块之间的交互,相当于先把大架子在心中还原出来,再去了解感兴趣的细节。

相关文章

  • 抽象能力

    小的时候,爸爸妈妈教我们认识世界,会告诉我们说,“你看,这是梨子 这是苹果,那是香蕉”,等过一段时间,家长会说,...

  • 抽象能力

    抽象能力对于编程非常重要,数学就是一直用来训练这种抽象能力,从数字到微积分、概率统计和离散,从小学到大学这种训练一...

  • 抽象能力

    这些天看《逆向管理》,里面谈到很多实践,其实就是我本能在做的,可是却没有意识到的。 比如谈到要建立自外而内的思维方...

  • 抽象能力

    一 抽象 世界是复杂的,复杂到我们大脑反应不过来,所以进化出来一个很重要的能力就是抽象。 记得在一个小品节目中看到...

  • 抽象的能力

    最近在做一个改造的项目,过程中感觉很费劲,在以前的基础上进行修修补补,很是费劲,自己怕时间不足,不想进行大的重构,...

  • 逻辑抽象能力

    逻辑抽象能力是区分一个程序员的hell9o

  • 论抽象

    报载:人工智能抽象思维能力显著提升 抽象思维即联系不同概念从而形成新概念的能力。“深层思维”巴雷特说“抽象推理能力...

  • 架构师进阶实战随堂笔记一

    前言 案例:12306 架构师特质:逻辑思维、抽象能力 架构师画像:业务抽象落地 共同能力: 工程思维、抽象、落地...

  • 关于软件设计

    软件设计的本质是抽象能力,包括: 把业务模型抽象为软件模型的能力。 把问题域抽象到软件域的能力。 软件设计的关键目...

  • 架构师的两大能力

    抽象能力 首先,把具体业务抽象为业务模型;然后,把业务模型抽象为软件架构。 工程能力 保证软件架构落地,亲自参与架...

网友评论

      本文标题:抽象能力

      本文链接:https://www.haomeiwen.com/subject/bkalhhtx.html