MP4 |视频:h264,1280×720 |音频:AAC、44.1 KHz、2 Ch
类型:电子学习 |语言: 英语 |时长:10节课(34小时56分钟)
概述
我已经编程了 30 多年,自然这可能会给你这样的印象:我已经弄清楚了一切 – 你会错的。本课程是一次实用的旅程,深入了解我在问题解决、编程、测试和设计方面学到的有趣且有用的知识。这也是一门关于当前编程主题的课程,我仍在学习与所有这些事情相关的内容。最终,这是一门关于制作更好的软件的课程,但也拥抱灵活和为未来编写代码的理念。
主要科目包括数据抽象、分层、面向对象、函数式编程、事件驱动系统、问题建模、测试和轻量级程序验证技术。然而,本课程更大的主题涉及“可组合性”的概念。我们在现代编程中所做的大部分工作并不是由编写低级算法的需要驱动的。相反,我们经常需要将现有组件组合在一起以形成更大的系统。这样做时,思考各个部分如何相互作用以及我们的设计选择如何对整体产生深远的影响是很有用的。最终的目标是管理软件复杂性并在您自己的项目中做出明智的选择。
我为什么要学习这门课程?
有很多书籍、课程和教程都专注于“高级外观”编程。这些通常侧重于理解孤立的(通常是深奥的)编程语言功能、库和框架。这不是本课程的重点。相反,我们的重点是高级编程概念,并对编程本身的实践提出更深层次的问题。最终目标是编写看起来简单的软件,因为它已经投入了一些思考。
目标受众和先决条件
本课程面向想要改进大型库和应用程序编码的程序员。其中大部分涉及思考“大局”问题,例如如何将此类系统的各个部分组合在一起、如何测试它们等等。由于本课程是用 Python 教授的,因此您应该能够轻松地使用 Python 的内置类型、编写函数和定义简单的类。无需深入了解“高级”Python 功能。我还假设典型的“算法”课程中可能涵盖常见数据结构和算法的一般知识。
指令格式
本课程主要侧重于实践编程和小组讨论。该课程由大约 10 个编码项目组成,探索编程、问题解决和设计的不同方面。
主题概述
本课程旨在涵盖以下核心主题
编程的要素:回顾有关编程、问题解决和抽象的一些基本思想。
数据抽象:数据结构原理、数据封装、分层以及操作数据时使用的 Python 协议/魔术方法。
接口:基于数据抽象的思想,我们探讨了思考接口的重要性。在编写应用程序时,您选择拥有自己的抽象还是使用已经提供的抽象?
使用对象编程:何时以及如何在程序中有效地使用类定义。本节的主要重点是模块化设计、管理类之间的关系以及控制复杂性。这包括继承、组合和常见的设计习惯。另外,设计可测试性代码。
事件驱动编程:某些问题,尤其是分布式系统中的问题,通常由状态机和事件驱动系统来描述。本节重点介绍此类系统的实施和测试策略。
函数式编程:使用函数作为问题解决和抽象的基础。主题包括高阶函数、闭包和函数组合。还讨论了与 API 设计、错误处理和异常相关的困难。还介绍了包括组合器和单子在内的许多高级概念。
高级测试策略:测试是软件开发的重要组成部分,大多数程序员都熟悉单元测试等概念。然而,有时您会遇到异常复杂的问题,无法使用更传统的测试方法。在整个课程中,我们将探索测试的不同方面,包括具有不变量的防御性编程、随机测试、模型检查/验证以及求解器的使用。主要重点是设计可以通过多种方式进行有效测试的软件。
以问题为中心的编程:解决问题时
MP4 |视频:h264,1280×720 |音频:AAC、44.1 KHz、2 Ch
类型:电子学习 |语言: 英语 |时长:10节课(34小时56分钟)
概述
我已经编程了 30 多年,自然这可能会给你这样的印象:我已经弄清楚了一切 – 你会错的。本课程是一次实用的旅程,深入了解我在问题解决、编程、测试和设计方面学到的有趣且有用的知识。这也是一门关于当前编程主题的课程,我仍在学习与所有这些事情相关的内容。最终,这是一门关于制作更好的软件的课程,但也拥抱灵活和为未来编写代码的理念。
主要科目包括数据抽象、分层、面向对象、函数式编程、事件驱动系统、问题建模、测试和轻量级程序验证技术。然而,本课程更大的主题涉及“可组合性”的概念。我们在现代编程中所做的大部分工作并不是由编写低级算法的需要驱动的。相反,我们经常需要将现有组件组合在一起以形成更大的系统。这样做时,思考各个部分如何相互作用以及我们的设计选择如何对整体产生深远的影响是很有用的。最终的目标是管理软件复杂性并在您自己的项目中做出明智的选择。
我为什么要学习这门课程?
有很多书籍、课程和教程都专注于“高级外观”编程。这些通常侧重于理解孤立的(通常是深奥的)编程语言功能、库和框架。这不是本课程的重点。相反,我们的重点是高级编程概念,并对编程本身的实践提出更深层次的问题。最终目标是编写看起来简单的软件,因为它已经投入了一些思考。
目标受众和先决条件
本课程面向想要改进大型库和应用程序编码的程序员。其中大部分涉及思考“大局”问题,例如如何将此类系统的各个部分组合在一起、如何测试它们等等。由于本课程是用 Python 教授的,因此您应该能够轻松地使用 Python 的内置类型、编写函数和定义简单的类。无需深入了解“高级”Python 功能。我还假设典型的“算法”课程中可能涵盖常见数据结构和算法的一般知识。
指令格式
本课程主要侧重于实践编程和小组讨论。该课程由大约 10 个编码项目组成,探索编程、问题解决和设计的不同方面。
主题概述
本课程旨在涵盖以下核心主题
编程的要素:回顾有关编程、问题解决和抽象的一些基本思想。
数据抽象:数据结构原理、数据封装、分层以及操作数据时使用的 Python 协议/魔术方法。
接口:基于数据抽象的思想,我们探讨了思考接口的重要性。在编写应用程序时,您选择拥有自己的抽象还是使用已经提供的抽象?
使用对象编程:何时以及如何在程序中有效地使用类定义。本节的主要重点是模块化设计、管理类之间的关系以及控制复杂性。这包括继承、组合和常见的设计习惯。另外,设计可测试性代码。
事件驱动编程:某些问题,尤其是分布式系统中的问题,通常由状态机和事件驱动系统来描述。本节重点介绍此类系统的实施和测试策略。
函数式编程:使用函数作为问题解决和抽象的基础。主题包括高阶函数、闭包和函数组合。还讨论了与 API 设计、错误处理和异常相关的困难。还介绍了包括组合器和单子在内的许多高级概念。
高级测试策略:测试是软件开发的重要组成部分,大多数程序员都熟悉单元测试等概念。然而,有时您会遇到异常复杂的问题,无法使用更传统的测试方法。在整个课程中,我们将探索测试的不同方面,包括具有不变量的防御性编程、随机测试、模型检查/验证以及求解器的使用。主要重点是设计可以通过多种方式进行有效测试的软件。
以问题为中心的编程:解决问题时
其他信息
下载版本
| 版本 | 兼容平台 | 语言 | 大小 | 更新时间 | 下载 |
|---|---|---|---|---|---|
| 2025 | 英文 | 2.69GB | 2025-09-16 |
温馨提示:本资源来源于互联网,仅供参考学习使用。若该资源侵犯了您的权益,请联系我们处理。


评分及评论
暂无评分
来评个分数吧