Python学习路线图

近年来,随着人工智能等新技术的兴起,Python 正风靡世界。不少培训机构打出了“你要悄悄学Python,然后惊艳所有人!”的口号,亲是不是跃跃欲试呢?

为何而学

开始学习之前,我们需要先回答为何而学这个问题。试想,如果让你学一门可能永远都用不上的功夫,你多半不会有任何动力。那么,Python 可以做什么呢?学了 Python 可以带来什么收益呢?

首先,Python 是一门计算机编程语言,用于开发计算机程序。进入信息时代,计算机程序在越来越多的领域发挥着重大作用,将人从重复的劳动中解放出来,极大地影响我们的生活方式。

掌握程序开发,往大了说,我们可以开发一个 app ,甚至是一个类似淘宝、豆瓣那样的网站。对了,豆瓣网就是用 Python 开发的。往小了说,我们可以开发一些小工具,实现自动化处理,解放双手。

编程语言有很多,CC++Java 等等,Python 只是其中一种。不同的编程语言,有着不同的特性,特性决定能力范围。Python 与其他编程语言相比,语法灵活、表达力强、开发效率高、易于学习掌握,擅长的领域不少:

  • Python 可以开发 Web 网站,有不少成熟的 Web 框架,例如 flaskdjango 等等( Web工程师 );

  • Python 可以开发网络爬虫,从互联网收集各种各样的数据( 爬虫工程师 );

  • Python 可以开发分布式系统,结合数据库、消息队列等中间件实现数据高效处理( 后台工程师 );

  • Python 可以对接很多大数据处理框架,开发数据处理算子( 大数据工程师 );

  • Pythonmatlab 擅长的数值分析领域也占有一席之地,分析处理科研数据根本不在话下( 科研人员 );

  • Python 可以开发办公小工具,全自动实现数据获取、加工、保存( 办公人员 );

  • etc

不管是专业的软件研发工程师,还是普通的科研人员、办公人员,学习 Python 均可带来可观的收益。那么,您还等什么呢?赶紧学起来吧!

快速入门

万事开头难,学习 Python 也是如此。 那么,初学者沿着怎样的路线图学习,才能尽量少走弯路,达到事半功倍的效果呢? 接着,我结合自己多年的编程学习经验,说说我的体会。

零基础

如果你没有任何编程基础,我建议先选一些视频课程跟着学。 为什么呢?很多编程初学者,看书都有这么一种感觉:书上的每个字都认识,但连成一句话就完全不懂。 因为书本信息含量大,不可能事无巨细,对初学者不友好。

相反,视频课程承载的信息量更小,也更加形象易懂,可以帮助新手快速入门。那么,推荐哪些 Python 教程呢?

慕课网上有一个实战课程非常受欢迎:全面系统Python3.8入门+进阶。 这是一个面向初学者的课程,不仅详解语法,更会讲解 Python 的高级应用技巧,值得推荐。

另外,b 站上也有一些很不错的视频教程,最受网友们欢迎的应该是 [小甲鱼]零基础入门学习Python。 它同样面向初学者,从基础语法开始,并以一个飞机大战游戏结尾,内容也相当丰富。

系统学习一个完整的视频课程后,你应该具备了最基本的 Python 编程能力, 知道怎么搭建 Python 环境,知道用什么编辑器编写 Python 代码,知道怎么调试并运行 Python 程序, 为下一阶段的学习打下坚实的基础。

有编程基础

如果你已经有一些编程经验,入门 Python 就只是小菜一碟了。由于您可以轻松看懂 Python 入门书籍或者官方文档,本阶段不建议再通过视频课程来学习。这又是为什么呢?

视频教程虽然形象易懂,但是承载的信息量非常有限。一个简单的知识点在视频中可能要讲解 15 分钟,这样的学习效率显然不高。 相反,书中同样的 15 分钟,能学到的内容更多。 此外,书本可以承载更有深度的高级知识点,进阶学习离不开书本。

