学习 Python 的 5 个正确步骤

Python,一种功能极其丰富的编程语言。你可以用它来开发网站、机器学习算法甚至是自动驾驶的无人机。目前,世界上有众多开发人员在使用 Python,同时 Python 也在造福于这些开发人员。Python 的适用范围极其广泛,几乎可以用来创造任何东西。不过——什么好事基本上都有这么一个“不过”——首先你得学会它。学习任何编程语言都可能是一项艰巨的工程。从我个人的角度来说,Python 算是所有编程语言中较为简单的一种。但在我学习 Python 的过程中也遇到了不少困难。

其中,让我感到最沮丧的一件事,就是大部分的学习资源其实_并不实用_。比如,当时我想学习如何使用 Python 来搭建网站,但我能找到的学习资源,基本上都要让我先花上足足2个月的时间来学习 Python 语法。这简直太无聊了!

所以当时我甚至都开始害怕起学习 Python。然后在 Codecademy 上学习了一些教程后,我就放弃了……Python 代码简直就像是外语一样:

from django.http import HttpResponse

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

上面的代码取自 Django 教程。Django 是一种比较流行的 Python 网站开发框架。经验丰富的老油条就爱把类似上面这种代码片段扔给你,然后邪魅一笑:“很简单的,试试嘛!”不过就算是这么一小段代码,在新手看来也是念经一样。比如,第三行为什么要缩进?django.http 又是干嘛的?括号里面的东西又是干嘛的?如果你对于 Python 了解不多的话,那想第一眼就完全看明白这段代码简直是天方夜谭。

现在你可能明白了:想要真正干点有意思的事,首先还是要从 Python 基础开始。下面回到上述的代码片段中:这段代码创建了一个视图(view)。而这个视图,就是目前颇为流行的 MVC 架构中,搭建网站的关键性基础。如果你不清楚如何通过代码创建视图,那基本上你就无法创建动态网站。

大多数教程都会假定一件事,那就是你必须先学会_所有_ Python 语法,才能真正开始尝试进行一些创造性工作。这就将导致初学者需要花上好几个月来学习语法(然而实际上,这段时间可用于进行数据分析,或者网站搭建工作,甚至可以用来开发无人飞行器),而这将会逐渐消磨掉你的学习动力,直到最后完全放弃学习。我比较倾向于将这种情形认为是一种“无聊的悬崖”。你所要做的就是学会去攀登这样的“悬崖”,才能抵达“充满各种有趣事物的国度”(当然,我取的名字可能不是特别好)。

这就是一个“无聊的悬崖”。想想让你爬上去,是不是感觉简直像要了老命?

在经历了多次“无聊的悬崖”并最终放弃后,我总算是找到了最适合我方法。简单来讲,就是在进行基础学习的同时尝试创造一些有意思的项目。我试着用尽量短的时间来学习基础知识,并把更多时间投入在让我感兴趣的方面。在这篇文章中,无论你想学习的是哪方面的 Python 知识,下面介绍的一些步骤应该能有一些帮助。

1.找到自己的动力所在

在开始学习之前,先扪心自问一下为什么要学 Python。因为学习不是一件轻松的事,有些时候甚至会让人非常“痛苦”。所以如果动力不足的话,是很难坚持学习下去的。比如说,我在上高中和大学的时候,计算机课都是睡过去的——我可没什么动力来背语法。不过另一方面,当需要使用 Python 来搭建论文自动打分网站时,我又会熬个通宵来拼命完成这个任务。

找到自己的动力所在能够帮助你认清最终目标,同时陪伴你一路前行(而又不会因为无聊而半途而废)。具体是哪些项目能做到这一点倒无所谓,只需挑一个你最感兴趣的领域就行。

比如:

  • 数据科学/机器学习
  • 移动应用
  • 网站
  • 游戏
  • 硬件/传感器/机器人
  • 能够帮助你实现工作自动化的脚本

没错,你还可以使用 Python 来制作机器人!搜搜“树莓派烹饪指南”你就明白了。

