关于进阶这件事,这位 Python 大佬有话说
上世纪 90 年代末,一位爱看计算机杂志的骄傲少年在机缘巧合下,参加了一场技术聚会。
“当时我就震惊了!”这位少年后来说道。除了自己,他发现聚会上的其他人似乎都学识渊博。关于那些被热烈讨论的编程知识,他只能点头附和,完全插不上话。
回到家后,这位少年下定决心要恶补编程知识,至少要在下一次聚会时插得上话啊!
日复一日、月复一月,他在浩瀚的代码海洋里挣扎。当下一次技术聚会终于来临时,他仍然只能点头附和。
正所谓学海无涯,上岸太难……
所幸,这位少年最终脱离了苦海,并成长为 Python 意见领袖。他就是 Al Sweigart。
Python 大佬 Al Sweigart
要说 Python 社区的大佬,Al Sweigart 绝对算得上一位。他是 Python 软件基金会的 Fellow,也是非常活跃的 Python 知识传播者。
Al Sweigart 的 YouTube 频道有 10 万以上的粉丝,他的 Python 在线课程则已覆盖全球 100 万以上的学生。或许,你更熟悉他的 Python 入门书《Python 编程快速上手》(Automate the Boring Stuff with Python)——原版封面上写着销量已超 50 万册。
但正如他说的,即便是他自己,在试图沿着编程之路走得更远时,也难免磕磕绊绊。
“软件开发远不止循环和函数。一旦你学完入门教程或者读完编程入门书,试图探寻进阶法门时,却总是会兜兜转转找到另外一个 Hello World 级别的入门引导。你在不同的学习材料之间漫无目的地徘徊,感觉自己毫无长进。你早就不是初学者了,但经验又少得可怜,根本没法处理复杂一些的问题。”
Al Sweigart 太熟悉这种感觉了。他把这个阶段称为程序员的“绝望沙漠”。
如果你正艰难地行走在这个“绝望沙漠”中,那么好消息是,Al Sweigart 专门写了一本书来引领你找到走出沙漠的路。
这本书适合谁
这本书旨在成为你在 Python 进阶路上的引路人。
如果你刚学完《Python 编程:从入门到实践(第 2 版)》(蟒蛇书)或者 Al Sweigart 的 Python 入门书《Python 编程快速上手》,渴望进一步提升 Python 知识,那么你就是这本书的最佳读者。
你可以学到什么
01 正确提问
哎呀!你好不容易写的程序又报错了。这个时候,你很容易对计算机产生怨气。虽然花了几个月的时间学习 Python,但仍需要频繁地从网上搜索答案,这很容易让人产生挫败感。
不过请记住,即使是专业的程序员,也需要通过在网上搜索或者查阅文档来解决编程中遇到的麻烦。
Stack Overflow 的调查甚至显示,有 62%的程序员每天会花半小时以上的时间在网上查找解决问题的方法[1]。
如果理解 Python 的报错消息,并高效地在网上寻求帮助,绝对值得好好学习。这本书用了一章的篇幅来帮你获得这项必备技能。
02 写可读性强的代码
如果你发现同事写了一个名为 gooseDownload() 的函数,你会作何反应?你们的项目准备提供大鹅下载功能吗?当然不是!
Al Sweigart 在书中讲了他的亲身经历。原来,写这个函数的同事希望通过该函数加快产品的下载速度,而少有人知道,goose 可以作为动词,比如 goose the engine 的意思是让发动机转得更快。
命名有什么讲究,又有什么陷阱?在为变量、函数、类等编程中的元素命名时,简洁而有描述意义的名称能够大大提升程序代码的可读性。这其中有哪些巧妙的方法?
Al Sweigart 在这本书中为你娓娓道来。
03 代码的底层逻辑
Al Sweigart 在书中使用了 Python Tutor,这是一个便捷的在线代码可视化工具,可以帮助你逐行理解代码的底层逻辑。来看一个例子。
04 更多内容助你从新手到高手
向上滑动阅览目录
第一部分 起步
第 1 章 处理错误和寻求帮助
第 2 章 环境设置和命令行
第二部分 最佳实践、工具和技巧
第 3 章 使用 Black 进行代码格式化
第 4 章 选择易懂的名称
第 5 章 揪出代码的坏味道
第 6 章 编写 Python 风格的代码
第 7 章 编程术语
第 8 章 常见的 Python 陷阱
第 9 章 Python 的奇特难懂之处
第 10 章 编写高效的函数
第 11 章 注释、文档字符串和类型提示
第 12 章 通过 Git 管理项目
第 13 章 性能测量和大 O 算法分析
第 14 章 项目实战
第三部分 面向对象的 Python
第 15 章 面向对象编程和类
第 16 章 面向对象编程和继承
第 17 章 Python 风格的面向对象编程:属性和魔术方法
业内佳评
“对于 Python 新手,如果想让自己更上一层楼,那么这是难得的进阶书。”
——Kushal Das
CPython 核心开发者
Python 软件基金会董事
“这本书聚焦于三个主题:解决初级进阶的重重困难;Python 实践、工具和技巧;面向对象编程。相比从多个学习资源中挖掘知识,读这本书更有用。”
——Serdar Yegulalp
InfoWorld 专栏作家
[1]参考资料:https://survey.stackoverflow.co/2022/
头图:freepik.com
评论