因此,出于 学习效率 以及 学习深度 方面的考虑,新手要尽快摆脱对视频课程的依赖,及早切换到书本学习模式。 那么,入门 Python 程序开发,推荐看什么书籍或者文档呢?

首先,推荐豆瓣评分高达 9.1 的 《Python编程》。 这本书面向初学者,分为 基础知识项目实战 两部分。

../../_images/1c8eee49e1d30cfdf0a383931774eb27.png

基础知识部分系统讲解了 Python 的语法,涵盖数据类型、if判断、循环、函数以及类等基本概念。 经过基础知识部分学习,新手可以快速掌握编写 Python 程序的能力,打开 Python 程序开发之门。

项目实战部分则通过 3 个小项目,介绍 Python 的典型应用开发。项目也经过精心挑选,极具代表性:

  • 游戏项目:外星人入侵

  • 数据可视化

  • Web应用程序

这也是本书颇具特色的地方,它并不拘泥于枯燥的基础语法讲解,而是结合实际项目实践,充分体现学以致用的理念。 在本书的指导下,读者可以模仿着开发一些属于自己的小应用,相信会更有成就感,充满动力。

请注意,这是一本入门教材,无法做到面面俱到。实际上,它只介绍了最基本的知识点,而且浅尝辄止。因此,如果只学习本书,是远远不够的。 它将我们领入 Python 之门,并打下一定的基础,为下一阶段学习提供一个很好的起点。

夯实基础

经过入门阶段,初学者可以快速形成 Python 开发能力。 为避免打击学习信心,入门阶段对学习内容做了取舍,仅介绍最基本,最简单的编程概念,内容相对比较单薄。 为强化 Python 开发能力,有必要对 Python 语法、高级特性以及标准库进行全面细致的学习。

开始介绍本阶段学习资料和学习方法之前,我要特别强调一下英语阅读能力的培养。

英语阅读能力

众所周知,计算机技术在美国兴起,与英语有着千丝万缕的关系。 Python 中的很多关键词,例如 forwhileclass 等等,本身就是一个英语单词。 此外,很多行业规范和接口文档都是用英语撰写的。 因此,想要从事计算机技术行业,流畅英语阅读能力是必不可少的。

你可能会说,英语技术书有中译版,很多开源项目文档也有中文版本,为什么非得有英文阅读能力呢?

  • 不少中译版翻译生硬,甚至是不准确,严重影响阅读;

  • 中译版问世时间一般较晚,学习新技术就只能靠原版了;

  • 不是所有所有东西都有中译版的,例如:源码中的注释,一般是没有中文版本的;

那么,如何培养英语阅读能力呢?我个人的心得只有 坚持 二字。我在大学时代,看了不少技术书,而且坚持看原版。 我也有很多单词不认识,就查词典。几年下来,积累了不少专业词汇,形成了相对顺畅的英文阅读能力。

一开始需要频繁查字典,学习效率会比较低。任何学习过程,都会经历缓慢的初级阶段。只要坚持下去,效率会有明显改观。如果一碰到一点困难就想要放弃,最终将一事无成。

近些年,科技给我们带来不少学习神器,翻译笔 就是其中一个。 我最近也买了一个,真的非常好使。不认识的单词拿笔扫一下就知道了。 这效率与查词典相比,提升是划时代的。强烈推荐您也买一个,不要心疼这区区几百块钱,您的时间更值钱。

  • 坚持;

  • 借助科技的力量,提升学习效率;

言归正传,本阶段要学习哪些内容,以进一步夯实 Python 编程基础呢?我建议从这两方面出发:

  • 全面系统学习 Python 语法与高级特性;

  • 全面系统学习 Python 标准库以及受欢迎的第三方包;

语法特性学习

首先,推荐 Python核心编程 。 这是一本 Python 百科全书,事无巨细地介绍了 Python 所有语法特性以及一些常用的标准库。 吃透这本书后,你将彻底拿下 Python 这门编程语言。

