学习编程的方法总的来说依然也是学习方法的一种,在很多的方面,也都有其相似性。学习的一般的过程都是从教程书籍开始,在刚开始学习的时候,你学习的是一些你完全不了解的具体的概念知识,在这个过程中,包含了大量的信息。这一个阶段你的任务也就是按步骤学习如何解决教程中的具体问题。在这个学习的过程,我们需要注意的我们要潜入到教程的细节中,要学会从自己的错误中读取有用的信息。记得以前在学校里一直有订正这么一说,可是在学校里学习的那一段时光,从来不曾重视订正这样的一个环节,而对于老师布置的作业多少也有很多的误解。对于课后作业本身,它的目的是为了让学生更好的理解上课所学的知识,同时批改的目的是为了发现学生在知识点还有存在出错的地方,加以改正。而在实际的情况下,学生被大量的作业压垮,只有做完作业,而没有改正错误的过程,老师似乎也忘记了作业的本来作用,一味的知识布置大量的作业,而导致没有时间批改作业。最后导致的这种结果是题海战术换来的是错误的还是错误,没有从题海战术中获得明显的提升。所以说,在学习的过程中,关注细节,尤其是关注你错误的细节,往往可以从这个问题中获得更多的知识。正如这篇文章中所说:“The dirty little secret of programming is: The master has failed more times than the beginner has even tried.”不用去害怕错误,在错误中定有一个你所不了解的知识,也是你提高自己知识的一个机会。一个有经验的程序员总是寻求为解决的困难,因为这些问题给他们提供了学习更多的机会
在你看完了教程书籍之后,你就进入了第二个阶段,在这个阶段开始,你会充满自信,通过教程你觉得自己已经掌握了很多的知识,可以独立的完成一些项目或者能够看更加深入的书籍来获取更多的事,而实际是,教程书籍无法再帮你更多。此刻你获得知识的来源和真正的获取自信的来源是你能够独立解决一些已没有头绪解决的问题。通过这些问题来真正的使得某个知识变为你自己的知识。
在自己解决问题的过程中,你发现自己解决问题的速度可能比在教程中慢10到20倍,在这样的阶段,你会发现自己很迷茫,有很多的任务需要完成。你需要记下自己需要做的事,需要解决的问题,然后自己去寻找解决的办法。因为在寻找解决的办法的时候,你也就学会了你需要学习的所有的知识。从这一方面也可以说,很多时候,做好的学习方法,是在用的时候学习,这样才会知道自己需要什么,同时也会关注到一些知识内容的细节,因为你自己许哟啊解决具体的问题。
再文章中还有一句话说的十分的好:“For the rest of you life,go outside your limits every single day.”,每一天自己都要离开自己的舒适区域,去寻找更多,更有趣的问题。当你发现你自己似乎已经了解了你身边需要解决问题的所有知识的时候,你就是止步在了自己的舒适区,你需要驱使自己离开这样的舒适区域,你才能够获得更多的知识,提高自己。
当你因为自学习新知识为自己受挫而感到气馁的时候,记住,所有的人都是一样的,你需要做的是持续的坚持,这能够保证你解决足够多的问题。当然不要工作的太多,一天有生产性的工作时间最多只有6个小时,在额外的工作时间里,你只是把自己的工作时间拉长了,仅此而已罢了。
就像我说的那样,苦难是成功的奠基石,机遇与挑战并存。