市面上充斥着大量所谓coding零基础入门的书籍,或者号称零基础入门的书籍。实际上真正做到零基础入门,是很难的一件事情。
昨天,我实现了一个想了很久的想法,让Sherwin去学python。她除了以前学过一点VB以外,毫无编程经验。对于python,她是初学者,对于coding,她是不折不扣的初学者。
我传了本《Head First Python》给她看,我认为这本书已经是面对初学者非常友好的一本书了,图文并茂而且语言通俗。但是她刚开始看时,遇到了很多问题。主要是书中有意无意的提到了很多概念性术语,例如BIF,即内建函数。对于我来说,这个概念的意思已经是深入骨髓了,看书时候根本不可能停留下来去理解它的。但是她不行,我花了一些时间来解释内建函数和自建函数的区别,她懂了。
后来她提出了一个致命性的问题,我写这些代码(创建列表,删除列表元素,插入元素)究竟是干吗的。我当时立刻意识到,这个问题必须给她解释清楚,否则她估计再也学不下去了。接着我模拟了一些应用场景,说明了处理数据的重要性,她觉得挺好玩的,于是继续学下去了,并且希望以后能够自己创建一个应用。我感到很欣慰。
虽然说我也是python的初学者,但是这个初学仅仅是对于python而言。《Head First Python》这本书我也是第一次看,只是因为有以往的coding基础,所以对很多东西理解的很快。
说了那么多,实际上就是想表达这么个观点。对于真正的初学者,写的教程需要满足两点要求。第一,避免上帝视角。写教程的人往往开了上帝视角,自己觉得易懂的东西,初学者未必觉得易懂,时时刻刻不忘从初学者角度出发,才能达到循循善诱的效果。第二,尽量可能多的模拟场景,说明每个知识点在实际应用中的作用,使初学者对这些内容的作用有个大致的了解,否则极容易失去兴趣。
当然,无论教程写的多么平易近人,也只是让学习这条路变得稍微平坦一些,能否成功达到目的地,还是要靠自己去走。任何知识的汲取和欣赏都是需要投入学习成本的,coding是一种技巧,需要锤炼。别指望世上的一切知识都是稀粥,熬好了让你不用嚼就吞下肚去。