../../_images/2a874be85431408c39a31a1adae9d353.png

由于本书罗列了大量的知识点,有如字典般枯燥,没有一定的毅力是拿不下的。 建议制定一个学习计划,每天拿下几个知识点,持之以恒,必有达到终点的那一天。

在学习的过程中,力求理解每个知识点,但没必要强迫自己一下子记住所有内容。 无论是谁,想在短时间内记住这么多知识点,都不太现实。因此,确保能理解每个知识点即可,就算记不住也没有关系。

本书完整学完后,还可作为速查手册使用。 当你在开发某个 Python 程序时,如果有些知识点记忆模糊,可以快速翻看。 记忆在不断实践中悄悄形成,你用多了也就记住了。

另外,在学习的过程中,开动脑筋想一想——这个特性可以用来设计什么功能呢? 然后尝试着写程序来实现自己的想法,这样更有针对性,也更能获得成就感。

最后提下醒,Python 在快速发展中,选书的时候请认准最新版,才能最大程度地涵盖 Python 最新特性。截止本文撰写时,Python核心编程最新版本是 第3版

标准库学习

Python 有一个非常强大的标准库,社区生态也很完善。 利用标准库以及第三方包编写程序,就像站在巨人肩膀上做开发,事半功倍。 建议大概浏览一下标准库,看它都提供了哪些工具。不然有现成的工具都不知道,这就尴尬了。

那么,学习 Python 标准库,推荐看哪些资料呢?我认为最好的学习资料,就是官网上的 Python标准库文档Python 标准库文档非常完善,对功能分门别类,尽然有序。接口参数、返回值描述也很细致,还列举了不少例子。

建议先照着目录,浏览一遍标准库提供的所有模块,明确每个模块功能。 对一个模块的学习可以不用很细致,大致了解它的功能用法即可。 而在程序开发过程中,如果需要用到某个模块,利用搜索引擎即可快速查阅详细文档。

在学习过程中,建议通过 思维导图 等工具,梳理知识脉络。例如,下图梳理了 Python 标准库常用模块:

../../_images/dbbb55a1bc32de9e76f499d6465c4927.svg

出于开发效率和代码质量考虑,建议动手开发前先调研标准库或其他第三方包是否提供类似功能,避免重复造轮子。 而在学习过程中,则需要保持好奇心,思考类库内部可能是如何实现的。 甚至可以模仿类库自己开发一遍,这对提高自己的编程能力非常有效。

学以致用

在学习路上,如果一味钻研枯燥的知识点,兴致慢慢会被消磨殆尽。

学习是为了应用。如果可以利用学到的知识,开发出一些小应用,哪怕是小玩具,可以带来不少乐趣。 那么,问题来了, Python 典型应用程序示例上哪找呢?推荐 《Python Cookbook》 ,豆瓣评分也很高。当前最新版本是 第3版

../../_images/8d078de9139129fae3288dd253628949.png

本书覆盖了 Python 应用中的很多常见问题,并提出了通用的解决方案。 书中包含了大量实用的编程技巧和示例代码,可以很方便地应用到实际项目中去。 学完本书,你就知道怎么“做 Python 菜”了!

这本书同样适合作为开发工具使用,遇到某个场景不知如何处理,翻看一下就可以找到不错的例子程序来参考。

未完待续…

更多章节

洞悉 Python 虚拟机运行机制,探索高效程序设计之道!

到底如何才能提升我的 Python 开发水平,向更高一级的岗位迈进? 如果你有这些问题或者疑惑,请订阅我们的专栏,阅读更多章节:

https://cdn.fasionchan.com/python-source-course-qrcode.png

附录

订阅更新,获取更多学习资料,请关注我们的 微信公众号

微信搜索:小菜学编程

创作不易,如果觉得我们写得还行,就请我们喝杯咖啡吧😋

微信搜索:小菜学编程