欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习Python坚持不下来,5个步骤让我变回精神小伙

程序员文章站 2022-07-12 14:09:59
...

学Python坚持不下来的根本原因

当我学习Python时,最让我沮丧的一件事就是所有学习资源的趋同性。比如我想学习如何使用Python制作网站,但是似乎每个学习资源都希望我先花2个月的时间来研究枯燥的Python基础语法,然后才开始考虑有趣的网站代码,其实这真的有点无聊并且容易让人放弃……

这种学习方法很容易造成我的拖延症。我磨磨蹭蹭了几个月,我在网上的语法教程中学习了两节课,然后停了下来。我看了看Python代码,代码很陌生且令人困惑:

from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

上面的代码来自Django的教程,这是一个流行的Python网站开发框架。经验丰富的程序员经常会向你抛出上述片段。他们会说:“So Easy啊!” 但是,即使是看似简单的几行代码也可能令人难以置信。例如,为什么有些行缩进?什么django.http啊 ,为什么在括号里有这些东西?在不了解Python的情况下,了解所有内容如何组合起来会非常困难。

问题是你需要了解Python语言的构建基块才能构建一些有趣的东西。上面的代码段创建了一个视图,这是使用流行的MVC架构的网站的关键构建块之一。如果你不知道如何编写代码来创建视图,那么创建动态网站实际上是不可能的

基于上面的理由,大多数教程都假定你需要学习所有 Python语法,然后才能开始做有趣的事情。当你真正想做的是分析数据,建立网站或创建自主无人机时,花费数月时间在枯燥的语法上,长时间得不到正反馈(类似游戏中打怪升级的成就感),就没办法有直观的感觉和成就感,长期下来会导致动力不断减弱,甚至导致偏离了一开始的目标,而荒废了所有的事情。我喜欢将其视为“无聊的悬崖”。你需要先能够爬上“无聊的悬崖”,才能进入“有趣工作的领域”。

面对“无聊的悬崖”几次走开之后,我发现了一个对我来说更好的方法。方法是将学习基础知识与构建有趣事物相结合。我花了尽可能少的时间来学习基础知识,然后立即投入到创造令我感兴趣的事情上。在本文中,无论你为什么要学习Python,我都会逐步引导你如何复制这个过程。

1.找出促使你学习Python的动机

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

弄清楚激发您动机的因素将帮助您弄清楚最终目标,以及一条不会让你感到厌烦的道路。您不必准备一个确切的项目,而只需要思考:你学习Python是为了解决哪一个具体领域的问题

所以,选择一个您感兴趣的领域,例如:

  • 数据科学/机器学习
  • 移动APP
  • 网站
  • 游戏类
  • 硬件/传感器/机器人
  • 使工作自动化的脚本
  • 数据爬虫

学习Python坚持不下来,5个步骤让我变回精神小伙

是的,您可以使用Python制作机器人!摘自Raspberry Pi Cookbook

找出你感兴趣的一两个领域,然后你就会有动力坚持下去。你将因为你选择了领域而有更明确的学习目标并坚持下去,最终将在这个领域构建你自己令人惊叹的项目!

2.学习基本语法

不幸的是,这一步不能被跳过。在深耕某个具体领域之前,必须学习Python语法的基础知识。你需要花最少的时间在这上面,因为这个过程不会给你提供源源不断的学习动力;所以,尽快了解一下,然后上手实际写代码,边做边学,不要怕,只要开始做即可!

这里我推荐我用到的,只推荐两个,多了烦:

  • 菜鸟教程 最简洁、最快速的python入门教程,查询函数、语法最快捷的网站
  • 成为专业人士笔记 全面了解python,通过问题学习知识的绝佳手册

我必须要强调的是,你应该只花最少的时间在基本语法上。你越快地从事项目工作,就会学得越快。以后遇到问题时,你始终都可以回过头来,带着问题去参考上面的语法以及知识点;理想情况下,你应该只在此阶段花费几周,而且绝对不要超过一个月

3.开始结构化项目

学习了基本语法后,就可以开始自己创建项目了。项目是学习的好方法,因为项目会不断需要你去应用你所学到的知识,而在实际的学习过程中,你需要经常用到这个知识,否则将很难记住它。项目将提升你的能力,帮助你学习新事物,并帮助建立向潜在雇主展示能力的机会。

但是,在这个阶段由于不熟悉随意建立的项目结构会让你陷入很多麻烦,需要参考很多文档。因此,通常最好结合一些成熟的结构化项目框架,直到你觉得可以完全掌控一个大型结构化的项目为止。许多学习资源都提供了结构化的项目,这些项目可以使你的精力集中在所关心的领域去构建有趣的东西,同时又可以避免去解决那些高并发、session、权限、多线程等这些底层的技术(避免重复造*)

让我们看一下每个领域中用于结构化项目的一些好的资源:

数据科学/机器学习

  • 这里只推荐中国的apache非盈利机构整理的教程,很简单,因为里面啥都有,是万千爱好者辛苦整理的github项目: https://github.com/apachecn

移动APP

  • Kivy中文教程 -Kivy是一种工具,可让你使用Python制作移动应用程序

网站

  • Flask教程 — Flask是Python的流行Web框架。这是入门教程。
  • Bottle教程 — Bottle是另一个适用于Python的Web框架。这是开始的方法。
  • Django教程 —使用Django(复杂的Python网络框架)的指南。
  • Tornado教程–超高并发web框架

