如何系统地自学 Python？
计算机专业的博士训练生来回答一下，python用了好几年了，也可以算做从零开始学的，据我的经验来看很多同学在学习完python的基本语法后，都会面临着接下来我该干什么的困境！ 这是一篇非常详细的，覆盖了Python从入门到后期的全套方法论和相关资料，建议收藏后查阅。 另外我作为从本科到现在读博一直是计算机专业，其间也接触过很多的其他专业同学，或是想转行，或是想给自己增加一门技能，都咨询过如何学习python这个话题。通过这个问题，我也将之前的思路理一遍，同时也希望给想要自学python的同学一个完整的教程。 Python是一种重要的编程语言，它在数据科学，Web开发，软件工程，游戏开发，自动化等领域得到了广泛的应用。但是学习Python的最好方法是什么？ 学习Python时，挑战最大的事情就是所有学习网站的枯燥生硬。比如说你想学习如何使用Python进行网站制作，但几乎每个网站都让你花很长时间学习枯燥乏味的Python语法，然后进阶到下一步。这种不匹配使学习Python对新人来说非常令人生畏。 拿下面这个例子来说 这段代码来自Django的教程，一个流行的Python网站开发框架。经验丰富的Python程序员会觉得这很简单啊。 但是，即使是看似简单的几行代码也会让新人明显感觉不适。例如，为什么某些行缩进？ 是干嘛用的？括号中的东西又是干嘛用的？  问题在于你需要了解Python语言的构建基块才能写出有趣的东西。但大多数教程都假定您需要学习 所有的 Python语法，然后才能开始做任何有趣的事情。当您真正想做的是分析数据，建立网站或创建无人机时。这就是导致你的动机消退的原因。 所以根据我的理解，学习Python的有效方法是将学习基础知识与构建有趣事物相结合。宗旨就是花尽可能少的时间来学习基础知识，然后立即投入到自己感兴趣的事物中。 在开始在线学习Python之前，问自己为什么要学习它。这是因为这将是一个漫长而痛苦的过程。没有足够的动力，你可能无法坚持到最后。 弄清楚动机的好处是可以帮助你弄清楚最终目标，以及一条学习起来轻松有趣的路线。在准备学习Python时，不用有一个确切的项目，一个你感兴趣的领域就可以。例如： 不幸的是，这一步不能被跳过。在深入你的兴趣领域之前，学习Python语法的基础知识是必要的。但不用花很多时间，因为可以在实战中反复练习。 这里有一些很好的资源可以学习基础知识： 如果大家有兴趣的话可以先尝试下免费的课程，只需要关注【夜曲编程】发送【免费教程】， 就可以体验了。 在对编程有一个大致了解后，可以去报名更完整详细的入门课和进阶课。我大致地看了一下，有很多类别，比如说爬虫课，数据分析，办公效率化等等。可以根据自己的需求进行选择。 我认为这个学习软件的优点如下： 1 交互式学习，在线的代码编辑器可以让小白无需安装环境就可以进行学习 2 合理的课程安排，每天只需要15-20分钟，利用碎片时间学习 3 课程设计的非常科学，很多课程以有趣生动的形式进行教授。 4 随时随地学习，手机/电脑/ipad都可以学。 ​在这个竞争压力大的时代，多学一门技能就多一份竞争力，编程也不是遥不可及的东西，轻松愉快的学习是可以做到的。 Python语言上手较为简单，学习难度适中，同时也有利于增加就业竞争力，也能再日常的工作生活中切实的提升工作效率。 感兴趣的同学关注【夜曲编程】， 发送【免费教程】， 就可以体验免费课程。如果觉得还不错可以去报名更完整的入门课和进阶课。 另外，请注意：学习Python 3，而不是Python2。需要鉴别的是线上有很多“学习Python”资源仍旧已python 2为基础。  学习完基本语法后，就可以开始自己做项目了。具体项目是一种学习的好方法，因为它可以运用自己的知识和反复帮助你熟练基础知识。要记住，编程这东西，一旦不用，能力会急速下降。 但是，这时侯有网上也充斥着很多的资源，让人难以选择。因此，通常最好使用以及制作好的成体系的结构化的项目，可以一步步的引导你完成整个项目。网上很多资源都提供了结构化的项目，这些项目既可以让你从感兴趣的东西开始，又可以避免陷入学习困境。 下面介绍一些不错的项目： 一旦完成了一些结构化项目，就可以独自开发项目了，以继续更好地学习Python。在这个阶段会遇到很多的困难，绝大多数的问题都可以在以下得到解答： 一旦对掌握了上述技巧，就可以开始发展自己的项目。可以从自己感兴趣的事情开始。例如，在学习编程后不久，我做的就是简单的数据分析，进行一些走势的分析等。 以下是寻找有趣项目的一些技巧： 最好启动一个小项目，然后慢慢的增加功能，直到完成一个中型甚至大型项目。 如果实在没有什么想法，下面有一些项目可以参考： 不断增加项目的难度和范围。 可以尝试以下建议：  Python是一种非常有趣且有益的语言，我认为只要找到合适的动机，任何人都可以熟练掌握它。  文末，别忘记这门优秀的图形化python课程，不仅可以直接在网页上写python，还有配有有图形化的内容帮助你快速理解那些较为晦涩的内容，关键的是现在的免费课程已经出了，还不来赶紧试试： 可以关注<夜曲编程>公众号，回复<免费教程>，试用免费编程课 