最后的话
恭喜你读完了这本书!你现在应该对编程概念和 Auto 语言有了扎实的理解,并且了解了 Auto 代码如何通过 a2p 转译器转换为 Python。
你学到了什么
在本书中,我们涵盖了编程的核心概念:
- 值和类型: 整数、浮点数、字符串和布尔值。
- 变量: 存储值和更新值。
- 表达式和语句: 用运算符组合值,以及组织代码。
- 函数: 定义带有参数和返回值的可重用代码块。
- 条件语句: 使用
if、else if和else做出决策。 - 递归: 函数调用自身来解决问题。
- 迭代: 使用
for和while循环重复操作。 - 字符串: 处理文本,包括切片、方法和正则表达式。
- 列表: 将值存储在有序序列中。
- 字典: 将键映射到值以进行高效查找。
- 元组: 用于分组相关值的不可变序列。
- 文件: 从磁盘读取和写入文件。
- 类和对象: 定义带有属性和方法的自定义类型。
- 继承: 基于现有类型创建专门的类型。
在此过程中,你还学到了重要的编程实践:
- 增量开发: 每次构建程序的一小块。
- 封装: 将相关代码组织到函数和类型中。
- 泛化: 通过添加参数使代码更灵活。
- 重构: 重组代码使其更清晰、更可重用。
- 调试: 系统地发现和修复错误。
学会像程序员一样思考
学习编程不仅仅是记忆语法。它关乎学会像程序员一样思考 —— 将问题分解为更小的部分,识别模式,并清晰地表达解决方案。
你在本书中练习的技能 —— 分解、模式识别、抽象和算法设计 —— 是计算思维的基本技能。这些技能不仅对编程有价值,对解决许多领域的问题也很有帮助。
接下来做什么?
既然你已经掌握了基础知识,以下是一些你可以探索的方向:
深入 Python: a2p 转译器为你提供了 Auto 和 Python 之间的桥梁。随着你越来越熟练,你可能想探索 Python 的标准库,其中包括用于 Web 开发、数据分析、科学计算、机器学习等的模块。
其他 Auto 转译器: Auto 不仅限于 Python。通过 a2r(Rust)、a2c(C)和 a2ts(TypeScript),你可以将相同的编程概念应用到非常不同的语言和领域。本系列中的其他配套书详细展示了这些映射。
数据结构和算法: 本书介绍了基本的数据结构(列表、字典、集合、元组)。还有更多值得探索的结构,包括树、图、堆和哈希表。理解排序、搜索和图遍历等算法将使你成为更高效的程序员。
测试: 编写自动化测试是软件开发中最重要的技能之一。测试帮助你验证代码是否正确工作,并在你进行更改时捕获错误。Python 的 unittest 和 pytest 框架是很好的起点。
软件设计: 随着程序变得越来越大,你需要考虑设计 —— 如何将代码组织到模块中,如何管理依赖关系,以及如何设计易于使用且难以误用的 API。
调试策略
在本书的多个章节中,我们都提到了调试。以下是最重要策略的总结:
阅读错误信息。 回溯信息告诉你错误发生在哪里以及出了什么问题。仔细阅读它们 —— 它们通常包含你需要的信息。
复现 bug。 在尝试修复 bug 之前,确保你能一致地复现它。如果 bug 只是有时发生,尝试找出触发它的条件。
隔离问题。 使用二分查找:注释掉一半代码,看看 bug 是否仍然存在。如果是,bug 在另一半中。重复直到缩小范围。
打印语句。 添加打印语句是最简单的调试技术。在关键点打印变量的值,以检查它们是否符合你的预期。
检查类型。 许多 bug 是由类型错误引起的 —— 在需要整数的地方传递了字符串,或者在需要单个值的地方使用了列表。使用
type()来检查。使用 assert 语句。 断言检查程序中特定点的条件是否为真。如果条件为假,程序会立即停止,帮助你定位错误。
AI 工具
现代 AI 助手可以成为学习和编程的宝贵工具。以下是一些有效使用它们的方法:
- 理解错误: 当你遇到不理解的错误信息时,AI 助手可以解释它的含义并建议修复方法。
- 探索概念: 如果本书中的某个概念不够清楚,你可以让 AI 用不同的方式解释或提供更多示例。
- 代码审查: 编写函数后,你可以让 AI 审查它并提出改进建议。
- 生成测试用例: AI 助手可以帮助你考虑边界情况并生成测试输入。
但请注意其局限性:
- AI 助手可能生成不正确的代码。务必验证输出。
- 理解代码为什么工作比获得能工作的代码更重要。不要跳过学习过程。
- AI 助手不能替代阅读文档、编写测试和仔细考虑设计的需求。
社区资源
编程是一种社交活动。以下是一些与其他程序员联系的方法:
- 开源: 为开源项目做贡献是提高技能和处理真实世界代码的好方法。GitHub 是最受欢迎的开源协作平台。
- 在线社区: Stack Overflow、Reddit 和 Discord 等网站拥有活跃的编程社区,你可以在那里提问和帮助他人。
- 本地聚会: 许多城市有编程聚会和用户组,你可以在那里亲自结识其他开发者。
- 结对编程: 与另一个程序员一起处理相同的代码可以帮助你学习新技术并发现你可能会遗漏的错误。
最后的话
学习编程最重要的事情是练习。读这本书是一个好的开始,但只有通过编写代码、调试和构建东西,你才能成为一名熟练的程序员。
不要害怕犯错。每一个错误都是学习新东西的机会。你修复的每一个 bug 都让你成为一个更好的程序员。
继续编码,继续学习,继续享受乐趣。