游戏类

  • Pygame教程 -Pygame是一个流行的Python游戏制作库,这是它的教程列表。

学习Python坚持不下来,5个步骤让我变回精神小伙

你可以使用Pygame制作游戏的示例。这是Phil Hassey制作的芭比海马历险记1.0。

硬件/传感器/机器人

自动化工作的脚本

数据爬虫

scrapy中文教程—最流行的分布式数据爬虫框架

splash中文教程—-可以解析js动态脚本、自动登录等,爬取动态网站的不二之选,与scrapy结合使用

在你自己的领域中借助框架完成了一些结构化项目后,现在应该可以着手进行更加有趣的项目了。但是,在这样做之前,花一些时间学习如何解决问题是很重要的。

4.挑战有趣的项目

一旦完成了一些结构化项目,就该独自开发一些有趣的项目了,以继续更好地学习Python;你仍然需要获取各种资源和学习新的概念,但是你将致力于自己想做的事情。在开始研究自己的有趣项目之前,你应该能够轻松地调试程序中出现的错误及问题;这是你应该熟悉的一些资源:

  • *-一个社区问答站点,人们可以在其中讨论编程问题。你可以在此处找到特定于Python的问题。
  • Google-每个有经验的程序员中最常用的工具。尝试解决错误时非常有用(国内百度)
  • Python官方文档 -在Python上查找参考资料的好地方。

一旦对调试问题有了充分的了解,应该立刻着手从事自己感兴趣的事情。例如,我一个朋友在学习python编程后不久,就开发了自动交易股票的工具。

以下是寻找有趣项目的一些技巧:

  • 扩展以前处理的项目,并添加更多功能。
  • 前往你所在地区的Python聚会,并找到从事有趣项目的人员。
  • 查找要贡献的开源软件包。
  • 看看是否有任何当地的非营利组织正在寻找志愿开发商。
  • 查找他人制作的项目,并查看你是否可以扩展或改编它们。Github是找到这些的好地方。
  • 浏览其他人的博客文章以找到有趣的项目构想。
  • 考虑可以使你的日常生活更加轻松的工具,并加以构建。

记住一开始不要图大,从非常简单的事情开始通常很有用,这样你可以获得信心和持续动力;最好开始一个小项目,然后再完成一个从未完成过的大项目

寻找其他一起做事情的人也是很有帮助的

如果您真的想不出任何好的项目构想,那么下面我们讨论了每个领域中的一些构想:

数据科学/机器学习

  • 可视化州选举的地图。
  • 对京东公共数据接口几亿条数据进行实时统计分析
  • 可以预测你居住地天气的算法。
  • 预测股市的工具。
  • 自动汇总新闻文章的算法。

学习Python坚持不下来,5个步骤让我变回精神小伙

你可以制作此地图的更具交互性的版本。来自RealClearPolitics。

学习Python坚持不下来,5个步骤让我变回精神小伙

对京东数据进行统计可视化,案例来源 mybi

移动APP

  • 追踪你每天走多少公里数的应用程序。
  • 向你发送天气通知的应用程序。
  • 基于位置的实时聊天。

网站

  • 一个可以帮助您计划每周进餐的网站。
  • 一个允许用户查看视频游戏的网站。
  • 一个记笔记的平台。
  • 一个运行业务的网站 (基于Tornado框架开发的网站案例)

游戏类

  • 一个基于位置的手机游戏,你可以在其中占领领土。
  • 您可以编程解决字迷的游戏。

硬件/传感器/机器人

  • 传感器可监控你的房屋温度,并让你远程监控房屋。
  • 更智能的闹钟。
  • 自动行走的机器人,可检测障碍物。

使工作自动化的脚本

  • 自动执行数据输入的脚本。
  • 从网上抓取数据的工具。

数据爬虫

抽取网络数据,并进行数据分析 ( 百度指数案例)

学习Python坚持不下来,5个步骤让我变回精神小伙

我朋友的第一个项目是将我的自动论文评分算法从R适应到Python。最终看起来并不漂亮,但是它给了我成就感,并开始让我不断完善自己的技能。

关键是要选择好领域并去做,如果你对选择完美的项目太过着迷,你将永远无法创造一个项目。

5.继续从事更艰巨的项目

不断增加项目的难度和范围。如果你自己所构建的内容都能很轻松地完成,则意味着该进行一些复杂度更高的尝试了。

以下是有关此阶段的一些想法:

  • 尝试教新手如何构建你制作的项目。
  • 您可以扩展你的工具吗?它可以处理更多数据,还是可以处理更高的并发量?
  • 你可以使程序运行更快吗?
  • 你可以让你的工具对更多人有用吗?
  • 你如何将自己的作品商业化?

向前走

归根结底,Python一直在发展。只有极少数人可以大声的说自己可以完全理解该语言,并且这些人正在对Python的发展做着贡献

你需要不断学习和尝试项目。如果有效果,某天你会发现自己打开6个月前的代码并回顾的时候,想要打死当时的自己。如果真到了这一步,那么你的方向就对了。从事你所感兴趣的事情,这样才会不精疲力尽或无聊。

Python是一种非常有趣且值得去深入学习的语言,我认为任何人只要有合适的动机,就可以熟练掌握它。

努力向前走吧!如果你需要学习python语言,先使用现成的Python3云环境

,编写你的第一个“hello world”程序来试试感觉也许不错,祝你成功!

有问题随时来创帆云找我