从解决问题中学习

时间:2024-04-09 21:42:23

从解决问题中学习

在解决问题的过程中,所有人都会陷入困境,都会犯错误。我们需要利用这些失败的经验来帮助我们找到修正的方法。通常这就是学习停止的地方,一旦解决了这个问题,我们就急于向前走,但千万不要这么做。

数学家理查德·汉明建议到,问题解决后才是该开始学习的时候。汉明在《做科学和工程的艺术》写到:“我认为研究成功比研究失败更重要,错误的方式太多,而正确的方式太少,因此研究成功更有效。”

你总会听到人们说,我们需要“从失败中学习”。但汉明是对的:我们也可以从成功中学到很多东西。

因此,我在解决问题的过程中所做的最大的改变之一就是把汉明的话付诸实践。我清楚地记得我解决的第一个问题是关于链表的,这种数据结构我当时还不熟悉。解决了问题之后,我又仔细地研究了它。然后,我将我的解决方案复制到一个谷歌文档中,并通过注释的方式向自己解释代码。

我想确保自己能清楚地了解自己做了什么,以及这样做的关键原因:这样我就可以再次成功。

首先,在完成一个问题后,我会研究其他人的解决方案。有时候,我会通过Leecode和《程序员面试金典》这样的资源寻求解决方案。还有些时候,我会向解决过相同问题的程序员寻求解决方案,有时我会同时用到这两种方法。

无论哪种方式,下一步都是一样的:我会从解决方案的开头开始,用我自己的话解释之后的每一行代码。例如,我推测出了程序员选择某个特定数据结构的原因,然后写一个简短的总结,以巩固我刚刚学到的核心概念或新方法。

把一些复杂的东西,比如一行代码,用你自己的语言表达出来,这是一个很好的测试,可以看出自己是否真正理解了它。

此外,你还可以练习另一项核心技能:阅读代码。如果对我来说有什么新东西,我就会去研究它。我将他们的代码与我自己的代码进行比较,然后进行研究、评估和学习。这是一个艰难的过程,但我从中得到了很多。

从解决问题中学习