我觉得视频虽然完整,但是信息浓度往往比较低,也就是冗余的内容很多。且和书本一样,基本上是固定顺序的呈现内容,比较固定。而编程是一个需要即时反馈的东西,你看半天视频并不会直接去编程,所以互动性和反馈性是一个问题。扪心自问,绝大部分收藏的视频是不是都会永远躺在收藏夹里?
因此另一类入门方法是通过利用碎片化时间的方法进行互动编程。任何编程语言其实都能被分解为很多基础的小模块,比如打印、逻辑判断、循环,以及再高级点的函数方程等。在了解了基本模块化后,进行复杂的功能其实只是拼接,就像电路元件的组合。我举个简单的例子,给定一个用户的年龄和性别,如果TA是成年男性,则打印出他的名字就可以被简单的被拆解为{判断性别}+{判断年龄}+{如符合条件则打印}。因此在理想情况下,我们可以通过学习基本模块,并拼接它们进行更复杂的学习。而这种情况下传统的书籍有非常大的局限性,就是它的顺序是固定的,而大部分情况下一个任务需要的多个基础模块是并列的。所以对于喜欢学习基础模块的朋友我会觉得互动类的学习软件或者app可能更合适。这类app现在也越来越多,绝大部分都能支持在电脑和ipad上学习,比如百词斩开发的「夜曲编程」。我个人觉得这类app比较适合以前没接触过编程且时间分散的朋友,可以不时地通过完成学习1-2个小模块逐步提高(见下图)。我自己为了写入门攻略,体验了免费教程。觉得夜曲的确是可以作为小白的编程入门第一课,毕竟当年考GRE时就是靠着百词斩刷单词,而将记忆曲线拓展到编程上也是个不错的构想。但当然跟着app学习不代表你不能拓展到实际项目中去。我的建议是同时做一些相关的感兴趣的实际项目,比如像前文提到的用所学的知识去建立一个推荐系统等。