❶ 《好好思考》:如何建立基于思维模型的知识体系
精进学思行 精进学思行
本周一我们开了疫情复工后第一次全员大会,创始人在会上介绍了疫情对我们的影响,重点说明了不确定是未来的世界的常态,以及我们如何应对,进而提高我们的确定性。
我一直认为公司和个人的发展有很多相通和可以借鉴的地方,所以,组织面对不确定性的应对措施,比如聚焦,优化管理以及降本增效,对个人应对不确定的未来也是有启发性的。
面对未来的不确定性和复杂性,在 VUCA时代,你需要一件称手的武器 我们分享了一个重要的工具——清单。针对这个话题,分享最近读到的一本书《好好思考》,这本书重点介绍了面对快速变化的复杂的,如何更有效构建我们的学习和思考能力?作者是成甲,我很喜欢的一个作者,也是一个非常专注于“学思行”的人,他之前写过一本书叫《好好学习》,这是他的第2本书,书中很多观点对我很有启发性,分享与你。
这本书回答了三个问题:
为什么多元思维模型重要且有效?
如何建立以问题为导向,基于多元思维模型的知识体系?
如何利用这个体系解决复杂的问题?
1 为什么多元思维模型重要?
我们简短回答第一个问题,重点介绍后面两个问题。
那么为什么要掌握多元思维模型?我理解有两个重要原因。首先是"多元",多元可以理解为多个角度,因为现实世界的问题往往是很复杂,只用一个角度去理解,存在很大的局限性,所以,为了能够更加全面深刻地理解事物的本质,以及掌握更多的解决方法,需要建立等多的视角;其次,这里提到的模型,主要是指重要学科的重要原理,因为是基于原理的,所以通常具有很强的适用性,且能从根本上解决问题。
多元思维模型,最出名的来源是——查理.芒格,巴菲特的长期搭档,成甲而是受其影响,转变了对高效学习的认知。以前他认为,学习就是掌握更多知识和经验,而现在认为是为了更好寻找做决策的依据,以便在不断变化的复杂世界中做出更好的决策。
2 什么是多元思维模型
”思维模型”指的是我们每一个人思考时所使用的思维模板,可以认为是思考的“套路”,在查理芒格看来,所有能够持续有效解决问题的策略,都可以称之为思维模型。
那什么是"多元"?就是模型要是多个不同维度,芒格推荐要学习重要学科的重要原理,因为它们是人类最顶尖的智慧所发现事物普遍规律。当面对一个问题的时候,要多个角度对问题进行分析和解决,而不是单一的视角。
2.1 多元思维模型解决问题的4个层次
作者以自己砍价的为例,总结了我们在解决问题时,使用的策略的4个层次:经验技巧,方法流程,学科原理和哲学视角。
经验技巧,就是我们在实践中总结的零散经验,在解决问题时,给我们以启发,比如"从脚脖子砍价"。作者提到自己2000年在北京买衣服的一次经历,他看中一个衣服,老板报价400,成甲尝试问了一下“200行不行?”,老板说“好,成交”,他直接吓跑了,后来他的朋友说,这种地方砍价要从脚踝开始,别人报价400,要先砍到40,后来在朋友的陪伴下,以90元成交了,这就是典型的经验技巧。
但上面这个砍价方法不具有通用性,比如你去买车,别人标价40万,你直接砍到4万,肯定会被人打出来的。所以,这个方法有它的局限性,还有其它方法吗?作者后来发现,其实有一本商业书籍,专门讲一系列谈判方法,而其中的第1个策略就是"狮子大开口",而对应的,还有很多类似的这样的方法论,这就是方法流程层面。
但这还不是最根本的,为什么这些方法流程会有效呢?比如拿前面的这个砍价,为什么商家开价那么高,因为这里涉及到心理学的“锚定效应",这就是学科原理层面。
而比这个锚定效应更深层次的是心理学对人的研究思路,基于人性的弱点,可以得出很多类似的原理和效应,这就是哲学视角了。
作者认为上面这四个层次,是一个比较通用的版本,也就是在解决任何问题的时候,使用模型的时候,都可以从这4个层次去考虑。同时,作者强调,这些不同的层次没有优劣之分,也要看具体的场景,如果你是公司的中层管理者,那么第2个层次的方法流程对你比较实用,而如果你是公司的高管,企业家或政府高层,那么对于第三层学科原理和第4层哲学视角,就要投入更多的精力。
2.2 棱镜法分解问题层次
基于上面的层次,作者提出了一个分析模型——棱镜法分解问题的层次。
棱镜的概念来自于牛顿当时用三棱镜把阳光分解为不同层次的7色光。我们分析问题时,也可以用类似的棱镜,只不过这个棱镜的名称叫“追溯答案的因果链源头”,所以,书中也提到查理.芒格的观点:“如果你想要变得聪明,那么就要不断的去问为什么?为什么?为什么?”,持续去问为什么,就是在挖掘事情的因果链条,当挖到底层,通常会将答案关联到最深奥的理论架构中,芒格建议要去了解这些主要理论。
成甲特备指出,前面的三个层次的思维模型通常是具体的陈述性知识,而第4个层次,则是从思维方式的层面上找有效的策略,也就是发现前面的三个层次是如何建立的思路,也可以称为是“元思考”,就是对“思考的思考”,就是关于如何思考的程序性知识,如果前面对应的是具体思维模型,第四个可以成为是思维方式,在后面会再介绍。
3 如何建立基于多元思维
本书对我的一个最大启发是,我们不只是掌握更多的思维模型,解决一个个具体问题,而是建议一套基于多元思维模型的知识体系。
为什么要建立一个这样的知识体系?除了前面提到的多元思维模型的优点外,还有一个重要原因是,这个体系中的思维模型可以形成互动和迁移,提供更多解决问题的思路。
那么,如何建立这样的体系呢?书中给了4条建议:体系要全面,“问思模”,模型间的桥梁,体系的骨架。
3.1 体系要全面
而作者也提出了这个体系,必须要有足够多样的思维方式和足够多的丰富的知识层次。
怎么样算是足够?尽可能的掌握重要学科的重要原理,哪些是重要学科呢?查理芒格给的建议是:数学,生物,物理,社会学等。成甲在这本书当中给了更加细致的总结,具有启发性,他将我们至少应该掌握的思维模型领域分为四类:
①理解物质世界的基础科学,比如物理学数学和化学,因为我们生活的是一个物质世界,所以我们需要了解分析这个物质系的工具;
②理解群体系统规律的科学,如经济学和社会学等,因为我们人是社会型的动物;
③复杂系统规律的科学,比如复杂性科学,人工智能等,因为未来是连接越来越紧密,越来越复杂的世界,它所呈现的规律对我们个体也会产生深远的影响。
④理解精神世界的人文学科,如心理学,美学,宗教等,因为我们不仅是生活的物质世界,同时也生活在精神世界。
上面4个领域的思维方式和思维模型,是构建我们完备知识体系的基石,覆盖了我们认知世界的主要维度。
作者也特别强调了,我们去掌握这些学科的时候,要学会从思维方式的不同上,更深入理解各个学科的价值,比如:
数学发展出的是“符号与逻辑推理”的思维方式;
物理学发展出的是“第一性原理”的思维方式;
进化生物学发展出的是“物竞天择”;
复杂性科学发展出“系统思考”的思维方式;
现代美学发展出“否定常规”的思维方式。
3.2 问思模
提到发展体系,我们很容易想到学科自己的分类体系。作者在书中谈到了他和一个研究儿童养育方面的朋友的交流,谈到了在这个领域当中的知识体系,它的结构呢如下图所示
从这个分类当中,我们能看到这种分类其实是比较合理的,因为它满足MECE的原则,我们经常看到每个学科的经典书籍的目录也是这种组织方式。但是,这里有两个问题:
①学科内的知识点,都能够这么简单清晰地分类,且分得这么清楚吗?
②这种结构有助于我们记忆和存储知识,但是不利于融会贯通。
我自己其实也有这种困惑,因为我也尝试过,如果按照这种方式去给学科知识分类,一旦深入进去,就会发现有一些知识点可以属于多个门类。第二点很像我们在 《程序员的思维训练》3|专家的练习 中提到的,这种知识的框架能够帮助我们去整理知识和清晰表达,但是很难直接用它去解决我们所面临的具体问题。
本书的建议是:从问题出发,特别是基本问题出发,构建基于思维模型的知识体系,即所谓的“问思模”方法。
问:基本问题,也就是学科要解决的基本问题是什么,用问题统领知识;
思:思维方式,就是前面提到发现思维模型背后的“元思考”,它是问题和知识的连接要素;
模:具体的思维模型,我理解这个可以看成是具体的知识,它包含我们前面提到的四个层次的模型。
3.3 相似性:建立跨科知识体系之间的桥梁
如何让不同领域知识融汇贯通,相互借鉴,创造性解决问题呢?相似性,常用的方法是类比和隐喻。比如书中提到丰田汽车的"Just in time"生产方式的由来,它其实来自于零售行业,当时丰田苦于大量零件库存带来的浪费,突然想到,其实零售行业也会有相似的问题,而且它比汽车行行业发展更久,它们是这么做的呢?于是就将其借鉴到汽车行业。
这个很类似我们做产品开发的时候,常常要做标杆分析,人们比较容易想到的是同领域的产品,比如汽车开发时,看看BBA(BMW,Benz和Audi)是怎么做的,其实还可以进行非本行业的对标,比如现在智能汽车在做交互的时候,完全可以参考顶级电子产品的做法,比如苹果。
而且这种相似性,表面差异越大,但是解决的基本问题越相似,常常借鉴的价值越大。所以,结合前面的棱镜分析,我们可以将“基本问题”作为抓手,基于基本问题的相似性,借鉴相应的思维模型,从而达到举一反三,融会贯通的目的。
3.4 结构化思维:支撑跨科学科体系的骨架
在职场上,我观察到一个现象,真正解决问题的高手,他们遇到一个复杂问题的时候,其实并不急于去尝试各种不同的方案,而是会先用一个思维框架来分析,这个问题背后的基本问题是什么?解决它的核心思路是什么?有什么分析这类问题常用的结构框架?
为什么这样思考很重要呢?这是因为高手们知道,只有看到了系统的结构和关键要素,弄明白了系统结构背后运作的规律,才能够做出可靠的判断,找到有效解决问题的方法。
也就是说,普通人解决问题,是基于不断尝试,积累经验,而高手可能有更好的方式,也即是会先去了解问题的类型,观察它的结构,抓住关键要素,最后是安放细节,就像庖丁解牛,游刃有余。
而这里面所利用的一个重要的思维就是结构化思维,什么是结构化?它指的是,分析问题的时候,从全局的视角,看到问题的核心与结构,在此基础上去理解细节,比如你看电影的时候,首先关注的不是电影的具体细节,而是它的叙事结构,怎样通过起承转合支撑起故事。
如何找到不同领域问题的结构呢?有条捷径,前人总结的套路。我们日常碰到的几乎99%的问题,都是有结构化分析工具的,我们要做的就是找到这些分析结构,就是我们所说的套路。
4 综合利用多元思维模型解决复杂问题
建立基于多元思维模型知识体系,目的不是为了知识的完整性,而是如何能够快速的找到解决问题的决定要素,解决掉问题。那么,我们如何利用这个知识体,首先我们要看看问题的类型。
4.1 三类问题
作者将我们常见的问题分为三类:简单问题,局部复杂问题和全局复杂问题。
简单问题,就是只需要通过线性的逻辑推理就可以解决,比如饿了,吃饭就能解决;
局部复杂问题,不是简单逻辑就够了的,它需要具备一定的结构化思考能力,就是通过金字塔的原理把问题进行拆解,以此将大问题分解成小问题,通过解决小问题,最终解决大问题。这种解决方法有一个前提,就是被分解的小问题之间最好是解耦和补充不漏的。
全局复杂问题,问题之间的关键要素是相互联系互动的,错综复杂,彼此影响,这时很难通过分解方法完全解耦,需要把它放在一个更大的互动系统中,用系统性思考的方法解决。
所以,解决问题的时候,先要判断我们面对的是哪种性质的问题,对于第一种比较简单,而对于后两类,书中给出了3条建议:降维攻击,变换尺度和聚焦关键。
4.2 降维攻击
我们所碰到的问题,其实是有很多层次的,一个层面的问题,用更高层次的方法,常常更容易解决,这就是降维攻击,可以参考在 《直击本质》:透视本质,横向迁移 中,我们分享的逻辑层次。
4.3 变换尺度
书中举到了达尔文的例子,当时人们很好奇,地球上的动物,猴子蝴蝶各种各样都不一样,它们怎么产生的呢?如果你只是看当下时空的现象,很难理解,当然,你可以找到一个非常简单的答案,上帝创造出来的,然后任务完成。但是,这让无神论者很难信服,于是达尔文将观察的时间跨度放到了10万年,甚至百万年的尺度,当用这个尺度看待物种的变化,就比较容易得出“演化论”的结论。
我在 感到困扰,换个视角 中也分享过,可以通过不同的视角看待问题,其中一个就是变换我们的时空视角。
4.4 聚焦关键
大家比较熟悉28原则,但在复杂系统中,很有可能不是28,而是极少数的关键点决定终生。
成甲认识一个央视主持人,他本是偏远山区的一个孤儿,后来靠邻居的接济才长大,原以为自己会在偏远小山村度过一生。但一个偶然机会,县城招广播员的培训生,他就动了念头去参加学习,虽然别人很嘲笑他,劝他别浪费钱,但他还是顶着舆论参加了,最后被一个省城的老师看中,从而彻底改变了自己命运,而这就是关键的,有决定意义的时刻。
人生也是一样,你不需要把每件事情都做对,很多巨变来自于关键点的选择,这些选择的数量和影响,可能不是28,而是2%和98%。所以,应该关注的不是我如何能够在某一个方面做得更好一点,而应该关注有哪些问题能够让我的人生发生巨大变化的事情,比如选择配偶,选择职业和城市等。
那么我们如何找到这样的一些关键时刻呢?书中分享了他自己总结的5条原则:
①战略学:趋势判断
②心理学:内驱力
③系统学:找到系统的关键解(提升认知)
④经济学:边界成本/复利效应
⑤正面黑天鹅
前四个比较好理解,"黑天鹅"来自于塔勒布,用来形容发生的概率很低,但是一旦发生,结果影响很大的事件。正面黑天鹅,指的是,少数的,一旦发生对我们的积极影响是巨大的事情,当然前提是,它的负面结果不能是毁灭性的。
总结
面对日益复杂的不确定性,我们可以通过学习来应对,但知识本身的增加速度超过了你的学习速度?如何应对?《好好思考》为我们提供了另外一个思路,就是从建立从问题出发,基于思维模型的知识体系,通过这个体系来解决我们面对的复杂世界。
❷ 如何提高编程的思维逻辑能力
想提高编程的思维能力就要把握好编程思维的这四点:
把握好“理解问题——找出路径”的高效思维过程,它由“分解—抽象—模式识别—算法”这四个步骤。
1、分解,简单来说,就是“把复杂的大问题,拆解成更可执行、更好理解的小步骤”,它能锻炼我们拆解复杂问题的能力。
2、“抽象思维”能力,它能锻炼我们聚焦重点,忽略无用信息,并抽取关键信息的能力。
3、模式识别,就是“如何找出相似的模式,并高效率解决细分问题”,它能极大锻炼我们规律整合的能力。
4、算法,就是根据之前一系列对于问题的理解,设计一步一步的解决路径,并解决整个问题。
反复训练提升这 4 项重要的思维模式,建立一种真正“抗打”的认知思维和学习能力,酒客快速提高了!
❸ 我是个程序员感觉自己的逻辑思维能力不强,如何提高
多多训练自己,每次训练后自己反思自己哪里还不行,就行我们考试一样~~
❹ 应该从哪些维度去培养计算机科学思维呢
计算机科学创新性思维的培养
一、计算机科学与技术对培养学生的创新性思维和动手能力的方法
根据创新教育理论,创新能力包括创造性观察能力、记忆能力、想象能力、思维能力和实践能力五个方面。运用计算机科学与技术,通过创设问题环境,培养学生思维的灵活性与创造性,激发学生进行创造性学习,营造主动参与、合作探究的学习方式,从而提高学习效率,培养创新能力。
1.在课堂教学中训练学生的创新性思维和动手能力爱因斯坦曾说过“:思维世界的发展,在某种意义上说就是对好奇的不断摆脱。”而好奇心是学生的天性,有好奇心才会有学习的动机,才会有发明创造。一般来说,好奇心强的学生对知识的渴望迫切,上课时注意力更集中。计算机科学与技术这门课程的无限拓展性很好地满足了学生的这种好奇心,通过问题探究、协商学习、意义建构等活动,激发起学生的学习动机,培养其学习兴趣,使教学过程转化为以学生为主体的学习过程。通过学生与学生之间的协商讨论方式,使学生主动去读书、去探索、去感悟,从而获得新知识、掌握新知识,这个过程在某个意义上说,也是一个创新的过程。
2.在计算机科学与技术活动中培养和提高学生创新性思维和动手操作能力以实践和操作为特点的计算机科学与技术专业遇上了大多数是独生子女,在蜜糖中泡大的孩子。虽然他们思维活跃,容易接受新生事物,但是依赖性也十分强,遇到困难是不会考虑自己如何解决,而是习惯于在家靠父母、在学校靠教师来解决。学生的动手能力不强,直接导致了学生缺乏创新精神,无法真正地适应实践工作和适应市场与产业的发展,在计算机科学与技术的实践活动中,他们有好奇心,有求知欲望,有活动的热情,因此要培养学生对计算机科学与技术竞赛的兴趣,从要我学改为我要学,提高他们自己解决问题的意识和能力。
二、培养学生的创新性思维和动手能力应遵循的原则
1.主体性原则在教学过程中,必须树立“一切从学生出发”的思想。教师要根据情况多给学生提供一些实践、动手的机会,培养学生积极主动参与实践的兴趣与能力,使学生理论联系实际,学以致用,提高学生的创新性思维与动手能力。
2.创新性原则教师必须采用与计算机科学与技术相适应的教学方法,从而提高学生的创新性思维能力,不能只是“耳提面命”式的灌输知识,而是要引导学生的发散性思维,鼓励学生质疑现状,挑战现状,培养学生的归纳、演绎能力。教师还需要优化课程结构,增加选修课的比重,以弥补各种必修课给学生的知识结构造成的禁锢,这样有利于学生开展自主学习,发展兴趣爱好。对于计算机科学与技术专业的学生而言,要利用其专业特有的优势,提倡其进行跨校、跨院、跨学科地选修课程,因为计算机科学与技术专业涉及的学科范围非常广,多元化的知识补充有利于更好地完善专业知识的学习。
3.实践性原则要求教师必须理论联系实际,深入学生中获取第一手资料,从而归纳总结出符合学生的经验方法。众所周知,计算机科学与技术专业区别于其他的专业学科的最重要的特点就是其本身是一门实践性很强的应用性学科,注重学生对计算机的熟练操作和应用,因此,教师在进行课程设计和课程教授时,应更加重视培养学生的动手能力,可以有针对性的根据阶段课程的学习,开展一些相关的竞赛活动,以激励形式激发学生的学习热情,引导学生自觉重视操作技术的培养,特别是带领学生参加一些科研课题的开发。
❺ 程序员们,编程学习怎样影响(改善)了你的思维方式
所谓“自动化思维”,目的在于让工具和程序分担了(一件复杂任务中)繁琐而重复的部分,从而把人脑从琐碎的细节中解脱出来,就可以进行更高层次的思考和设计。具有自动化思维的头脑,在解决复杂问题时,会更有效率,也会更容易建立好的大局观。
所谓“系统思维”,能够帮助你更有效地理解一个较复杂的系统。举个栗子吧,这段时间很热的比特币,对希望理解这个系统的非程序员来讲,这个系统很像是借助了一些“超自然的”力量,在数学上“神奇地”建立起一套支付体系。而破除神秘感的重要工具,就是恰当地分解这个系统,弄明白几个关键部分怎么接合到一起。对于训练有素的程序员而言,这是一个很熟悉很自然的思维方式。
作者:顾露
链接:https://www.hu.com/question/21063878/answer/22977419
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
❻ 怎么提高编程能力逻辑思维能力
思考问题的方式,方向,解决问题的方法,也就是说应该从哪里入手,从哪里着手去解决问题。
每个人都是从零基础开始接触编程的,很多技术大牛总结了很多经验、解决问题的方式。而现在作为一个编程初学者,我们不需要重新造轮子。我们只需要跟随前辈们脚步,避免重复去走他们已经走过的弯路,也可以说我们现在做的一切都是站在巨人的肩膀来进行的。学习前辈们的经验和解决问题的方式,然后结合自身来解决自己的问题,最终融会贯通为自己所用。
建议大家,解决问题的时候,首先要把问题分解。大化小,很多小问题已经有了非常成熟的解决方案,搜索引擎可以解决大部分问题,我们直接拿来用就可以了,并且记住这种解决问题的方案。而剩下解决不了的小问题,我们在进行针对性解决,每一个小问题解决后,一整块大问题就随之解决。
编程思维的训练就是要学习成熟的解决问题的方法:比如if
语句用来做分支判断,循环用来解决反复运算的问题。穷举法、递推、递归、排序、回溯等等(如果需要当专业程序员,需要学习数据结构和算法,设计模式等等,需要学的东西很多很多。但首先要解决的一个问题是自己能写代码解决一般问题。)
训练函数抽象,类抽象解决问题。如对有序数组,查找特定数值,没有经过训练,初学者,直接用循环遍历。如果经过二分法算法的训练,下次碰到这样的问题,就用二分法求解。
(需求->需求分析->设计->编码->测试->交付等)
拿到一个习题,还没有进行分析,就马上敲代码,这个学习方式,是不好的学习方式。
再设计,用哪种数据类型(数据结构)来组织或保存数据,用何种算法来计算效率最高,用面向过程,还是面向对象的编程范式,还是用函数式编程等等。设计后,再编写代码,最后写测试。
如果大家对于学习编程有任何疑问,可以随时咨询我,这是我的V:Zhanlaoshi71 从事IT行业16年,精通八种语言,多跟专业的人交流学习。
只有先经过训练常见的算法,分解问题,会做需求分析,慢慢训练,才会养成自己的思路。没有人一出生会编程,只有经过训练,才会学会编程。很多牛逼程序员用vim,敲的啪啪响,一会儿一屏幕代码,为啥那么熟练使用vim,习惯成自然。当你训练多了以后,学会一定的套路(解决问题的方法),养成独立思考的习惯,假以时日,自然就有思路了。
养成独立思考的习惯,养成切分问题,养成大问题化解小问题,养成套用学过的算法,才会有思路。简单的判断、循环都不会写,就想玩django,何来的思路?
万丈高楼从地起,希望大家脚踏实地实地的从基础训练起,先达到独立写代码解决一般的问题,再谈项目。见过盲目上号称牛逼项目的培训班出来的程序员,
没有学会独立写代码解决一般的问题的能力,开发项目时如狗咬刺猬无从下手。
❼ 《程序员的数学思维修炼(趣味解读)》epub下载在线阅读,求百度网盘云资源
《程序员的数学思维修炼(趣味解读)》(周颖)电子书网盘下载免费在线阅读
资源链接:
链接:https://pan..com/s/1Kf4mbywRVB1j8hujZNDq_Q
书名:程序员的数学思维修炼(趣味解读)
作者:周颖
豆瓣评分:5.5
出版社:清华大学出版社
出版年份:2014-4-1
页数:301
内容简介:
本书是一本专门为程序员而写的数学书,介绍了程序设计中常用的数学知识。本书门槛不高,不需要读者精通很多高深的数学知识,只需要读者具备基本的四则运算、乘方等数学基础知识和日常生活中的基本逻辑判断能力即可。本书拒绝枯燥乏味的讲解,而是代之以轻松活泼的风格。书中列举了大量读者都很熟悉,而且非常有趣的数学实例,并结合程序设计的思维和算法加以剖析,可以训练读者的数学思维能力和程序设计能力,进而拓宽读者的视野,增强职场竞争力。
本书共11章,分别介绍了数据的表示、神奇的素数、递归、排列组合、用余数进行数据分组、概率、复利、数理逻辑、推理、几何图形构造、统筹规划等程序设计中常用的数学知识,从而引导读者深入理解编程中的数学方法和思路。本书包含的实例有结绳记事、孪生素数、梅森素数、哥德巴赫猜想、阶乘、汉诺塔、斐波那契数列、乘法原理、加法原理、字符编码、密码长度、日历中的数学、心灵感应魔术、约瑟夫环、智叟分牛、百枚钱币鼓士气、庄家的胜率、中奖概率、用概率方法求π值、复利的威力、对折纸张、舍罕王的赏赐、三段论、选言推理、假言推理、关系推理、花盆摆放、残缺棋盘、丢失的线条、田忌赛马、背包问题等。
本书适合广大程序设计人员及数学爱好者阅读,尤其适合有一定程序设计经验,但还需要进一步加深对程序设计理解的人员阅读。本书对IT求职人员、信息学竞赛和大学生程序设计竞赛等参赛学员也有很好的参考价值。
作者简介:
毕业于电子科技大学。高级程序员、某软件公司的技术总监。擅长C和C++语言,对数据结构和算法有深入的研究。长期从事行业软件设计和团队管理工作,已十年有余。有着丰富的IT架构设计经验和行业咨询经验。负责过多个大型软件项目的开发工作。
❽ 推荐几本训练程序员逻辑思维的书籍!!!
想要真正的了解JAVA思想看逻辑思维能力是没多大关系的,
记得我刚开始学的时候,老是搞不懂什么叫面向对象,即使有定义,能解释出来也往往不能运用得当,建议刚开始学的时候不必太深究每个词语的定义。这需要一个过程,当你真正开始写程序后,写的多了。自然而然的就理解了。
希望你能成功。
逻辑思维的书的话,推荐你去买《哈弗大学的1000个益智游戏》
❾ 程序员思维给你带来了什么影响
作为一名程序员在生活中发生的任何事情可能都会跟程序关联起来,比如我到连锁超市去购物,我会想到连锁超市就是一个典型的“分布式系统”,集中化管理、物理式分布,好处是其中一个超市出问题了,不影响其它超市的运行。在超市中看到有的货品没有了,我会想如果在货架上安装一个传感器就能自动判断缺货了。在结账的时候,我会注意超市的结算软件,看看软件的图形组件采用什么方式布局,看看打印的小票时间是否是精确的,格式是否是合理的等等。
❿ 如何在编程路上走的更快,更有效率
编程这条路非常难走,我认为好的程序员是需要锲而不舍的,也不是一蹴而就的,就一下几点来说。
有了我认为的这几个方面,我相信在编程路上你会走的更快更厉害的,加油。