你们都是怎么学Python的?
自学Python一个月,怎么学都学不进去,感觉自己方法错了,现在连入门都不算,我该怎么办啊?这应该是每一个零基础学Python的小白都会面临的问题,今天我就结合自己的经历,和大家分享一下我是怎么学Python的?
我在网上常常看到想要转行IT,或者想学习编程但不知如何开始的朋友,回答这类问题的人往往只是列出书单资源,然后给出一个大致的方向。
一些小白朋友就开始扎入理论学习的汪洋大海,从苦读类似「算法导论」开始,能够坚持读下来的寥寥无几,学习的积极性也被不断的挫败感消磨殆尽。
万物皆有道法可寻,学习编程这件事也不例外。我们是需要借助书籍、借助学习资源进行学习,但首先我们得有一个清晰的学习路线。
学习Python的过程,大致可分为入门、进阶、精通。每一个阶段的学习要求又不尽相同,所以,我们应该给自己建立一条学习路线。
1.入门
所谓基础不牢,地动山摇。不管你以前有没有编程基础,都需要掌握Python的基础知识,比如说:变量、数据结构、语法等,我当时入门看的书有:
- A Byte of Python
- Python编程从入门到实战
- 笨办法学Python
- 父与子的编程之旅
上面这些书都是豆瓣评分很高的Python学习工具书,有的书中有实例、有代码,我当时看的时候,把每一个例子的代码都打了一遍,加深记忆,也学习了Python的语法规则,所以,我建议大家自学的时候也这样做,很多代码你看一百遍,不如手打一遍,然后在运行一次,有的可能因为版本的原因会出错,但这也是个学习的过程。
当然,有的小伙伴自学的时候,习惯看视频,网上也有很多资源,最有名的当属廖雪峰的Python教程,还有小甲鱼的Python自学视频等等,风格各不相同,学到知识就行,大家在看视频、看书的时候,最好边看边做笔记。
当你学习完基础语法后,你需要通过做一些简单的项目来巩固和检测自己所学的知识。只有当我们要去做项目的时候,才会真正调动自己的思维,通过各种办法实现自己的想法。
这里给大家推荐一些适合基础巩固与运用的项目。
- https://www.shiyanlou.com/courses/364
- https://www.shiyanlou.com/courses/370
- https://www.shiyanlou.com/courses/589
- https://www.shiyanlou.com/courses/651
- https://www.shiyanlou.com/courses/368
- https://www.shiyanlou.com/courses/70
- https://www.shiyanlou.com/courses/561
- https://www.shiyanlou.com/courses/583
- https://www.shiyanlou.com/courses/756
- https://www.shiyanlou.com/courses/684
2.进阶
学习完基础知识之后,我们可以根据自己的兴趣爱好,或者职业发展,给自己定一个Python的使用方向,目前,Python被使用最多的是:
(1)搭建个人博客、网站(进一步学习Flask、Django);
(2)数据爬虫(进一步学习Requests、Scrapy);
(3)数据分析、机器学习、深度学习等(进一步学习Numpy、Pandas、Scikit-learn等);
(4)通过丰富的第三方库实现各种各样的小想法。
目前,我选择的就是数据爬虫,因为综合自身情况,本科也没学过编程知识,数学也不是很好,那么做数据爬虫项目也是很好的巩固Python基础知识的方法。
一是数据爬虫项目不需要很长的代码,基本上100行以内就可以实现项目需求;二是富有逻辑性,可以锻炼代码思维;三是会涉及到HTML、数据库、代码性能等问题,这些知识点可以说是程序员必须学习的知识点,可以进一步提供触类旁通的能力。
数据分析、挖掘就不用多说,几乎是现在Python最火的方向了。进阶阶段每个人的方向不同,所用的书也不一样,这里就不做推荐。
3.精通
这个应该是每一个自学Python人的目标,每个人心中都要有一个大师梦。关于这个阶段,我给大家推荐一个github上的项目,有位名叫骆昊(jackfrued)的资深程序员,为大家规划了一条“从新手到大师”的百天之路。
目前这个项目以及在GitHub摘下65400星,骆先生还在日程表上方,温柔地鼓励大家:Python是一个“优雅”、“明确”、“简单”的编程语言。学习曲线低,非专业人士也能上手。项目传送门:https://github.com/jackfrued/Python-100-Days
最后,和大家分享几个自学Python的好方式。
(1)一定要抽空补充理论知识。很多前辈会强调learn by doing,边做项目边学习,当然这也是我采用的方式。在这种方式下,你不断犯错,改正……学习效率非常高。但是,很多人走了极端,最后的结果就是不注意理论知识的学习,你会发现自己Google的能力越来越高,但真实的编程能力并没有得到提升,如果你有这种情况,需要反思一下了。
(2)学会发问。好问题是建立在你自己已经实践或者思考的基础上问出来的,需要注意的是不要一遇到困难就喜欢直接上网搜索:「这个问题怎么回事啊?」、「我不明白你能不能帮我看看?」……
(3)善用搜索引擎获得自己想要的答案。这里说的搜索引擎不是某度,是Google,而且要学会如何使用英文发问,如果有报错信息,可以把报错直接copy进搜索框。新手所遇到的问题,99%都可以在Stack Overflow上找到各种答案和实现方式。
(4)学会看报错信息。一开始学习的时候,往往会忽视这一点,但实际上报错信息给出了很多指向性的答案,所以,我们不能一昧的依赖搜索。
(5)学好英语。当我们真正使用Python的时候,官方文档才是很好的查阅和进一步学习的资料,想要成为Python大神,就得多看官方文档,优秀的Python程序员,几乎每年都会去学习一遍官方文档。