array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 克劳德·香农(信息论之父):天才的解决问题之道 - 爱码网

克劳德·香农花了差不多10年,制定了一套完整的、具有开创性意义的信息理论。

一开始在研究生院时,他只是想给当时的众多信息技术(如电话,收音机,电视机)建立一套通用的技术基础。

直到1948年,他发表了一篇名为《通信的数学理论》的论文。

他的重大贡献可不止这篇论文。当他还在MIT攻读硕士时,年仅21岁的他发表了一篇论文,这也被大家认为是20世纪最重要的硕士论文。

对于普通人来说,这无足轻重。香农并不是一个家喻户晓的名字。但如果没有他的贡献,我们所说的现代计算机可能不会存在。他巨大的的影响力不仅在计算机科学领域,而且涉及物理学和工程学。

 

天才一词被到处滥用,但如克劳德·香农这样真正配得上这个称号的人却屈指可数。他思考的方式异于常人,而且充满趣味。

讲到成就这样一位天才背后的原因,不得不提的就是他解决问题的方式。他不只是提出问题然后解决问题,而是他通过自己的方法,开发了一套思考过程来指导他洞察问题的本质。

虽然我们不太可能遇到他面临的问题,但这种解决问题的方法及其背后的推理还是有很多可以借鉴的地方,当我们了解了之后,或许可以帮我们更敏锐地思考。

一切问题都有其表现形式。我们必须先去理解问题,再着手解决问题。

在抠细节前先找到问题核心

找到问题答案固然很重要,但找到一种提问方式,以便更易于找到问题答案的重要性却被大多数人忽视了。

我们通常把目光聚焦在不同的细节上,想找到它们之间的联系,却没有集中精力去培养一种寻找问题本质的直觉。

香农恰恰反其道而行之。在他的自传《A Mind at Play》中,他坦言一些同时代的数学家觉得他思考不够严谨,步骤不够连贯。他们想要的是细节。

但是香农的推理方式是,只有你去掉问题中无关的细节,才能看到问题的本质,才能找到问题的答案。

通常情况下,当你看到问题的本质时,你可能觉得这根本不是之前思考的那个问题。所以,拿到一个问题时,在你纠结细节之前,以更宏观的角度来思考是很重要的,否则,你一开始就可能走歪了。

细节很重要,也很有用。很多细节的重要程度、能起多大作用跟其表现方式有关。但同样的,很多细节也没什么用。

如果一开始没有找到问题的关键所在,而是带着错误的细节信息就出发了,那样只会收集越来越多的错误信息,直到走进死胡同里。

从剔除无关细节开始,这样你才不会深陷迷雾当中,然后才能找到问题的本质。

找到问题的真正形式,这几乎和问题答案一样重要。

善用重构和对比

1952年,香农在贝尔实验室发表了一次演讲。演讲中,他深入分析了他如何创造性地思考他面临的问题。

除了简化问题和寻找问题本质,他还提到了其他的方法,这些方法在表面上似乎没什么作用,但对于创造性思考却至关重要。

当我们在一个问题上纠结了很长时间之后,通常会形成一种管窥思维,使得思路一直在一条链路上徘徊。逻辑思考总是从一个点出发,运用推理,建立连接,如果一切顺利,每次都会把我们带到同一个终点。

创造性思维则有些不同。它也建立连接,但比起逻辑思维,它是一种更发散、更具偶然性的思考模式。

香农的其中一个诀窍就是,他会把一个问题通过各种各样的方式来重构并进行对比。这可能会对问题进行夸大、或简略、或改变措辞、或转换不同的角度、或反转。

这样做是为了获得一种大局观,让他能更全面地看问题。

在思考问题时,我们很容易陷入自我的思维怪圈之中,要打破这种思维怪圈,最好的方式是改变参考点。不必颠覆自己对问题的直觉认知或是已认定的问题本质,而仅仅是改变表达方式。

例如,我们可以问:这个问题最好的解决方式是什么?并且也可以问:最糟糕的解决方式呢?两者都包含信息,所以我们都需要剖析。

就如同一个问题有多种形式,也有多种不同的外在呈现的模样。 不同的模样蕴含着不同的真相。

增加输入信息蕴含的本质

想法的质量固然重要,但其数量的作用也不容小觑。但并不是仅关注于想法的总数,而是关注你得到这些想法的过程。

为了解决问题,你必须有一个好想法。但反过来,要有一个好想法,首先你需要筛选掉很多平庸的念头。然而,即便如此,并不意味着要把脑子里所有的想法都拿出来过一遍吗,肯定有比这更好的方法。

在二战期间,香农遇到了同为计算机科学先驱的艾伦·图灵。图灵在美国的那段时间,他们几乎每天一起喝茶。多年来,他们仍保持着联系,两人都尊重彼此的想法并享受对方的陪伴。

当被问到天才具有什么特质时,香农用了一个图灵告诉他的类比,也是图灵经过敏锐地观察后得出的。以下是他的原话:
“有些人,你给他/她一个点子,他/她只会回你半个,但有些人能回你两个”
香农谦逊地否认了自己属于后者,而牛顿这样的人才是。但他的话也说明了,真正对解决问题发挥作用的,决不仅仅是点子的数量。

每个输入的信息都有其核心的精髓,能帮我们揭开掩盖真相的面纱。这个真相是不同问题的多种不同解决方案的基础。

我认为,香农想说的是,要产生好点子,就要善于发掘每个输入信息所蕴含的本质。如果你弄错了其本质,就可能产生出平庸的点子,但只要你能够尽可能的触及问题的本质,就能越快地得出真知灼见。

让你的想法产生双倍的成效只是第一步,真正带来本质区别的是要抓住本质。

总结

人的一生大部分时刻,无论在你的工作中、人际交往中、还是关系到你的幸福感的时候,归结起来就是发现问题,解决问题,好让你能继续前进。

克劳德·香农或许是一个具有独特思维的天才,但他思考问题的过程并非常人所不可及。他的长处在于善于运用该过程来解决问题。

优秀的解决问题的能力关乎批判性思维和创造性思维。而综合两者的最好的方式便是在思考的过程中,让两者各放异彩。

思维模式塑造我们的思想。正确的思维模式应该成为我们追求的目标。

相关文章: