如何提高思维能力(不止针对程序猿)

简介: 如何提高思维能力(不止针对程序猿)

最近公司有小伙伴向我反馈,说自己好像跟不上,感觉拖后腿了。希望我能够帮忙指点下迷津。他的问题是主管交给他的任务,他都能理解。但是就是自己动手写程序的时候,发现很多问题解决不了,很慢。


针对他这种情况,我指出了他的可能存在的一些问题。其中比较主要的一点,是思维能力还比较欠缺。当然思维能力是一个宽泛的概念,具体到某个行业,它的要求会不一样。但是,基本的规律还是有些通用的地方。


基础知识是思维能力的基础


不管如何,工作中涉及到的基本知识,是思维能力不可缺少的远程来。基础掌握的扎实程度,会影响到你的思考能力。这个基础知识包括基本的技术知识,一些开发经验。如果是项目,也包括对于项目需求的理解程度。


这些没有捷径,只能靠自己多学习。学习学习在学习。 不要幻想自己有天赋,不用学,不存在的。


养成多思考的习惯


所谓学而不思则罔,思而不学则殆。平时在工作中,需要养成多思考的习惯。而且要多多深入的思考,在工作、编程的过程中,对于需求、代码的简单架构、相关的技术做更多的思考。思考很多时候,是让人感觉没有成就的事情,相比之下写几行代码,更让人觉得有成效。但是,养成多思考的习惯,对于解决问题的能力有长足的推进作用。


另外在学习知识技能的时候,也需要多思考。不要知其然不知其所以然。最好的方式是多问几个为什么,并主动践行。慵懒的浅层面的学习没有任何价值。


复盘与反思


围棋大师们,都有复盘的习惯。就是在和人对弈的之后,不管输赢,都会把对弈的过程重新复演一遍,并思考总结哪些地方做的好,哪些地方做的不好,应该如何改进。复盘是一个很好的锻炼思维能力的方式。对于程序员来说,你可以把自己成功完成的代码进行复盘,思考哪些地方做的好哪些地方可以改进,都是一个很好的锻炼方式。而另外一种复盘,就是读别人代码,思考别人的思路。 特别重要的是,一个问题,如果你不知道如何解决;而你的主管或者其他同事解决了,这是你一个极好的锻炼思维的机会。你应该好好的复盘一下他人的解决方案,为什么用这种解决方案,技术支撑是啥。不仅仅要学习解决方案的本身,还要思考为什么自己没有思考到,而人家思考到了,自己需要如何改进自己的思考方式才能思考到,人家用了什么样的思考方式和思考方法,是我没有的,这些都值得好好总结下。


复盘的过程,其实就是反思的过程,没有反思就没有进步。


比如,有时候给小伙伴指导一些问题的时候,我会自己亲自上去在小伙伴的工位上写代码。在这个过程中,我就会把解决问题的思路,以及我是如何思考,如何调试、如何查找资料的思路告诉对方,并最终写出解决方案的代码。但是,最终我都会删除我自己写的代码。其实这个时候,我就是给小伙伴一个复盘的机会,好好思考下。


解决问题前先整理思路,分解问题


在遇到实际的问题的时候,可以先思考。而不是先动手。比如可以用思维导图(或者你喜欢的工具,文档也可以,用笔在纸上画也可以)先把思路整理出来。 庖丁解牛,把一个问题分解成很多个问题。这个过程,本身也会帮助你思考。同时,在你把思路整理清晰之后,做的东西也就比较清晰了。 比如我写代码的习惯,就是先把相关的类写好,然后把类里面的相关函数写好。然后就是开始一个一个的填写了。其实类和函数的整理,也是一种思路的整理。当你有了这种好的思路之后,你也方便和其他人交流和请教问题。这种情况下,你也很明白自己什么地方不懂,也方便别人了解你哪些地方不懂。


进行一些思维的练习


在网上会有一些思维训练的问题。可以自己多尝试练习。其中发散思维、逻辑思维和想象力是需要重点训练的。发散思维可以培养你的思维的开阔度,在遇到问题的时候,可以想到更多的方法。而逻辑思维可以增加你的判断力。


多读书


多读书刻意开阔自己的视野,并间接影响自己的思维能力。


写笔记


所谓 好记性不如烂笔头。我一直强调,要自己多总结,多写点笔记,记录下自己的一些训练,思考的东西。 这个记录的过程,也是整理你自己思路的过程。多写写,不会有坏处。


分享和讨论


同时,还可以把自己写的笔记分享出来,可以找人多讨论交流,碰撞思路。吸收更多人的想法和思维。


总结自己的方法体系


说说我学数学的经历。我小学,初中,高中,数学都是我的最好的一门学科。为什么特别好,就是自己对此很有兴趣。前面说到的一些方面:


  • 比如深入思考,我会对于一个问题寻找多个解方法,并看这个问题是否可以引申,扩展,并寻找规律。 比如高中的时候我就发现了海伦公式的引申:圆内接四边形的求和公式和海伦公式及其类似。另外我还发现任意奇数阶幻方的快速填写规律。还有就是完全数的一个数学规律,具体啥规律我其实忘记了,当时的笔记本也丢了。(完全数是啥?完全数,又称完美数或完备数,是一些特殊的自然数:它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身,比如6 = 3 + 2 + 1,28 = 14 + 7 + 4 + 2 + 1)。 另外,我自己把所有的三角形函数公式全部自己推导了一遍,而不是死记硬背。等等


当然我当时的性格属于比较封闭,这些东西并没有发表。 不然我想怎么着也可以上一个中学生数理化的杂志吧。


  • 比如复盘,如果一道题我没有做出来,老师给了答案,我就一定要把这道题的解答想清楚。不只是想清楚这道题本身的解答方案,因为以我当时的数学能力,老师一提点,我基本就想清楚了解答方案。但是,我思考的是,为什么我没有想到,我欠缺了哪些东西,基础知识,还是思维角度等等。如果是思维角度的问题,我就会丰富自己的思维角度。


  • 比如说总结归纳以及发散思维,其实在深入思考的部分,本身也是一个总结的过程,还涉及到就是把思考的东西笔记记录下来。另外也涉及到发散思维,因为没有发散,就没有延伸和规律的发现。


说这个,不是显得自己多厉害。其实主要是自己有兴趣去做这样的事情,自然就能够达到不错的效果。我不是有什么天赋,也算不上特别聪明。只是喜欢锻炼自己的思维能力。而在这个数学的学习过程中,我锻炼了自己的归纳,抽象,发散等等各方面的思维能力。


而且也形成了一套自己的方法体系:


比如数学归纳法,边界判断法,排除法,见微知著法,枚举法,差异法等等。

这些方法都是自己在不断学习 锤炼数学思维过程中总结出来的。可能现在想想那个时候学的数学,好像没有多少用。但是这种思维能力其实一直到现在对我都还有帮助。当然,当时数学学习锻炼的思维能力和总结的方法体系,对于我学习其他课程,也起到了积极作用。


解决问题的方法体系,其实是很有作用的。比如归纳法。我记得中学的时候一个同学有了一个诺基亚的手机,当时手机里面有一个游戏(现在知道:其实就是汉诺塔,但是当时是不知道的,具体细节不解释了,不知道的自己去搜索吧)。很多同学都玩不出来,我看了一下,几分钟完成了。其实并不是我多聪明,而正是运用了数学归纳法。另外一道题,我在大学刚毕业的时候,在武汉找工作,看到了一份医院杂志,全部都是 X科 和Y科的广告(你懂的)。最后一页,有一些智力题,其中一道题是这样的,我当时也是运用归纳法秒解出来。


有个岛上住着一群人,有一天来了个游客,定了一条奇怪的规矩:所有蓝眼睛的人都必须尽快离开这个岛。每晚8点会有一个航班离岛。每个人都看得见别人眼睛的颜色,但不知道自己的(别人也不可以告知)。此外,他们不知道岛上到底有多少人是蓝眼睛的,只知道至少有一个人的眼睛是蓝色的。所有蓝眼睛的人要花几天才能离开这个岛?假定所有人都很聪明,并且每个人都知道别人很聪明。

嘘,到公司面试过的人都知道,这是一道面试题。


所以,在工作过程中,如果你发现自己的思维能力不够,就需要运用各种方法来锤炼自己的思维,并总结自己的解决问题的方法体系,不断积累丰富自己解决问题的方法体系,当然有的人并没有刻意的总结,但是他们其实在不自觉间总结了,自己不知道而已。


最后还的说坚持。


提高思维能力这种事情,需要刻意练习,也是一个长期的过程。 但凡需要刻意练习的事情,一般都比较枯燥。就像跑步健身一样,谁都知道跑步有益身心健康,能坚持下来的没几个。由于是一个长期的过程,所以也并不能再短期获得好的成效,所以往往难坚持下去。


