乔布斯曾说过一句话:每个人都应该学习编程,因为它会教你如何思考。美国一位APP开发员兼写作者理查德·瑞斯(Richard Reis),在Medium平台上发布了一篇文章《如何像程序员一样思考——解决问题的方法论》,文中他分析了为何及如何像程序员一样思考,从而成为一个解决问题的高手。
理查德提出,很多人都认为自己有一套解决问题的步骤。比如,遇到问题时,1.尝试一种解决方案;2.失败了,尝试另一种;3.如果再次失败,重复第二步,直到侥幸成功。理查德认为,即使偶尔成功了,这也是解决问题最糟糕的方式,而且非常浪费时间。最好的方式,就像优秀的程序员练习编程一样,建立一个思维框架,然后在这框架下反复练习。
理查德提出,可以用以下5个步骤,帮你建立解决问题的思维框架。
第一步,理解。遇到问题时,先搞清楚问题本身。如何确定自己真正理解一个问题?有效的方法是,尝试用自己的语言说出它,看有没有逻辑漏洞,当你能讲清楚一个问题时,说明你理解了它。优秀的程序员编程时,总会写下自己遇到的问题,勾画出序列图,或同其它程序员一起讨论。这个过程,就是在确定自己对问题的理解没有偏差。
第二步,计划。没有明确的计划时,不要轻易着手解决问题。制定计划,就是制定解决问题的战略步骤。当计划不清晰时,暂停一下,给你的大脑一些分析问题和处理信息的时间。理查德建议,尝试像程序员做思维导图那样,做出一个好的计划,然后思考下面这个问题:如果你输入X,采用哪些步骤可以得到结果Y?这样可以训练你的思维计划性。
第三,分解。这是思维框架中最重要的一步。不要尝试一次解决一个复杂问题,而应把复杂问题分解成若干简单问题。从最简单的开始,一个一个逐级解决,最后合并成原始问题的答案。这也是优秀的程序员在编程中最常用到的算法,对于他们来说,解决问题的能力,要比编程语言的熟练度、系统设计等技术更重要。
第四,卡壳。当你理解了问题,做出了计划,分解了复杂任务后,依然卡壳怎么办?理查德说,首先,深吸一口气;其次,告诉自己,这很正常。好的程序员和解决问题的高手,与普通人之间的差别在于,他们的注意力更多在如何解决棘手问题上,而不是为此恼火。卡壳时,可以试试这几种方法:调试错误;重新评估问题;利用搜索引擎找到相似问题的解决者,向他们学习。
第五,也是最后一步,练习。以上四个步骤,或许已能让你建立一套解决问题的思维框架,但距离成为一个解决问题的高手,还差一步,那就是:练习,练习,再练习。在问题中练习,训练你的思维系统。