首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式。
以你最终想制作一个网站为例。从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用,我曾经尝试过不通过上下文和具体应用来学习编程,但是我几乎没有获得任何有用的技能。
当我3年前学习python时,我想创建一个网站。这对于任何一个学习Pyhon人来说,不足为奇。
1、找到是什么激励你
找到并保持你的动机是关键-我高中睡了很多个的程序设计课,因为它只让我们记住了一堆语法。另一方面,当我需要学习python来制作一个自动作文评分算法时,我连续熬夜几个晚上来学习和迭代。
学习中很少涉及动机--你通常只是跟随别人给的教程去尝试做一些东西。但是,python的伟大之处在于,你几乎可以开发所有的东西,从移动应用程序到游戏到高级机器学习算法。无论你是否感兴趣,你都可以在python中构建它,并且可能获得了一个很好的入门教程。
选择一个或两个你感兴趣的东西,并坚持下去-你会在这个领域开发很多项目。
以下是一些示例区域,但可以随意添加:
2、了解一些基本的python语法
除非你知道基本的语法,否则很难实现任何东西。即便如此,也不要花太长时间在上面。你的目标是开展你感兴趣的项目,学习基本的语法就足够了
作为参考,我花了不到一周的时间在codecademy上,学习了大概30%的语法。这足以可以开始一个项目了
一些可以帮助你的资源:
Codecademy --很适合学习基本语法
Learn python the hard way--一本教了很多python概念的书。
Dataquest.io --这是我学习Python的第一个网站。它的重点是教你在数据科学中使用python,但它可以教会你所有的基本语法。
Python教程--主要python站点上的教程。
我再次强调,前期不要花太多时间在基本语法上。你越快开展项目工作,你将学的越快。当你遇到问题卡住的时候,你还是可以回去看看语法的。
3、进行结构化项目
除非你真正的把你学到的东西应用在实际项目上,否则你学到的知识将会慢慢流失。项目是一个很好的学习方式,因为他可以促进你的能力,让你知道如何应用你所学到的技能,并且可以让你在找下一份工作时有东西可以拿出来展示。
当你开始工作时,更多带有指导的结构化项目对你帮助很大。这里有几个想法:
游戏
Pygame tutorials --pygame(用于制作游戏的python库)有一个很好的教程列表
Making games with pygame--这本书看起来像是通过制作游戏这样一个很好的方法来学习python
网站
Flask tutorial --官方flask教程(简单的python web框架)。
Bottle tutorial--Bottle教程(更简单的python web框架)。
How To Tango With Django 1.7--个django的指南(有些复杂的python web框架)
数据科学
Dataquest.io --以交互方式教你Python和数据科学。你可以分析一系列从CIA文件到NBA球员的有趣的统计数据数据集。
Scikit-learn 文档--Scikit-learn有一些很好的文档和教程(python的主要机器学习库)。
Python数据分析--由python数据分析库(pandas)主要作者编写,对使用python分析数据有一个很好的介绍。
4、自己开展项目
一旦你以指导的方式学习了这些概念,那么现在是自己开展一些项目的时候了。你仍然需要查阅参考资料并查找概念,但是你将根据项目的需求来应用你所学到的知识,而不是相反。
找一起工作的其他人一起开展项目,那样可以帮助你学习并帮助你保持积极性。
我的一些建议:
我的第一个项目是将我的自动文本评分算法从R改写成python。它最终看起来没有很漂亮,但它事我在学习Python旅程上的开始。
其实关键是选择一些东西来做。如果你只想做出一个完美无瑕疵的项目,那么你有可能永远都不会做出一个项目。
5、勇于挑战更困难的项目
不断增加你项目的难度和范围。如果你对你正在开发的东西感到很轻松,那就意味着现在是尝试更加困难的东西的时候了。
以下是当时的一些想法:
6、结语
不管怎么说,python一直在不断演变进化。可能只有少数人可以断言完全理解它。
你需要不断地学习和研究项目。如果你这样做了,当你回头看看自己6个月前写的代码,你会觉得这代码是有多么糟糕。如果你到达这一层次了,那恭喜你,说明你上道了。
推荐书单:
你眼中的Python大牛 应该都有这份书单
Python书单 不将就
不可错过的十本Python好书
Python是一种非常有趣且值得学习的语言,我认为只要找到正确的动机,知道你为什么学习Python,你用它来做什么,渐渐的你就可以精通它。