这其实和人脑喜欢及时回馈有关系。人脑喜欢让自己快乐的东西,不喜欢让自己痛苦的东西。而付出脑力和体力都不是人脑的喜欢。但是如果一定要付出,那么人脑喜欢及时回馈的东西。这其实是人的动物属性。就比如马戏团的猴子,完成动作后,就会马上有奖励。所以它总是愿意去做哪些动作。人在这方面其实不必动物高级多少。很多人终其一生也无法摆脱及时回馈的诱惑。


曾经看了一本书,书中讲了一个故事, 一些古巴比伦的一些人,哪怕最终会沦为奴隶,也要借债消费。其实就是一个短期诱惑战神长期痛苦的例子。


如何改变。方法就是改变自己的信仰,大脑认为什么是痛苦的,什么是快乐的,其实很大程度决定于你的信仰。


那么应该有什么样的信仰。 对于坚持这件事,虽然你暂时看不到成效,但是要相信老天在偷偷的给你积分。正所谓:


坚持的人,如春园之草,不见其长,但日有所增;懈怠之人,如磨刀之石,不见其损,日有所亏。

相关文章
|
程序员
程序猿也浪漫
程序猿也浪漫
|
算法 Java 程序员
给未来的程序猿
先,大家最关心的问题就是:我该学什么语言?这个问题一向没有标准答案。各种技术社区里吵了很多年,并将继续争论下去。对此,我的建议是:学好一门语言。
|
前端开发 程序员
程序猿的中秋原来可以这样过
程序猿的中秋原来可以这样过
104 0
程序猿的中秋原来可以这样过
|
存储 算法 程序员
想当程序猿?或许你需要这个书单-程序猿修炼之路(上)
转眼间暑假就快到了。与其咸鱼懒得翻身,还不如坐下来,静下心找几本书安安静静看完。那么,小编在这里给大家推荐几本程序猿的练级攻略吧。
150 0
想当程序猿?或许你需要这个书单-程序猿修炼之路(上)
|
程序员 数据库
想当程序猿?你需要这个-程序猿修炼必备书单(下)
继上次书单以后,再次来给大家强推一波书单啦。这样暑假大家就不会再寂寞了。嘿嘿嘿……这些书都是经典中的经典,若能静下心来好好读一读,想必收获必然是无限大的!
132 0
想当程序猿?你需要这个-程序猿修炼必备书单(下)
|
安全 程序员 PHP
只有程序猿才能看懂的段子,不笑你拿小拳拳捶我!!!
只有程序猿才能看懂的段子,不笑你拿小拳拳捶我!!!
196 0
只有程序猿才能看懂的段子,不笑你拿小拳拳捶我!!!
|
大数据 程序员
程序猿日记S01E04
"Nothing is everything." ### 分形 小时候,偶尔会收到一些特别喜欢的礼物。比如电动小汽车,还带遥控器的,那操控感,完美地诠释了人类掌控一切的心理。如今,当你要出行的时候,掏出手机,打开一款打车APP,马上就可以体会到更高一个层次的掌控感。但是,我当初喜欢电动小汽车的原因并不是顺应了人类的掌控心理,而是因为想拆开小汽车获取里面的电动马达。拆开马达,可以看见里
1424 0
|
消息中间件 程序员 API
程序猿日记S01E03
"Wake me up when it's done." ### 礼物文化 有一次给组员分享程序猿该如何去尽力帮助到其他人,如何赢得声誉。在日常开发过程中,我们在实现业务需求的同时,抽象出可复用的模块,提供API供业务层调用。不同的程序猿会设计出不一样的API,好的设计往往是遵循一定原则的。网上比较经典的是Google API Design指南,可以作为一个模板来Review我们日常
2474 0
|
自动驾驶 程序员 定位技术
程序猿日记S01E02
"在哪里跌倒,就在哪里躺下。" ### 信息不对称 我的水杯不小心摔坏了,需要新买一个。打开淘宝网,切换到天猫导航页,搜索“水杯”,筛选条件选择“XX品牌”,选了一个心理价位的水杯,下单付款。这个价位,应该能够买到更好的一个水杯(设计更好,材料更好),但是我缺少这些信息,所以“XX品牌”的商家通过信息不对称,占据了有利地势,获取了信息差价。如果我有更丰富的信息,就能够减小这个差价
2729 0
|
程序员 安全 Java
程序猿的一天就是这么糟心!
程序猿,一个经常自黑的群体! 他们身在中国,却整天和英语打交道。 他们是人,电脑却比我们更懂他们。 他们和av男优一样擅长修补漏洞, 区别在于一个靠脑力一个靠体力。
844 0