找到那些让你兴趣盎然而又愿意为之坚持的领域,然后努力“武装”自己,只要坚持不懈,最终你也一定能建立起自己的项目。

2.学习基础语法

实在不好意思,基础语法还是要学的。至少在进一步深入所选领域之前,还是要学习一些 Python 语法中最基础的部分。不过在这些东西上面能少花一点时间就少花一点时间,毕竟这一段学习过程是最没意思的。个人来说,我是学完了 Codecademy 中 Python 基础教程的前 30% 的,应该是足够了。

下面就是一些能够帮助你学习基础知识的好资源:

  • Codecademy — 对于基础知识的教学比较完善,有助于学员自行发挥。
  • Learn Python the Hard Way — 涵盖从基础 Python 概念到项目实践知识的一本书。
  • Dataquest — 我亲手建立的一个致力于普及 Python 与数据科学知识的网站。Dataquest 主要关注 Python 语法在数据科学领域中的应用。举个例子,我们将在讲解如何分析天气数据的过程中说明 for loops 循环的用法。
  • The Python Tutorial — Python 主站点上的教程

说到这里我又要强调一下,花在学习基础语法上的时间尽量不要太多。越早接触项目,学起来也就越快。如果说卡在了某个地方,这个时候再返回去看语法也是没问题的。一般来说,在这一阶段只需花上一两周就足够了,最多也不要超过一个月。

3.构建结构化项目

在完成了基础语法的学习之后,接下来就可以试着自己构建一些项目了。项目实践是一种非常好的学习方式,因为你可以将自己学到的知识应用起来。学到了知识而不去使用,就很难把它变成自己的东西。项目实践能够提升你的能力,帮助学习新事物;也能帮助你生成自己的作品集。

然而,过于自由的项目可能会让你十分难受——有许多地方都会出问题。而这种时候就需要勤查文档了。所以,最好的操作方法就是多做一些结构化项目,直到你有十足的把握后再开始构建完全属于自己的项目。大部分的学习资源中都提供有结构化项目的学习部分,你可以通过针对这些章节的学习来掌握感兴趣的技能,进一步避免自由项目中的卡顿。

下面我们来看看各个领域之中都有哪些关于结构化项目的好资源:

数据科学/机器学习

  • Dataquest — 通过交互式的方式来教授 Python 与数据科学领域知识。在这里,你所处理的数据集可能是 CIA 文档,也可能是 NBA 运动员数据,还有可能是其它一系列有趣的数据集。慢慢地,你会开始构建神经网络,或是决策树之类的复杂算法。
  • 数据分析中的 Python — 作者是一位大型 Python 数据分析库的开发者。本书中的内容能够帮助初学者了解如何使用 Python 进行数据处理工作。
  • Scikit-learn 文档 — Scikit-learn 是一个常用的 Python 机器学习库。其中有不少质量上乘的文档与教程。
  • CS109 — 这是一门哈佛课程,专门教授数据科学领域的 Python 知识。课程在网络上公开有一些项目与其它资料

移动应用

  • Kivy 指南 — Kivy 是一款帮助你开发移动应用的优秀 Python 工具。具体可查看其开发指南。

网站

  • Flask 教程 — Flask 是一款颇受欢迎的 Python 网络框架。可点击连接查看相关介绍。
  • Bottle 教程 — Bottle 是另一款 Python 网络框架。可点击连接查看相关的开发介绍。
  • 与 Django 共舞 — Django 使用指南。这是一款十分复杂的 Python 网络框架。

游戏

一款采用 Pygame 开发的游戏示例。Barbie Seahorse Adventures 1.0,由 Phil Hassey 开发。

硬件/传感器/机器人

能够帮助你实现工作自动化的脚本

在完成了一些结构化的项目之后,你应该能够开始搭建自己的项目了。但是,在此之前,请一定要记得花点时间来学习解决问题的办法。

4.开始构建自己的项目

