Python是一种重要的编程语言,它在数据科学,Web开发,软件工程,游戏开发,自动化等领域得到了广泛的应用。但是学习Python的最好方法是什么?要弄清楚那可能是困难而痛苦的。我从经验中知道。
我在学习Python时最沮丧的一件事是 通用的 所有的学习资源都是。我想学习如何使用Python制作网站,但是似乎每个学习资源都希望我花两个月很长的枯燥乏味的Python语法,然后才考虑做我感兴趣的事情。
这种不匹配使学习Python对我来说非常令人生畏。我推迟了几个月。我上了两节课 密码学 教程,然后停止。我看了一下Python代码,但这很陌生且令人困惑:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
上面的代码来自本教程 Django的 的 ,一个流行的Python网站开发框架。经验丰富的程序员经常会向您抛出上述片段。他们会保证:“很简单!”
But even a few seemingly simple lines of code can be incredibly confusing. For instance, why are some lines indented? What’s django.http
? Why are some things in parentheses? Understanding how everything fits together when you don’t know 许多 Python can be very hard.
问题在于您需要了解Python语言的构建基块才能构建出有趣的东西。上面的代码段创建了一个视图,这是使用流行的网站的关键构建块之一 MVC 建筑。如果您不知道如何编写代码来创建视图,那么实际上不可能创建动态网站。
大多数教程假定您需要学习 所有 在开始做任何有趣的事情之前先学习一下Python语法。当您真正想做的是分析数据,建立网站或创建自主无人机时,这就是花费数月时间在语法上的原因。
这就是导致您的动机消退的原因,而您只是取消了一切。我喜欢认为这是 “无聊的悬崖”。您需要能够爬上“无聊的悬崖”,使其进入“您从事的有趣工作的领域”(更好的名称待定)。
几次面对“无聊的悬崖”然后走开之后,我发现了一个对我来说更好的过程。实际上,我认为这是学习Python的最佳方法。
有效的方法是将学习基础知识与构建有趣事物相结合。我花了尽可能少的时间来学习基础知识,然后立即投入到创造令我感兴趣的事物中。在此博客文章中,无论您为什么要学习Python,我都会逐步引导您如何复制此过程。
步骤1:找出促使您学习Python的原因
开始学习在线学习Python之前,值得问自己为什么要学习它。这是因为这将是一个漫长而有时是痛苦的旅程。没有足够的动力,您可能无法实现目标。例如,当我不得不记住语法并且没有动力时,我就睡在高中和大学的编程课上。另一方面,当我需要使用Python来构建一个网站来自动对文章进行评分时,我要熬夜来完成它。
弄清楚激发您动机的因素将帮助您弄清楚最终目标,以及一条使您轻松无聊的道路。在准备学习Python时,您不必找出一个确切的项目,而只需找出您感兴趣的一般领域即可。
选择您感兴趣的区域,例如:
- 数据科学/机器学习
- 行动应用程式
- 网站
- 游戏类
- 数据处理与分析
- 硬件/传感器/机器人
- 使工作自动化的脚本
是的,您可以使用Python制作机器人!来自 树莓派食谱.
找出您感兴趣的一两个领域,并乐意坚持。您将针对他们进行学习,最终将在其中构建项目。
步骤2:学习基本语法
不幸的是,这一步不能被跳过。在深入选择区域之前,您必须学习Python语法的基础知识。您希望花最少的时间在此上,因为这不是很积极。
这里有一些很好的资源可以帮助您学习基础知识:
- 艰苦学习Python -一本从基础知识到更深入的程序的Python教书。
- 数据查询– Python for Data Science基础课程 —我启动了Dataquest,以简化Python和数据科学的学习。 数据查询 在学习数据科学的背景下教授Python语法。例如,您将在分析天气数据时了解for循环。
- Python教程 — Python主站点上的教程。
我不太强调,您应该只花最少的时间在基本语法上。您越快地从事项目工作,您就会学得越快。以后遇到问题时,您始终可以参考语法。理想情况下,您应该在此阶段只花几个星期,而且绝对不要超过一个月。
另外,请注意:学习Python 3,而不是Python2。不幸的是,许多在线的“学习Python”资源仍在教授Python 2,但是 你一定要学习Python 3。 Python 2是 不再受支持,因此无法修复错误和安全漏洞!
步骤3:进行结构化项目
学习完基本语法后,就可以开始自己制作项目了。项目是一种学习的好方法,因为它们使您可以运用自己的知识。除非您应用您的知识,否则将很难保留它。项目将提高您的能力,帮助您学习新事物,并帮助您建立向潜在雇主展示的投资组合。
但是,目前非常自由格式的项目会很痛苦-您会陷入很多麻烦,需要参考文档。因此,通常最好制作更具结构化的项目,直到您感到足够舒适以完全自己制作项目为止。许多学习资源都提供结构化的项目,这些项目使您可以在自己关心的领域构建有趣的东西,同时又可以防止自己陷入困境。
让我们来看一下每个领域中结构化项目的一些有用资源:
数据科学/机器学习
- 数据查询 —交互式地教您Python和数据科学。您分析了一系列有趣的数据集,从CIA文件到NBA球员数据。您最终将构建复杂的算法,包括神经网络和决策树。
- 用于数据分析的Python —由一个主要的Python数据分析库的作者编写,是对使用Python分析数据的很好的介绍。
- Scikit学习文档 — Scikit-learn是主要的Python机器学习库。它具有一些出色的文档和教程。
- CS109 —这是哈佛课程,讲授Python进行数据科学。他们有一些 工程及其他材料 online.
行动应用程式
- Kivy指南 — Kivy是一种工具,可让您使用Python制作移动应用程序。他们有一个入门指南。
网站
- 烧瓶教程 — Flask是Python的流行Web框架。这是入门教程。
- 瓶子教程 — Bottle是另一个适用于Python的Web框架。这是开始的方法。
- 如何与Django探戈 —使用Django(复杂的Python网络框架)的指南。
游戏类
- 密码学 -引导您制作几个简单的游戏。
- Pygame教程 — Pygame是一个流行的Python游戏库,这是它的教程列表。
- 用Pygame制作游戏 —教您如何用Python制作游戏的书。
- 使用Python发明自己的电脑游戏 一本书,引导您逐步了解如何使用Python制作多个游戏。
您可以使用Pygame制作游戏的示例。这是Phil Hassey制作的芭比海马历险记1.0。
硬件/传感器/机器人
- 在Arduino上使用Python —了解如何使用Python控制连接到Arduino的传感器。
- 使用Raspberry Pi学习Python —使用Python和Raspberry Pi构建硬件项目。
- 使用Python学习机器人 —了解如何使用Python构建机器人。
- 树莓派食谱 —了解如何使用Raspberry Pi和Python构建机器人。
自动化工作的脚本
- 使用Python自动执行无聊的工作 —了解如何使用Python自动执行日常任务。
在您自己的区域中完成一些结构化项目后,您应该可以着手进行自己的项目了。但是,在您这样做之前,一定要花一些时间学习如何解决问题。
步骤4:自行处理Python专案
一旦完成了一些结构化项目,就该独自开发项目以继续学习Python了。您仍将在咨询资源和学习概念,但是您将致力于自己的工作。在深入研究自己的项目之前,您应该对调试错误和程序问题感到满意。这是您应该熟悉的一些资源:
- 堆栈溢出 -一个社区问答站点,人们可以在其中讨论编程问题。您可以找到特定于Python的问题 这里 .
- 谷歌 —每个有经验的程序员中最常用的工具。尝试解决错误时非常有用。 这是 an example.
- Python文档 —在Python上查找参考资料的好地方。
一旦对调试问题有了充分的了解,就可以开始处理自己的项目。您应该从事自己感兴趣的事情。例如,在学习编程后不久,我就开发了自动交易股票的工具。
以下是寻找有趣项目的一些技巧:
- 扩展您以前处理的项目,并添加更多功能。
- 查看我们的清单 面向初学者的Python项目.
- 转到Python 聚会 在您所在的地区,找到从事有趣项目的人员。
- 查找要贡献的开源软件包。
- 看看是否有任何当地的非营利组织正在寻找志愿开发商。
- 查找他人制作的项目,然后查看是否可以扩展或改编它们。 Github 是找到这些的好地方。
- 浏览其他人的博客文章,找到有趣的项目构想。
- 考虑可以使您的日常生活更加轻松的工具,并加以构建。
记住要开始很小。从非常简单的事情开始通常很有用,这样您就可以获得信心。最好先开始一个小型项目,然后再完成一个从未完成的大型项目。在 数据查询 ,我们指导了一些项目,这些项目为您提供了可以建立的与数据科学相关的小任务。
寻找其他人一起工作也很有用,这很有用。
如果您真的想不出任何好的项目构想,可以在以下我们讨论的各个领域中进行探讨:
数据科学/机器学习项目构想
- 可视化州选举选举的地图。
- 可以预测您所居住的天气的算法。
- 预测股市的工具。
- 自动汇总新闻文章的算法。
您可以制作此地图的更具交互性的版本。来自RealClearPolitics。
移动应用项目构想
- 跟踪您每天走多远的应用程序。
- 向您发送天气通知的应用程序。
- 基于位置的实时聊天。
网站项目构想
- 一个可以帮助您计划每周进餐的网站。
- 一个允许用户查看视频游戏的网站。
- 一个记笔记的平台。
Python游戏项目构想
- 一个基于位置的手机游戏,您可以在其中捕获领土。
- 您可以编程解决难题的游戏。
硬件/传感器/机器人项目构想
- 传感器可监控您的房屋温度,并让您远程监控房屋。
- 更智能的闹钟。
- 自动驾驶机器人,可检测障碍物。
工作自动化项目构想
- 自动执行数据输入的脚本。
- 从网上抓取数据的工具。
我自己的第一个项目是将我的自动论文评分算法从R适应到Python。最终看起来并不漂亮,但是它给了我成就感,并开始让我发展自己的技能。
关键是要挑选东西并做。如果您太忙于选择完美的项目,则有可能永远无法创造一个项目。
步骤5:继续从事更艰巨的项目
不断增加项目的难度和范围。如果您完全满意自己所构建的内容,则意味着该是时候再努力一点了。
以下是一些有关何时到来的想法:
- 尝试教新手如何构建您制作的项目。
- 您可以扩展您的工具吗?它可以处理更多数据,还是可以处理更多流量?
- 您可以使程序运行更快吗?
- 您可以使您的工具对更多人有用吗?
- 您如何将自己的作品商业化?
往前走
归根结底,Python一直在发展。只有少数人可以合法地宣称自己完全理解该语言,并且他们创造了这种语言。
您需要不断学习和从事项目。如果做对了,您会发现自己在6个月前回顾了一下代码,并思考代码的可怕程度。如果您到了这一步,那么您就走对了。只从事您感兴趣的事情,这意味着您永远不会精疲力尽或无聊。
Python是一种非常有趣且有益的语言,我认为只要找到合适的动机,任何人都可以熟练掌握它。
希望本指南对您的旅行有所帮助。如果您还有其他建议资源,请 让我们知道 !
了解有关如何学习Python的更多信息,并通过访问以下网站将此技能添加到您的产品组合中 数据查询 .
常见Python问题:
学习Python难吗?
学习Python无疑是充满挑战的,您可能会感到沮丧。保持学习动力是最大的挑战之一。
但是,如果您采用我在此处概述的循序渐进的方法,您应该会发现,在令人沮丧的时刻轻松发挥作用是很容易的,因为您将从事真正让您感兴趣的项目。
您可以免费学习Python吗?
有很多免费的Python学习资源-在Dataquest,我们有 几十个免费的Python教程 而我们的交互式数据科学学习平台(用于教授Python)是 免费注册 并包含许多免费任务。互联网上充斥着免费的Python学习资源!
免费学习的缺点是要学习所需的知识,您可能需要将大量不同的免费资源拼凑在一起。您将花费额外的时间来研究接下来需要学习的内容,然后找到免费的教学资源。花费金钱的平台可能提供更好的教学方法(例如Dataquest提供的交互式,浏览器内编码),而且它们还为您节省了查找和构建自己的课程的时间。
您可以从头开始学习Python(没有任何编码经验)吗?
是。在Dataquest,我们有许多学习者从没有编码经验开始,然后继续从事数据分析师,数据科学家和数据工程师的工作。 Python是供编程初学者学习的好语言,并且您不需要任何代码方面的经验即可学习。
学习Python需要多长时间?
学习编程语言有点像学习口语-您从未真正 完成 ,因为编程语言不断发展,并且还有很多东西要学习!但是,您可以很快地编写出简单但功能强大的Python代码。
准备工作需要多长时间取决于您的目标,您正在寻找的工作以及您可以投入多少时间来学习。但是在某些情况下 我们在2020年调查的Dataquest学习者 报告称在不到一年的时间内达到了他们的学习目标-许多是在不到六个月的时间内-每周不到十个小时的学习时间。
您需要Python认证才能找到工作吗?
我们已经 深入介绍Python证书,但简短的答案是:可能不会。不同的公司和行业具有不同的标准,但是在数据科学中,证书的重要性不高。雇主关心您所拥有的技能-能够向他们展示一个充满了很棒的Python代码的GitHub 许多 比向他们显示证书更重要。
您应该学习Python 2还是3?
我们已经 关于Python 2或Python 3的文章 同样,但是简短的答案是:精简的Python3。几年前,这仍然是一个争论的话题,一些极端的预测甚至声称Python 3会 “杀死Python。” 这还没有发生,今天,Python 3无处不在。
Python是2020年学习的好语言吗?
是。 Python是一种流行且灵活的语言,已在各种上下文中专业使用。我们教 适用于数据科学的Python 例如机器和机器学习,但是如果您想将Python技能应用到另一个领域,Python可以用于金融,Web开发,软件工程,游戏开发等。
而且,即使您不希望成为一名专职数据科学家或编程人员,Python数据技能也可能真正有用。拥有一些使用Python进行数据分析的技能,对各种各样的工作都非常有用-如果您使用电子表格,则有可能使用一个小的Python可以更快更好地完成工作。