面试官:你是如何进行学习的?

思考的由来

近期参加技术类面试,经常被问到自己是如何学习的。第一次被问到,稍稍迟疑了一下,就开始跑火车现编,尽量显得有条理。

后来也开始思考,我们到底应该怎么学习,不管是一门语言(例如Java、Python)、一门学科(例如数据库),还是一个方向(例如机器学习),我们一开始接触的时候,应该如何恰当的入门和深入?

也就是说,是否存在一些通用的学习方法,能够指导我们去学习新的事物?

抽象学习

人与人的智力差距是恒定差距是存在的,但是如果抛开智力和努力程度,我们还是能看到,不同的人所取得的进步,还是不尽相同,我想在这个过程中,学习的方法是一个很重要的因素。

多般反思之后,渐渐意识到自己其实走了很多弯路,学习的方法也比较低效,希望之后能够多从优秀的人那里学习到先进的学习方法。同时这里做一个复盘,以求总结出一个套路、一个学习的方法。

我们首先来列举几个关键词。

兴趣、动力、时间、激励方式、外界指导、一本书、教程(或一个老师?)、实践

再来尝试串起来,在一个教程的指导下,带着动力且使用投入大量的时间通过合理的激励方式,去学习一件新的事物,并通过实践应用所学以求提高。

例子

如果看一个具体的例子,比如Python(也常有非计算机专业的同学问我如何入门Python)。

我们学习的时候的过程,应该会是这样:

  • 明确动力

学习的动力是什么?兴趣?工作需要?感觉很酷想要学?增长技能?

明确动力其实很重要,因为有可能你发现,你其实不一定要非要进行这次学习,所以你大可在这个阶段取消学习计划。

  • 选定靠谱的教材、教程或教学视频

这个过程,可以用谷歌百度,选取排名靠前的推荐链接,或者去知乎寻找高赞回答里面的推荐。再或者通过身边的靠谱朋友、老师,进行推荐。

  • 激励计划

我们要通过确定一定的激进的激励计划,来帮助我们完成学习过程。例如,如果完成了今日任务,是否可以有奖励?如果没有完成,是否有惩罚?

预期的完成时间?是否需要做哪些预先准备?可能会遇到的困难?

  • 投入时间

你确定了初期的计划,这时候可以参考一万小时定律,当然我们并不一定是一万小时。你需要投入足够多的时间,来持续的完成这件事情。

  • 实践

我猜想,入门之后,进一步提高的方法就是实践了?

通过切实的实践,在这个例子里就是coding,你编写更多的关于Python的代码,你开始接触到越来越多的问题,你开始有更多疑问,你也开始解决这些疑问。

总结

所以总结来看,学习,无论是何种方式的学习,都会存在一套最朴素的方法论,虽然简单,但是抽象出来之后,再遇到新的东西,眼界会更加广阔,入门的速度相信也会有所提高。