基础语法
首先找一份通俗易懂,同时短小精悍的入门教程,快速熟悉Python的基础语法。
通俗易懂很好理解,但是为什么要短小精悍呢?内容详实详尽不好么?详实详尽本没有错,但是不太适合初学者。学习语法是一个比较枯燥的过程,如果这个过程太长或者细节太多,很容易造成初学者的畏难心理,导致无法坚持下去。而且对于没有接触过的概念,如果学习之后没有在实践中体会这些概念的用途,也很容易忘记。所以倒不如一开始只学习非常重要的、必不可少的核心概念,掌握语言的整体概况,细节等到日后实践中再逐渐学习。
学习框架
刚学习完基础语法,直接学习框架会不会太快了,太突兀了?不会,而且这样做很有必要。
对于刚入门的人,最重要的是培养Ta的学习兴趣和信心。学有所用,而且学得会,学习者才能坚持下去。但是对于一个初学者来说,用基础知识、基础工具来写出一个“能用”的东西,实在是太难了!而使用框架,能让你用不多的代码快速构建出一个可用的功能,这对于兴趣的培养至关重要。
有的人可能会担心,自己的基础知识都那么薄弱,如何能学好框架呢?其实这个担心倒是不必,大多数大型的框架都把功能封装得很完整,定义了一套在自己的框架下做事的“规则”,学习框架更多的是学习这些“规则”,入门倒不需要很深的理论基础。
老师辅导
框架能够解决兴趣的问题,老师辅导能够解决信心和效率的问题。
人的大脑是脆弱的,遇到一个问题比较难,大脑会试着解决;遇到两个问题比较难,大脑会先试着回避,冷静后再尝试解决;如果连续遇到三个无法解决的问题,大脑基本上会选择放弃。而老师的作用就是让你的大脑每次只需要面对一个问题。遇到问题,自己试着解决,还是搞不定,问老师,老师教你解决。这样你的大脑就不会一连遇到几个问题,最后选择放弃了。
同时,有老师为你保驾护航也会让你的学习进度大幅提高。编程中遇到问题不会解决再常见不过了,没有人能够在不遇到问题的情况下学会编程。而老师的作用是保证你遇到问题一天之内能够得到解决,而不是在一个问题上卡一周。通常来说,有老师辅导的学习比没有老师辅导的学习进度要快一倍。(当然,没有老师辅导的同学里面很大部分最后都放弃了。)
体会框架
能够进入到这个阶段,说明你已经有一定的基础,并且能够自己用代码做一些功能了。这时候,你应该尝试着去体会理解框架的结构、设计思想和实现原理了。
对,前面你在学习框架的时候是不需要理解体会这些“内涵”的。最初学习框架的时候,你只是按照框架的要求照猫画虎就可以了,对于里面的“内涵”,可以等到你对框架的使用已经比较熟悉了之后再去理解。
这样的学习顺序是人脑理解问题的方式决定的。人脑善于理解具体生动的事物,对于抽象逻辑上的东西熟悉起来比较吃力。所以我们学习造汽车,先要学习开汽车,开汽车让大脑对于汽车的各个部件有一个直观的感受,之后再讲解汽车的内部原理,大脑才更乐于接受。学习框架也是一样,我们先用起来,对每个部分的功能有了直观感受,再去深究原理内涵,就好接受得多。
那如何去体会框架的“内涵”呢?这个说起来就深了。其实如果你不是框架的核心开发者,你是不可能掌握框架的全部“内涵”的。但是即便是皮毛,学到一点也是学到。这里每个人悟到的东西千差万别,我在这里只举几个例子,更多的还需要学习者自己去发掘参悟。
以Django为例,Django的ORM系统让你只要简单地修改配置,就能够切换应用后端的数据库,这里用到了Adapter设计模式。那么我们在构建自己的项目时,也应该为数据源构建一个Adapter,这样面对不同的数据源,我们只需要增加一个Adapter类,而不需要改变系统的核心代码了。
另外Django在配置中很多地方使用字符串来代替模块的导入,那么它是如何把字符串对应到实际的模块上的呢?翻看源码,你就会发现,它使用了import内部方法。利用这个方法,我们也可以在自己的项目中用字符串来指定要导入的模块和类。
像这样的体悟是无穷无尽的,每一个框架都是一个学习的宝库,而你使用过的框架则是对你来说挖掘起来更容易的宝库。挖掘、体悟你最熟悉的框架,会让你的编码水平大幅提高。
广度扩展
编程通常来说都不仅仅是一门语言那么简单。老板不会因为你会某一门语言就付给你薪水,老板只会因为你能完成某类事情才为你买单,而一件事情往往不是单一语言就能完成的。以Python后台开发为例,所涉及的知识往往有Python、SQL、Linux、Shell、计算机网络、数据库,经常还连带着要求有Html、CSS、Javascript的基础,最好还要懂正则、设计模式、加解密原理等。所以学会了一些框架之后你还应该扩展自己知识的广度,多学习一些周边的知识,以便自己能真正地解决实际的问题。
深度精研
完成广度的扩展,找一份工作应该不成问题了。进入工作岗位后,你就需要在你自己的本职工作上进行深度研究了。这个因为每个人主攻方向不同,我们就不展开说了。这时,老同事就是你最好的老师,搞好同事关系很重要哦~