在完成了一些结构化项目后,接下来就可以试着自己构建一些项目了。在这个步骤中你依然会继续使用各类资源并学习新概念,同时你还能开始做一些自己想做的事。不过在此之前,你得学会自己找 Bug 修问题。下面的这些资源将对你有所帮助:

  • StackOverflow — 一个问答网站社区,为程序员提供讨论解决编程问题的平台。其中与 Python 相关的问题可点击这里查看。
  • Google — 经验丰富的程序员们最常用的搜索工具。在解决问题的过程中有着非常大的作用。点击这里查看示例。
  • Python 文档 — 详尽实用的 Python 文档。

在熟练掌握了 debug 技能后,你就可以开始构建自己的项目了!很显然应该找点让你感兴趣的东西来做。拿我自己举个例子:在完成编程学习不久后,我就开始自行开发一款全自动进行股票交易的软件。

下面是一些能够帮助你找到好项目的建议:

  • 第一个想法可以是扩展之前开发的项目,向程序中添加更多功能。
  • 参加本地 Python 主题聚会,同那些正在进行有趣项目的程序员沟通。
  • 找一些可以 contribute 的开源项目。
  • 看看附近有没有非营利组织在招聘开发志愿者。
  • 找一些他人已经完成好的项目,看看你能不能进一步改善它。全球最大的程序员网站Github就是最好的去处。
  • 浏览一下他人的博客推文,找找有趣的项目 idea。
  • 想想有没有什么工具能够让你的日常工作更加轻松,如果有的话就把它做出来。

记住,万事开头难,而且一口吃不了大胖子。从最简单的东西开始,这有助于帮助你获得自信。与其一开始就着手开发大型项目(然后半途而废),还不如做些小一点的能够完成的项目。具体的话,可以前往 Dataquest网站 查看一些项目。我们会为你提供小型的数据科学相关任务与详细的项目指导,来帮助你持续进步。

另外一个很有帮助的方法是同他人一起工作。

如果实在想不出好的项目 idea,你也可以看看下面这些我们认为有意思的点子:

数据科学/机器学习

  • 在地图上实现按州的选举调查结果可视化。
  • 一项用于预测你所在地区天气的算法。
  • 一款用于预测股票市场走势的工具。
  • 一项能够自动总结新文章的算法。

还有这幅地图,你可以试着向其中添加一些交互元素。图源:RealClearPolitics

移动应用

  • 一款用于追踪你每日步行距离的应用。
  • 一款向你发送天气提醒的应用。
  • 一款基于地理位置的实时会话应用。

网站

  • 一个能够帮助你规划一周食谱的网站。
  • 一个允许用户对游戏进行评论的网站。
  • 一个笔记平台。

游戏

  • 一款基于地理位置的“抢地盘”游戏。
  • 一款通过编程来解决问题的游戏。

硬件/传感器/机器人

  • 可用于家庭温度监测与远程监控的传感器。
  • 更加智能的闹钟。
  • 可探测障碍物的自动驾驶机器人。

能够帮助你实现工作自动化的脚本

  • 能够实现自动化数据录入的脚本。
  • 能够从网页端爬取数据的脚本。

我自己独立开发的首个项目,就是使用 Python 重写的一个由 R 语言编写的论文自动打分算法。虽说最终成果算不上是太成功,但这一项目也给予了我一定的成就感,激励着我在技能发展的道路上不断取得进步。

最重要的一点:认准一件事就勇敢的去做!如果在挑选完美项目的过程中浪费了过多时间,那接下来你很有可能什么也学不到。

5.不断挑战难度更大的项目

不断提升项目的覆盖范围与难度。如果你对现有项目已经达到得心应手的水平了的话,那就应该进一步去挑战难度更大的问题。

当你抵达这一阶段时,可以试着思考下面的问题:

  • 试着教会一位新手如何构建你的项目。
  • 你的工具能不能在更大覆盖范围上成功应用?如果有更多数据,或需要应付更多流量,工具能否正常运行?
  • 程序能不能运行得更快?
  • 你的工具能不能满足更多人的需求?
  • 你该如何实现作品的商业化?

以上就是“学习 Python 的 5 个正确步骤”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值