Open xuzhengfu opened 4 years ago
相信你已注意到,我们已经更新了第二阶段(“进阶篇”)课程,相应的学习用书也已同步更新。
在第一阶段(“基础篇”)你已经学习了: 编程语言是怎么回事:在编译器和解释器的帮助下,我们可以写出计算机可以遵照执行的程序指令; 程序的基本结构:值与变量,操作符与函数,逻辑判断与分支,循环等; 运用抽象思维编写模块化的程序:编程的基本困难在于控制复杂度,通过面向对象等抽象方法,我们可以从小到大一点一点的构建起复杂的系统。
在第一阶段(“基础篇”)你已经学习了:
我们通过大量 Python 代码实例体验了这些要素,现在应该能够读懂简单的代码,也能依葫芦画瓢的写出一些简单的代码。如果能够独立完成第一阶段最后的课程练习,基本上就具备了继续学习的基础。
在第二阶段我们将学习编程中的进阶知识点,这些知识点都和两个东西有关:函数(function)和数据(data)。
我们之前讲过,写程序和讲故事很像,数据就是故事里的人物,而函数就是发生在人物身上的事情,他们说的话,他们做的事,以及他们彼此之前的互动。
写程序来解决一个问题,基本上就是两件事: 找到一个合适的方法来表述这个问题,这叫模型(model),或者叫数据结构(data structure); 写出一组函数来对这些数据进行处理,这叫算法(algorithm)。 这二者结合起来,就能得到问题的 “解决方案”。 数据结构和算法是紧密联系、不可分割的,一般来说的思路是从理解问题入手,找到本质上最适合表达问题的数据结构,然后在实现算法的过程中不断优化调整。 优秀的编程语言会提供强大的语法工具来帮助我们编写各种各样的函数,也会提供大量内置数据类型,覆盖我们常用的数据结构,即使没覆盖到的,我们借助现成的函数和数据结构也可以自行实现。Python 在这两方面都做得很好。
写程序来解决一个问题,基本上就是两件事:
这二者结合起来,就能得到问题的 “解决方案”。
数据结构和算法是紧密联系、不可分割的,一般来说的思路是从理解问题入手,找到本质上最适合表达问题的数据结构,然后在实现算法的过程中不断优化调整。
优秀的编程语言会提供强大的语法工具来帮助我们编写各种各样的函数,也会提供大量内置数据类型,覆盖我们常用的数据结构,即使没覆盖到的,我们借助现成的函数和数据结构也可以自行实现。Python 在这两方面都做得很好。
在新的 “进阶篇” 中,你会先更深入地学习函数,然后循序渐进地学习一系列最重要的数据结构及其应用场景。在这个过程中自然离不开动手编程的实践,和对 “编程思想” 更深入的理解。
如果你还没有完成 “基础篇” 的学习,或者现在刚开始准备进入编程之门,也没有问题,无论之前的讲解、教材、学习用书还是支线课程,都可继续学习,遇到问题随时可在主仓库 Issues 系统中查询和/或提出。 编程和里面蕴含的思维方法,是可以学习一辈子的本事。无论进度如何,只要持续学下去,就一定能到达编程世界的自由境界,keep exploring and thinking.
如果你还没有完成 “基础篇” 的学习,或者现在刚开始准备进入编程之门,也没有问题,无论之前的讲解、教材、学习用书还是支线课程,都可继续学习,遇到问题随时可在主仓库 Issues 系统中查询和/或提出。
编程和里面蕴含的思维方法,是可以学习一辈子的本事。无论进度如何,只要持续学下去,就一定能到达编程世界的自由境界,keep exploring and thinking.
之前已经 fork & clone 学习用书 的话,需要按照 GitHub 官方指南 来完成你的 repo 和新版学习用书之间的同步。 这个过程虽然不难,但也有点麻烦,如果实在弄不好,其实把之前你用的本地学习用书备份一下,然后删掉原本的 fork,再重新 fork & clone 新的学习用书就可以了。反正 “描红本” 描完就扔也没问题。 更新:感谢 zhipingyang120 同学写了一篇中文的 step-by-step 的 学习用书更新同步指南,可以参考。
之前已经 fork & clone 学习用书 的话,需要按照 GitHub 官方指南 来完成你的 repo 和新版学习用书之间的同步。
这个过程虽然不难,但也有点麻烦,如果实在弄不好,其实把之前你用的本地学习用书备份一下,然后删掉原本的 fork,再重新 fork & clone 新的学习用书就可以了。反正 “描红本” 描完就扔也没问题。
更新:感谢 zhipingyang120 同学写了一篇中文的 step-by-step 的 学习用书更新同步指南,可以参考。
2020-05-06 18:33:12 initialize
Logging
2020-05-06 18:33:12 initialize