精华内容
下载资源
问答
  • 学习响应式编程过程中最难的部分是如何以响应式的方式来思考,更多的意味着要摒弃那些老旧的命令式和状态式的典型编程习惯,并且强迫自己的大脑以不同的范式来运作。我还没有在网络上找到任何一个教程是从这个层面来...

    学习响应式编程过程中最难的部分是如何以响应式的方式来思考,更多的意味着要摒弃那些老旧的命令式和状态式的典型编程习惯,并且强迫自己的大脑以不同的范式来运作。我还没有在网络上找到任何一个教程是从这个层面来剖析的,我觉得这个世界非常值得拥有一个优秀的实践教程来教你如何以响应式编程的方式来思考,方便引导你开始学习响应式编程。

    为了展示响应式编程真正的魅力,我们假设你有一个"双击"事件流,为了让它更有趣,我们假设这个事件流同时处理"三次点击"或者"多次点击"事件,然后深吸一口气想想如何用传统的命令式和状态式的方式来处理,我敢打赌,这么做会相当的讨厌,其中还要涉及到一些变量来保存状态,并且还得做一些时间间隔的调整。

    而用响应式编程的方式处理会非常的简洁,实际上,逻辑处理部分只需要四行代码。但是,当前阶段让我们现忽略代码的部分,无论你是新手还是专家,看着图表思考来理解和建立事件流将是一个非常棒的方法。

    多次点击事件流

    图中,灰色盒子表示将上面的事件流转换下面的事件流的函数过程,首先根据250毫秒的间隔时间(event silence, 译者:无事件发生的时间段,上一个事件发生到下一个事件发生的间隔时间)把点击事件流一段一隔开,再将每一段的一个或多个点击事件添加到列表中(这就是这个函数:buffer(stream.throttle(250ms))所做的事情,当前我们先不要急着去理解细节,我们只需专注响应式的部分先)。现在我们得到的是多个含有事件流的列表,然后我们使用了map()中的函数来算出每一个列表长度的整数数值映射到下一个事件流当中。最后我们使用了过滤filter(x >= 2) 函数忽略掉了小于1 的整数。就这样,我们用了3步操作生成了我们想要的事件流,接下来,我们就可以订阅("监听")这个事件并作出我们想要的操作了。

    我希望你能感受到这个示例的优雅之处。当然了,这个示例也只是响应式编程魔力的冰山一角而已,你同样可以将这3步操作应用到不同种类的事件流中去,例如,一串API响应的事件流。另一方面,你还有非常多的函数可以使用。

    响应式编程可以提高你的代码抽象级别,好让你可以专注于定义与事件相互依存的业务逻辑,而不是把大量精力放在实现细节上,使用响应式编程会让你的代码变得更加简洁。函数式的风格使得代码看起来更像是声明式编程而非命令式编程:我们并不是在给一组指令去执行,只是定义了事件流之间关系来告诉它这是什么
    展开全文
  • 逻辑思维编程-----倒水问题

    千次阅读 2018-01-06 15:31:35
    其基本思想是用:用小桶容量的倍数对大桶的容量进行取余。比如3升的桶和5升的桶得到4升水可以这样做: 3 % 5 = 3 6 % 5 = 1 9 % 5 = 4 成功得到4升水。...同样,用7升的桶和11升的桶得到2升水可以这样做: ...
    其基本思想是用:用小桶容量的倍数对大桶的容量进行取余。比如3升的桶和5升的桶得到4升水可以这样做:
    3 % 5 = 3
    6 % 5 = 1
    9 % 5 = 4

    成功得到4升水。

    同样,用7升的桶和11升的桶得到2升水可以这样做:
    7 % 11 = 7
    14 % 11 = 3
    21 % 11 = 10
    28 % 11 = 6
    35 % 11 = 2
    成功得到2升水。

    # -*- coding:utf-8 -*-
    '''
        思想:用小桶水不停的给大桶装水
             用小桶容量的倍数对大桶的容量进行取余
    '''
    a_full_water = 7  #小桶
    b_full_water = 11  #大桶
    goal_water = 2     #目标取水量
    
    a_over_water = 0 #A中剩余水
    b_over_water = 0 #B中剩余水
    list_count = []
    
    while True:
        if a_over_water == 0:
            '''给A water 装水'''
            a_over_water = a_full_water
        else:
            if a_over_water < b_full_water - b_over_water:
                '''B 中剩余水 = 原来B中剩余水 + A 中的水'''
                b_over_water += a_over_water
                list_count.append(b_over_water)
                a_over_water = 0
            else:
                '''A中剩余水大于B中可装的水'''
                a_over_water = a_over_water + b_over_water - b_full_water
    
                if a_over_water == goal_water:
                    list_count.append(a_over_water)
                    break
                '''清空B桶中的水,在把A桶中的水倒入B桶中'''
                b_over_water = a_over_water
                list_count.append(b_over_water)
                a_over_water = 0
    
    print list_count
    


    展开全文
  • 编程思维

    2018-09-03 18:29:51
    数学思维:找到公式,利用公式求解 计算思维:抽象一种过程,用计算机自动化求解

    数学思维:找到公式,利用公式求解
    计算思维:抽象一种过程,用计算机自动化求解
    模块化思维:将一个大的功能分割成若干个小模块,确定模块接口,封装功能
    规则化思维:抽象过程为规则,计算机自动执行
    化繁为简:将大功能变成小功能组合,分而治之

    展开全文
  • 金字塔思维编程思维

    千次阅读 2020-10-05 14:42:10
    厉害的人之所以分析问题厉害,是因为他们具备这种思维!!! 你一定试过通过脑暴来分析问题,几个部门的人围在一起讨论一个问题,各自从自己的角度出发,想要说服彼此。 结果2个小时的脑暴会,问题的的解决方案还是...

    在这里插入图片描述

    厉害的人之所以分析问题厉害,是因为他们具备这种思维!!!

    你一定试过通过脑暴来分析问题,几个部门的人围在一起讨论一个问题,各自从自己的角度出发,想要说服彼此。

    结果2个小时的脑暴会,问题的的解决方案还是没有进展,反而出来一大堆无关的东西,2个小时会像是白开了,你甚至不知道应该怎么办。

    这是因为缺乏结构化思维造成的。

    而厉害的人善于分析问题,就是因为他们具备结构化思维!

    **

    什么是结构化思维?

    **
    一般来说,我们可以把思维分为平面思维、单线思维和结构化思维。

    在平面的思维方式里,人们解决问题的方式简单粗暴。

    平面的思维也可以称之为就事论事式,比如说一个蓄水池,水突然减少了,为了解决这个问题,平面思维的解决方式就是:抽水到水池里,把这个水池填起来。

    在这里插入图片描述
    显然这并没有真正解决这个问题,反而把事情真相给掩盖了。所以,我们会用到单线思维~

    单线思维会按照某一个方向进行扩散思维,通过进一步寻找问题产生的原因,从而解决问题。

    同样是面对水池水量减少的问题,单线思维会将这个结果归结到某种原因之上:比如水池在漏水。所以这种思维方式,就会引导问题解决者去想办法堵住这个漏洞。

    但实际工作中我们发现,单线思维和平面思维都有其片面性,都无法挖掘出事物的全貌,给出一个完善的解决方案,他们多少都影响了我们对于问题的认知,甚至可能会诱导我们做出一些错误的行为。

    这个时候就必须提到结构化思维了。

    当我们采用结构化思维进行分析的时候,可以把问题从内因、外因两方面来进行归类,从而找出问题的原因,逐项进行分析,从而帮助我们更高效地解决问题。

    在这里插入图片描述

    水池的简单分析

    而这种结构化的思维方式,被全球知名咨询公司称为“金字塔思维”。

    那些“厉害的人”用到的项目管理方法、问题分析方法(SWOT分析、5W2H、)、高效表达和沟通(时间管理、写作)的方法,其实都脱胎于金字塔思维。

    金字塔思维可以帮助我们更高效地建立问题和原因之间的逻辑联系,更有效地分析问题,从而解决问题。

    那么,说了金字塔思维的一个案例,什么是金字塔思维,为什么金字塔思维更高效,如何运用好金字塔思维呢?

    下面一一说到:

    一、什么是金字塔思维?

    官方给金字塔思维的定义是:“金字塔思维就是从不同维度上来思考问题的一种方式”。

    也许这个概念听起来比较难以理解,我举个例子来说明吧。

    A公司是一家从事互联网在线教育的公司,一年大利润大概是1000万,现在CEO张先生说:“明年,我想让公司的利润翻一倍。”

    你作为这家公司的首席运营官,不得不第一时间去思考怎么样去完成这件事情。

    你召集团队开会,每个人都从自己的角度提出了看法:

    产品部的小刘说:“今年年底会上线一款新产品,预计可以多创造出一部分利润。”

    销售部的小王说:“最近把销售的话术进行了优化,预计可以把销售的转化率提升20%。”

    市场部的小强说:“市场上获客成本基本保持稳定,为了增加利润,必须扩大投放预算。”

    运营部的小李说:“我们的课程口碑很好,每10个学员中,有2个来自于口碑推荐,我想这个能给我们节省出一部分利润。”

    商务部的小红说:“明年可以再开发出一批合作分销渠道,预计可以增加50%的分销流量。”

    行政小刚说:“今年的内部资源浪费很大,明年可以稍微控制下,这里也可以节省出一部分利润来。”

    你如何把这些方面的汇报,总结成一套可以实施的框架呢?

    其实很简单。

    首先利润增加,我们可以把它分成开源和节流两方面。

    然后开源又可以分成:增加市场投放预算、增加分销合作渠道、上线新产品、提升口碑推荐量

    而节流则可以分为:减少内部费用损耗、提升销售转化率

    进而将每一项进行细分,单独制定出指标量来。

    这样,我们就可以初步构建出一个思维框架出来,从而用于指导实际的工作:
    在这里插入图片描述
    通过这样的模式划分(当然也可以从另外的角度划分)

    你就可以根据历史的数据,计算出市场费用应该增加多少、分销渠道的带量应该增加多少…,从而制定出相应的营销计划出来。

    这种思考方式,金字塔思维模式里称之为自上而下的思考方式。

    还有一个案例,我相信你可能听说过:

    小花是一家公司的行政助理,今天刚好是星期五。

    老板这几天打算去北京出一趟差,所以把她叫到办公室,交代她一些事情,希望小花在他回来之前能够完成。

    老板漫不经心地整理着自己的文件夹,说到:“小花,明天我要去北京,帮我订一张机票,同时帮我把酒店安排好,明天下午3点左右的飞机。”

    “还有,我不在的这段时间,你记得组织一下每周一的周会。另外有一个客户后天下午4点要过来,你记得负责接待一下。”

    “对了,周二上级的领导要过来视察,你好好准备一下。到时候你看看安排一下办公室。”

    “另外就是,我去北京出差的文件待会儿发给你,你帮我准备一下。你待会儿出门再帮我定一杯咖啡上来。还有帮我通知一下运营总监王总来一下我的办公室。”

    如果就这样记下来,我们很容易产生遗漏,实际上可以利用金字塔思维进行简单的归类:
    在这里插入图片描述
    这样分类之后,我们就很容易根据事情的重要紧急程度进行排期,从而高效完成工作了。

    这种思考模式,金字塔思维里称之为自下而上的思考方式。

    这种通过搭建基本的思维框架,从而建立不同事物之间的内部逻辑的分析方法,我们就称之为金字塔思维。

    在金字塔思维中,我们把思维的结构分为了两个方向:纵向思考和横向思考,这两个方向共同组成了金字塔思维的逻辑关系体系。

    在纵向思考中,思维方式是按照自上而下或者自下而上的顺序进行的,也就是说从中心论点>>分论点>>子论点的方式(或者相反)进行思考。

    而在横向思考中,思维方式则是按照演绎或者归纳推理来进行的。

    关于演绎和推理的思考方式,你可以看看我这篇文章:遇到问题,有哪些有效的分析方法?

    将纵向的逻辑关系和横向的逻辑关系进行组合,我们就构建出了一个金字塔思维的核心内容。

    在这里插入图片描述

    二、为什么金字塔思维更高效?

    在信息近乎爆炸的今天,一个问题产生的原因往往是非常多样化的。

    比如一家公司如何在市场竞争激烈的环境下活下去,其实这是一个影响因素非常多的问题,可能跟市场环境有关,跟人们的需求变化有关,跟内部的管理有关,跟人才队伍有关…

    而这些因素之下,又可能分成N多细小的影响因素。

    比如市场环境可以分成:资本的青睐程度、市场上竞品的增加、替代产品的出现、经济因素等等

    这并不像之前提到的水池水量减少的原因那样简单,我们很难通过简单的归因,找到问题的本质原因,从而提出解决方案。

    这个时候,金字塔思维的作用其实就在于:它能有效帮我们理清思维的逻辑,从而找到事物之间的联系,寻求一套更完善的解决方案。

    在这里插入图片描述

    三、如何运用好金字塔思维?

    从本质上讲,金字塔思维就是一个层层分解的结构化思考模式。

    这个思考模式之下,一般都是由塔尖、塔身、塔基构成。

    在这里插入图片描述

    • 塔尖就是我们的中心思想或者说主题;塔身就是构成中心思考或者主题的各个分论点;而塔基则是支撑各个分论点的要素或者论据;

    了解这一点之后,我们很容易就知道,在日常生活中,我们一般都是先遇到问题,再分析和解决问题的,所以一般属于自上而下的思考方式:

    所以第一步是确定问题的背景:

    例如公司业务发生亏损、老板安排任务、工作遇到问题

    第二步则是针对问题,提出中心思想:

    比如针对公司亏损这个问题,如何在3个月内实现盈利,就可以成为我们的中心思想

    第三步就是将中心思想进行分解:

    当我们找到合理的中心思想后,就需要对中心思想进行分解,从而寻求更具体的解决办法。这就是我们进行横向思考的过程。比如,我们可以把公司实现盈利的问题划分为:提高管理效率、减少内部开支、提高产品单价、构建新的业务线等几个方向。

    第四步就是继续分解,直到能够把问题解释清楚。

    这里要注意几点:

    1、整个金字塔结构只有一个塔尖——即中心思想;

    2、整个金字塔结构中,下一层思想由上一层思想统领;

    3、每个层次的一组思想属于同一个范畴,同一组思想思考过程实际上就是归纳分组的过程;

    4、每一组中的思想按照一定的逻辑顺序排列;

    5、同一个思想下,分组必须相互独立、完全穷尽;

    好了,最后,咱们总结一下金字塔思维的几个步骤:

    1、了解问题的背景;

    2、提出中心思想;

    3、将中心思想进行分解;

    4、继续对分论点分解,直到把问题解释清楚

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 网络编程思维导图

    千次阅读 2016-11-23 14:09:58
    网络编程知识点,思维导图
  • 今天就给大家聊聊思维编程给所有人带来的好处。在这里我们不评论谁好谁坏,只是聊聊而已! 首当其中,就是整体的宏观思维,具备编程思维的人,在思考一件事的时候,不再是面向一步步该怎么做,而是整体的思考。在...
  • 编程思维启蒙(Raptor)

    千人学习 2016-09-13 08:45:13
    Raptor是一种基于流程图的可视化编程开发环境。程序设计初学 者普遍存在“编程没思路”的问题,这与同时学计算机语言与编程 方法造成的认知负荷过大有关。Raptor用一系列相互连接的图形 符号以及符号...定思维基础。
  • 灵感思维是在思维经验基础上的高级自动编程思维,用已知程序知识自动 编程出未知程序解题是灵感思维的特点。已知程序包括思维经验程序。程序也是 一种知识,包括事实知识、过程性知识、控制性知识,更多的是控制性...
  • 大家经常听说“学编程可以培养编程思维”,而编程思维是什么?学编程和培养编程思维有什么联系你知道吗?本文,带大家从多方面来具体了解下编程思维。 一、什么是编程? 在了解编程思维之前,首先,要和大家说一说...
  • 面向对象的编程思维

    千次阅读 2014-11-21 10:30:06
    面向对象众所周知是一种编程思维编程语言就是用面向对象的方式抽象了整个世界。一直以来我对这种思维只是简单的知道了解,最近看了好多大师的视频和博客,才发现面向对象的思维真的是建模事物的最好方式
  • 昨天看了一篇文章,里面有段话讲的比较务实:开发效率,从平台发展的各阶段实践中,我们发现,对于一个统计任务/算法任务/风控任务,如果采用传统的编程思维方式去实现,那么只能通过堆开发人员,去...
  • Java编程专题思维导图

    万次阅读 多人点赞 2015-01-11 21:48:36
    Java编程专题的思维导图,包括I/O、多线程、Socket编程、泛型、集合框架、异常机制、GUI编程等内容。
  • java并发编程思维导图

    千次阅读 2018-11-19 16:10:48
    这里接着上篇的 Java虚拟机思维导图 ,又总结了并发相关的知识点做成了思维导图,这里把它贴出来方便后期的复习。不过没有像 虚拟机 那篇文章详细划分各个部分。 闲话不多说,直接贴图。 基础部分 这个部分列举...
  • 那什么是编程思维呢? 编程思维看似一个抽象无比的概念,但在我们的生活中,其实到处都蕴含着编程思维模式。小到洗衣做饭,大到公司决策。编程思维是计算机科学解决问题的一种强有力的思维方式。具有编程思维的人,...
  • 图形界面编程思维导图

    千次阅读 2018-06-15 23:11:16
    界面编程思维导图
  • 编程逻辑思维训练

    万次阅读 多人点赞 2018-03-30 10:52:12
    答案:这是一道没有标准答案的试题,实际上它考的是你的开放性思维和逻辑推理能力. 第一步:对1到3层的大小进行比较,记住最大的一颗。 第二步:4到6层作为参考,将4-6层的最大的跟1-3层的最大的作比较,确认...
  • Python之编程思维

    2019-10-29 21:24:09
    python完全采用了面对对象的思想,是真正面向对象的编程语言。 面向过程思维 适合小规模程序。 关注的是“程序的逻辑流程”。 是一种“执行者”思维。 面向对象思维 适合大规模的程序。 关注的是“软件中对象之间的...
  • 随着思维培养被广大父母日渐看中,关于“编程思维培养最佳年龄”的话题被热议。那么孩子几岁开始接受编程思维培养比较合适呢?今天小贝老师就给大家做一下专业解读。 瑞士著名心理学家皮亚杰曾经提出:儿童和青少年...
  • 面向对象编程思维导图

    千次阅读 2018-06-15 23:10:41
    面向对象编程思维导图
  • 编程思维之与人类语言的思维差异(新手必看)

    万次阅读 多人点赞 2021-05-10 12:44:11
    很大程度上是由于编程语言和人类语言(学名叫做自然语言)之间存在着很大的思维差异。   为了帮助大家理解,先举个栗子,老婆对老公发信息说:下班买几个苹果回来,如果看到西瓜,就买一个回来。不知道大家看到这句...
  • C语言编程编程思维培养的重要性

    千次阅读 2016-10-25 22:37:06
    今天在学习在练习C语言编程时,我感受到个人的编程思维的培养很重要,就拿今天做的2个趣味编程举例。 1,问555555的约数中最大的三位数  最简单的想法就是从2到555554之间的所有数去除555555,求出所有约数。但是...
  • 函数式编程思维

    2018-02-15 23:16:57
    函数式编程思维 1 直观的角度来说,函数式风格的代码可以写得很精简,大大减少了代码的行数,并且思维方式不再是命令式,而是偏向于自然语言. 2 其次,函数式的代码是“对映射的描述”,函数一词的意思不再是我们程序...
  • 编程思维启蒙(Raptor)课程主页

    万次阅读 2016-09-13 09:56:31
    在用编程解决问题的过程中,让自己具备编程思维,这是我一直倡导的做法,不少同学坚持了,也找到了感觉。  有没有好的方法让同学们具备编程思路?传统的程序设计学习,是“学语言”与“学程序设计”同时进行的,...
  • C++编程语言思维导图

    千次阅读 2018-03-31 09:53:38
    分享C++编程语言思维导图一张。关注微信公众号“资料在线”,回复“python思维导图”,即可获得思维导图。回复“python书单”,获取2018年度python书单电子版推荐阅读:不可错过的十本Python好书视频 | 小白python...
  • Java并发编程思维导图

    千次阅读 2018-07-22 14:27:03
    并发编程JDK-API 线程安全 概念 性能与可伸缩性 解决死锁 如何让多线程下的类安全 类的线程安全性定义 实战:实现一个安全的单例模式 JAVA的详解 volatile关键字 使用场景 指令重排序 ...
  • 机器人编程学科交叉性非常强,在传统的学科教育中,每...机器人编程课程对于儿童能力培养的助力,不仅仅体现在编程思维这一个维度,对于创造力、想象力、学习力等多重能力的培养同样不可或缺。 开发编程思维其实就...
  • python编程思维导图

    千次阅读 多人点赞 2017-12-08 18:23:05
    基础知识图一包括了基本规则、Python语言特点、计算机语言、如何运行Python、变量赋值五个方面,辅助你快速掌握Python编程的基底知识。 第二张图 基础知识图二包含了模块结构、布局、IO编程流程、标识符、Python...
  • Java编程思想思维导图

    2018-03-30 10:24:39
    之前看过《Think in Java 》 这边书籍,为了便于自己的理解和记忆,我把一些通用的概念整理出了一份思维导图,转换的图片效果如下图 由于图片看起来并不直观,所以我把导图上传到CSDN服务器,大家有需要的话可以...
  • 进入人工是智能时代,数学能力和编程思维越来越受到家长们的重视。虽然绝大多数家长依旧把学习成绩和分数看得非常重要,但是对于孩子编程思维能力的塑造也放在了非常重要的位置。怎么样有效提升孩子的编程思维?少儿...
  • tips:今天送出限时福利惊喜,就在文章底部~在已然到来的AI时代,编程语言是AI时代的通用语言,帮助人控制机器,其核心则是“数学”的运用(从人脸识别、指纹识别到智能语音...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 206,151
精华内容 82,460
关键字:

思维编程