如何在2020年逐步学习Python

2020年8月1日

想象一下,在您必须达到真正想要的东西之前,必须爬上无聊的东西的悬崖!

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语法不必有这种感觉。

几次面对“无聊的悬崖”然后走开之后,我发现了一个对我来说更好的过程。实际上,我认为这是学习Python的最佳方法。

有效的方法是将学习基础知识与构建有趣事物相结合。我花了尽可能少的时间来学习基础知识,然后立即投入到创造令我感兴趣的事物中。在此博客文章中,无论您为什么要学习Python,我都会逐步引导您如何复制此过程。

步骤1:找出促使您学习Python的原因

开始学习在线学习Python之前,值得问自己为什么要学习它。这是因为这将是一个漫长而有时是痛苦的旅程。没有足够的动力,您可能无法实现目标。例如,当我不得不记住语法并且没有动力时,我就睡在高中和大学的编程课上。另一方面,当我需要使用Python来构建一个网站来自动对文章进行评分时,我要熬夜来完成它。

弄清楚激发您动机的因素将帮助您弄清楚最终目标,以及一条使您轻松无聊的道路。在准备学习Python时,您不必找出一个确切的项目,而只需找出您感兴趣的一般领域即可。

选择您感兴趣的区域,例如:

  • 数据科学/机器学习
  • 行动应用程式
  • 网站
  • 游戏类
  • 数据处理与分析
  • 硬件/传感器/机器人
  • 使工作自动化的脚本

是的,您可以使用Python制作机器人!来自 树莓派食谱.

找出您感兴趣的一两个领域,并乐意坚持。您将针对他们进行学习,最终将在其中构建项目。

步骤2:学习基本语法

不幸的是,这一步不能被跳过。在深入选择区域之前,您必须学习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制作游戏的示例。这是Phil Hassey制作的芭比海马历险记1.0。

硬件/传感器/机器人

自动化工作的脚本

在您自己的区域中完成一些结构化项目后,您应该可以着手进行自己的项目了。但是,在您这样做之前,一定要花一些时间学习如何解决问题。

步骤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可以更快更好地完成工作。  


标签

数据科学职业,学习Python,升级,python


您可能还喜欢

立即开始使用Dataquest- 免费!

__CONFIG_colors_palette __ {“ active_palette”:0,“ config”:{“ colors”:{“ 493ef”:{“ name”:“ Main Accent”,“ parent”:-1}},“ gradients”:[]},“调色板“:[{”名称“:”默认调色板“,”值“:{”颜色“:{” 493ef“:{” val“:” rgb(44,168,116)“,” hsl“:{” h“:154,” s“:0.58,” l“:0.42}}},”渐变“:[]},”原始“:{”颜色“:{” 493ef“:{” val“:” rgb( 19、114、211)“,” hsl“:{” h“:210,” s“:0.83,” l“:0.45}}},”渐变“:[]}}]} __ CONFIG_colors_palette__
立即注册

要么, 访问我们的定价页面 了解我们的基本和高级计划。