为什么不推荐 Python 初学者直接看项目源码
![为什么不推荐Python初学者直接看项目源码](https://static001.geekbang.org/infoq/02/02c106b06dc00d0210ed7d1e10ba7a2c.jpeg)
无论是有没有其他语言的经验,入门 Python 都很简单。Python 拥有简单直观的语法,方便的语法糖,以及丰富的第三方库。只要一个基础的 Python 教程,大家基本上都能无障碍的入门。在入门之后,很多人对于进一步学习的建议都是“做项目”、“看源码”,然而这样的建议实际是较难实现的,自己执行的效率会很低。
“这种时候如果有整理好的 Python 代码片段,如果有指导分析优秀开源代码的教程就好了。”
抱着这样的想法,我开始从自己“低效”的学习中,整理“高效”的干货,希望能够帮助到各位初学者。这就是“Python 代码阅读”系列。
在这个系列中,最开始是大量 Pythonic 的代码片段,不仅展示了如何应用 Python 语法和标准库,还展示了一些有趣的技术和思维方式。
后续计划增加 GitHub 上流行的简单 Python 项目。以及一些小型的实用系统的实现。
通过下面的链接就可以进入到“Python 代码阅读”系列合集的施工现场。
初学 Python 的常见问题
对于初学者而言,Python 入门很简单。入门之后只靠基础语法也完全可以做到平时写写脚本,解决自己工作、生活上的重复性劳动。想要什么功能,基本上都能找到方便的库。在只求应用,不求理解的情况下,很快就能实现日常表格处理、文件下载、邮件发送等功能。甚至像图像处理、OCR 这样“高端”的功能也有对应的工具库可以使用。
但是做到这种程度只是小打小闹,想要真正的在开发工作中使用 Python 语言,或者是在 GitHub 上贡献开源代码,都是远远不够的。这时候,初学者的常见问题主要集中在以下四点:
学会了语法,但是不会应用。
仍然是用其他语言的逻辑在写 Python 代码,不是 Pythonic 的代码。
Python 项目结构不合理。
缺少对更深入主题的研究,例如装饰器、异常处理、多进程多线程、设计模式等。
传统建议的解决方案
对于已经了解基础语法,学习了 Python 基础数据结构的初学者,传统的建议是做项目、看源码。这样的建议不能说不正确,但是在执行起来会有各种各样的问题,从而导致学习效率低下。
首先聊一下做项目
对于初学者而言,应聘到一个使用 Python 语言做开发的团队显然是不现实的。那么基本上项目的来源就是自己找的练手课题或者在 GitHub 上参与开源项目。
自己找个项目进行练手可以说是效果最差的方式了。它实际上还是摸着石头过河,接触不到优秀的源码和实现方法,也没有人指导。最终也只是实现了功能而已,不论是代码设计还是项目结构,都是闭门造车,提升有限。最大的作用也就是提高对语法、基本数据结构和标准库的熟练程度。
至于在 GitHub 上找项目,一般新手能够找到的优秀项目基本上都已经过了初始阶段。在这种情况下,对于初学者而言,加入维护的难度较大,能够做的工作更多的只是一些小 bug 的发现和修复,甚至于只能从文档方面开始。
然后聊一下看源码
对于初学者而言,虽然直接看源码复杂度较高,但是只要肯下功夫,用好搜索引擎,大部分功能性的源码还是可以看懂的。不过如果没有人指导的话,效率肯定是不高的。同时很可能只是看懂逻辑,明白了功能如何实现。如果没有一定的设计模式等知识的基础,难以发现和理解代码的设计思路和原因。实际“看源码”的作用就少了一半,得不到精华。
我的方法
我的方法也是从传统的方法里面来的。说白了就是自己受苦,自己从“低效”的“看源码”和“做项目”的学习中,整理“高效”的干货,挑选合适的源码和项目,配上合适的讲解,从而可以更好的被初学者接受,提高学习效率。
这就是“Python 代码阅读”系列。
目前该系列还在努力连载施工中,通过下面的链接就可以进入到“Python 代码阅读”系列合集的施工现场。
“Python 代码阅读”系列首先从简单实用的函数开始,聚焦单一功能性的函数。不仅展示了如何应用 Python 语法和标准库编写足够 Pythonic 的代码,还展示了一些有趣的技术和思维方式。同时这些代码片段也具备很高的实用性,我自己平时也会在其他项目中使用到。
后续的计划是增加 GitHub 上兼具实用性和趣味性的优秀 Python 项目的源码解读。从项目结构开始梳理,理清功能和逻辑,讲解代码设计和实现。
同时也计划增加一些趣味的小型系统的实现。例如小型区块链、数据库、docker、git 甚至是编程语言等。通过一步一步的实现这些系统,不仅能够学习到 Python 编程,还能学习到这些系统的设计理念和内部实现逻辑。
施工进度与地点
目前“Python 代码阅读”系列还处于第一阶段的编写中,也是最适合刚刚进行完 Python 基础语法学习的初学者的部分。系列中展示的代码片段可以尽快让初学者掌握如何应用 Python 语法和标准库,同时其实用的功能性,也可以在以后的开发中用到。
通过下面的链接就可以进入到“Python 代码阅读”系列合集的施工现场。
评论