原文地址 https://dzone.com/articles/ho...
作为程序员,最重要的资本之一就是具有批判性思维的能力。不管你对编程语言有多精通,不管你写过多少行代码,如果你不能在工作当中采用横向或创造性的思维的话,你就不能做到高效地解决问题,或者用巧妙的方式来实现新的功能。
批判性思维是与众不同的,你不能像学习编程语言一样来“学习”它。它是一种软技能,只能随着时间推移来培养,通过一些微小的策略性思考来积累,而不是像学课程那样就能学到。
怎样锻炼批判性思维
作为一般水平的程序员,通过采用下面列出来的这些策略,可以在改进批判性思维方面收到很好的效果:
- 利用脑图工具。首先要学会通过将思考过程具象化,来发掘新的信息,令自己在面对问题时,思考能更加的抽象化。比如你碰到难题,可能东一个想法西一个想法,但是如果你在脑图里面把它们都列出来,归一下类,那么你一眼就能看出这些想法有什么关联,各自有哪些欠缺,甚至引导出新的想法。这就是在更高更抽象的层次上看待问题。
- 尝试从别人的角度看问题。这也叫“横向思维”、“跳出限制思考”,是一种最简单的批判性思维。我们的思考方式通常会受到自身感知、经历和偏见的限制;而要摆脱这些限制,最好的方式就是站在他人的视角去看待问题。这么做很简单,你就直接从与这个问题相关的人当中挑一个,也许就能发现自己之前忽略的方面,或者看到一个新点子。
- 考虑动机。接下来要做的就是后退一步,思考被这个问题所困扰的人们各自的动机。比如说客户提了个需求,这个需求基本上做不到,这个时候就要想想客户提这个需求的动机是什么,是不是可以有一种可以实现的替代方式,来满足客户的动机。
- 养成多问问题的习惯。很多时候你可能觉得自己知道是怎么回事了,觉得自己对这个问题了解的很充分了,但永远不要嫌自己知道的太多。哪怕是问最基本的问题,得到的回答也可能会让你发现,自己原来还有一块地方没有想到。比如在询问项目交付期限的时候,你可能听到一些次要的对时间点的要求,这些要求可能会让你重新安排项目开发。你问得越多,得到的细节越充分,你就可以利用这些信息来制定一个独特的解决方案。
- 把东西列出来。比如说你手上有若干可选方案,你可以把它们各自的长处和缺陷列出来。这个过程会强迫你思考每种方案可能会带来什么结果,并且让你在接下来能有个一目了然的参考。你还可以把每种方案里的每个步骤写出来,把每个难点里的细节难点都列出来。你最终的目的是要把想法都呈现出来,以便对问题的每个点都考虑得更透彻。
- 假设自己错了。我们平时得到一个想法或结论时,通常会认为这是对的,于是只会去找支持这个想法或结论的证据。这有点自欺欺人的味道。所以我们可以先假设这个想法或结论是有问题的,以此出发去搜寻对立的证据。如果找到了,这就说明你的想法确实有问题,需要改进;如果没找到,那会让你对这个想法更有信心。
- 在身边放置一些抽象素材。批判性思维要求你具有更高的抽象思维和创造性思维能力。最好的点子经常是一下子冒出来的,比如突然把两个毫不相关的事物联系在一起。这样的灵感你不可能想来就来,但你可以给自己创造一个能触发更多灵感的环境。在身边放置一些抽象艺术品,一些音乐,或其他一些帮助促发灵感的东西。坐在靠窗的位置也是不错的,看看窗外可以帮助你放松和发散思维。
熟能生巧
批判性思维需要长期地不断地应用,才能不断提高。而且它是没有上限的。所以我们应该不断地激励自己去思考新的点子,将自己置身于要求不同心理技能的场景当中。你在培养自身认知灵活性和思维多样化上所花的时间越多,你的工作将会变得越轻松。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。