学习完Python基础后,我接下来应该做什么?
本文将探讨学习完Python基础后,可以学习哪些内容。
掌握Python基础的初学者往往倾向于数据科学和机器学习领域。数据科学是一个不同的主题,需要专门的教学和学习。在网页抓取方面,Python是一个非常有用的工具。网页抓取是其未被充分利用的应用之一。Python专家可以从网站中提取大量数据。
尽管被认为是初学者语言,但Python基础课程也帮助专业开发人员和程序员处理各种科学应用。
人工智能
人工智能软件不同于其他类型的软件,它需要一种线性且一致的语言。这里Python就发挥了作用。Python是唯一一种吸引人工智能软件的编程语言。
Python拥有一个非常活跃的社区。它有一个专门的库,旨在帮助对人工智能和机器学习感兴趣的初学者。在学习Python时,大多数开发人员已经知道自己想要达到的目标。Python基础为你的思考提供了结构。
现实世界中的应用
对于所有Python新手来说,最好的消息是,这种语言的应用在我们周围随处可见。这些技术直接应用于软件,带来即时的乐趣。Python主要是一种初学者语言,但也可以供那些不打算成为开发人员的人学习。像编码一样,学习Python既是一种爱好,也是一项良好的职业技能。
在各种平台上练习编码
编码需要始终练习。
可以通过使用各种编码平台(例如HackerRank、Codechef等)获得持续的练习。
这样你才能熟练掌握这门语言。
然后尝试自己构建一些小型项目。
练习和项目
如果你熟悉编程概念和Python语法,练习是检验你知识的好方法。你用来学习Python的资源几乎总是包含练习,所以这些将是一个不错的初始选择。我还建议使用下面列出的资源来磨练你的技能。
如果你遇到困难,请重新阅读相关资料,进行在线搜索,寻求澄清等——简而言之,尝试解决它。跳过某些难题是可以的(如果你有时间,可以稍后再返回),但你应该能够解决大多数初学者问题。记笔记和备忘单也会有所帮助,尤其是在处理常见错误时。
Exercism、Hackinscience 和 Practicepython——这些都对初学者友好,并且标注了难度等级
100页Python入门练习——来自我的入门指南的练习题
Adventofcode、Codewars、Python Morsels——包含更多针对中级到高级用户的挑战性练习
Checkio、CodinGame、CodeCombat——基于游戏的挑战
/r/dailyprogrammer——目前不活跃,但有大量过去的挑战和讨论
项目是在你掌握了基础知识和语法之后才会出现的。我们构建了一段10行的代码来处理一个常见问题——添加body { text-align: justify }:将epub文件从非对齐改为对齐。我们当时并不知道这行代码会派上用场。我们在网上找到了一个解决方案,然后自动化了解压epub、插入代码行和重新打包的过程。
你可能需要搜索文档并阅读一些StackOverflow的问答。当你定期使用该解决方案时,你肯定会遇到极端情况和需要引入的功能。这是一种学习和掌握编程的绝佳方法。
现在我们使用了一个更高级的EPUB阅读器,它允许我们自定义对齐方式。这是另一个来自现实生活的例子。我们在Linux上运行,并且经常使用终端。我们需要一个命令行工具来执行简单的计算。有bc命令,但它不接受直接的字符串参数,并且需要你设置比例和其他参数。因此,我们查找了如何在Python中构建CLI工具,并使用内置的argparse模块创建了一个适用于我们特定用例的工具。
以下是一些帮助你开始项目的资源:
Python项目实践——我关于初学者到中级项目的一本书
附带解决方案的项目——算法、数据结构、网络、安全、数据库等
基于项目的学习——网络应用程序、机器人、数据科学、机器学习等
Peter Norvig的Pytudes——Python程序,通常很短,但难度很大
书籍:
调试
了解如何调试程序非常重要,最好从一开始就学习,而不是作为书本最后的一个章节。将Python作为一个这样的资源材料的绝佳示例。
像 Pythontutor 这样的网站可以帮助你直观地调试程序——你可以一步步运行它并观察变量的当前值。像Pycharm和Thonny这样的IDE通常包含类似的功能。这些可视化是由pdb模块驱动的。此外,请参阅使用pdb进行Python调试。
调试可能是一项非常令人沮丧的任务。休息一下是有益的(有时我们会在梦中找到解决方案或发现问题)。尽可能减少代码,以便只剩下复制问题所需的最小代码。与朋友讨论问题等也可能有所帮助——这被称为橡皮鸭调试。我们经常在编写要发布到StackOverflow/Reddit等网站上的问题时发现问题,因为写下你的问题是提供清晰度的另一种方法,而不是仅仅在脑海中有一个模糊的想法。
测试
了解如何编写测试是编程旅程的另一个重要组成部分。在大型项目中,通常会分配额外的工程师(通常远远超过代码开发人员)来测试代码。即使在这些情况下,编写一些健全性测试用例也可以帮助你更快地开发,因为你会知道更改不会破坏基本功能。
在测试方法论方面,没有单一的共识。有各种类型的测试,例如单元测试、集成测试和测试驱动开发。通常会使用这些方法的组合。机器学习现在被用于缩短测试时间,如 使用机器学习更有效地测试Firefox 所示。
对于非平凡的项目,通常需要像内置模块unit test或第三方模块pytest这样的框架。
以下是一些有用的学习资源:
obeythetestinggoat——Web的测试驱动开发,使用Python、Selenium、Django、JavaScript及其伙伴
Python中的现代测试驱动开发——测试驱动开发指南,包含一个现实世界的应用示例
总结
本文介绍了在掌握 Python 基础知识后可以学习哪些内容,并提供了多个学习资源。