
# 🌍 Software Engineering — The Easy Way
### 用最朴素的大白话讲清楚软件工程
[](https://github.com/thetpmguy/software-engineering-the-easy-way/blob/main/LICENSE)
[](https://github.com/thetpmguy/software-engineering-the-easy-way/graphs/contributors/)
[](https://github.com/thetpmguy/software-engineering-the-easy-way/issues/)
[](https://github.com/thetpmguy/software-engineering-the-easy-way/pulls/)
[](../../CONTRIBUTING.md)
[](https://github.com/thetpmguy/software-engineering-the-easy-way/watchers/)
[](https://github.com/thetpmguy/software-engineering-the-easy-way/network/)
[](https://github.com/thetpmguy/software-engineering-the-easy-way/stargazers/)
**一门为"听不懂技术黑话"的人准备的完整软件工程课程 —— 现在听不懂,学完就懂了。**
*不需要经验。不需要昂贵的电脑。不需要数学学位。*
🌐 多语言支持
课程由社区志愿者翻译 —— 下面所有语言的课程主页都已就绪,完整课程内容正在陆续翻译中。 来帮忙翻译吧!
🚧 课程内容目前还是英文 —— 主页已翻译,让你先看看学完能收获什么。帮忙把课程翻译成你的语言:如何参与翻译
如果你能读懂这一页,你就能学完这门课。学到最后,你将真正明白软件是怎么运转的,会写出你的第一批程序,发布一个真实的网站,并且能在任何技术对话里从容应对 —— 全部用最朴素的大白话,配上日常生活中的比喻来讲解。
🤔 这门课适合谁?
- “我每天都在用各种应用,却完全不知道这些东西到底是怎么运作的。”
- “我和工程师一起工作(作为经理、设计师、创始人、律师、医生……),我受够了在会议上只能点头附和。”
- “我想转行进入科技行业,但每一门课都默认我已经懂一些我根本不懂的东西。”
- “我只是好奇,我周围的数字世界是怎么搭起来的。”
没有任何前置要求 —— 我们会解释一切,连”文件(file)”到底是什么都会讲清楚。
🎓 你将学到什么
- 计算机、软件、互联网、数据库(database)、云(cloud)和人工智能到底是怎么工作的。
- 如何读写简单的 Python 程序。
- 如何像专业人士一样使用 Git 和 GitHub(你会发布一个属于自己的、真实上线的网站)。
- 真实的软件团队是如何规划、开发、测试并发布产品的。
- 如何与工程师平等对话 —— API、服务器(server)、缺陷(bug)、部署(deploy)、冲刺(sprint),统统给你讲明白。
我们不会讲的东西: 高等数学、特定的企业级工具,以及各种炒作。每一个比喻我们都会诚实地告诉你它在哪里”不成立”,而讲人工智能的那一章会坦诚地说明它的局限。
🚀 如何开始
- ⭐ 给这个仓库点个 Star,方便你随时找回来。
- 阅读 START HERE(从这里开始)(5 分钟)—— 了解课程如何运作,以及你需要哪些免费的浏览器(browser)工具。什么都不用安装。 每个实验都能在浏览器里跑,手机上也行。
- 从 模块 01 开始 —— 或者从 学习路径 里挑一条捷径(”我只有一个周末”、”我管理工程师”、”我只关心人工智能”……)。
- 被某个词卡住了?术语表 用一句大白话解释每一个术语。
老师和学习小组: 一切内容都可依据许可证自由复用。 Fork(复刻)这个仓库,把它改造成适合你课堂的样子。
📚 课程大纲
每个模块都包含一节大白话课文、一个浏览器里就能做的实验、一份用来自测的测验,以及一批精选的免费延伸资料。请从上往下学 —— 每个模块都建立在前一个之上。
| # | 模块 | 课文 | 实验 | 测验 | 延伸 |
|---|---|---|---|---|---|
| I | 机器 🖥️ —— 发光的矩形里面到底是什么 | ||||
| 01 | 计算机到底是什么? | 课文 | 实验 | 测验 | 链接 |
| 02 | 软件(software)是什么? | 课文 | 实验 | 测验 | 链接 |
| 03 | 互联网是怎么工作的 | 课文 | 实验 | 测验 | 链接 |
| II | 像工程师一样思考 🧠 —— 思维方式占了这份工作的 80% | ||||
| 04 | 如何像程序员一样思考 | 课文 | 实验 | 测验 | 链接 |
| 05 | 你的第一段代码(Python,就在浏览器里) | 课文 | 实验 | 测验 | 链接 |
| 06 | 数据(data):世界的新石油 | 课文 | 实验 | 测验 | 链接 |
| III | 真实的软件是怎么造出来的 🏗️ —— 从一张便利贴到应用商店 | ||||
| 07 | 从想法到应用:软件开发生命周期(software development lifecycle) | 课文 | 实验 | 测验 | 链接 |
| 08 | Git 和 GitHub:团队协作的时光机 | 课文 | 实验 | 测验 | 链接 |
| 09 | 软件为什么会坏:缺陷(bug)、测试与质量 | 课文 | 实验 | 测验 | 链接 |
| 10 | 一个应用的解剖:前端(frontend)、后端(backend)与 API | 课文 | 实验 | 测验 | 链接 |
| IV | 计算机科学,去掉吓人的数学 🔬 —— 那些著名的思想,讲得有人情味 | ||||
| 11 | 用大白话讲算法(algorithm)与数据结构 | 课文 | 实验 | 测验 | 链接 |
| 12 | 数据库(database):一切数据住的地方 | 课文 | 实验 | 测验 | 链接 |
| 13 | 操作系统(operating system)与网络(network):看不见的管理员 | 课文 | 实验 | 测验 | 链接 |
| 14 | 安全(security):锁、钥匙与数字自卫术 | 课文 | 实验 | 测验 | 链接 |
| V | 现代软件世界 ☁️ —— 把新闻里的热词一一破译 | ||||
| 15 | 云(cloud):租用别人的电脑 | 课文 | 实验 | 测验 | 链接 |
| 16 | 人工智能与机器学习(machine learning),不带炒作 | 课文 | 实验 | 测验 | 链接 |
| 17 | 网站、应用与其他一切 | 课文 | 实验 | 测验 | 链接 |
| VI | 人与职业 🧑🤝🧑 —— 软件是人做出来的 | ||||
| 18 | 科技行业里谁在做什么 | 课文 | 实验 | 测验 | 链接 |
| 19 | 你进入科技行业的路径 | 课文 | 实验 | 测验 | 链接 |
| 🏆 | 毕业设计(capstone):做一个真实的东西 | 概览 | 路线 A:网站 · 路线 B:当产品经理 · 路线 C:自动化 | — | 作品展示 |
📝 测验与实验
- 测验放在每个模块的文件夹里(
quiz.md)—— 答案藏在”Show answer(显示答案)”折叠框里,而且每份测验的最后一题永远是“讲给朋友听”的挑战。 - 实验(
lab.md)是动手环节,而且完全不用安装任何东西 —— 只用免费的、浏览器里就能跑的工具,手机也友好。知识正是在动手做实验时才真正记牢的。
🗺️ 全课程参考页
| 页面 | 用途 |
|---|---|
| START HERE | 如何使用本课程、学习时间表、你需要的三样工具 |
| 术语表 | 课程里的每个技术术语,一句大白话解释 |
| 学习路径 | 各种捷径:周末冲刺、经理路线、只关心人工智能、创始人…… |
| 常见问题 | 诚实的回答:”我是不是太老了?”、”需要数学吗?”、要学多久 |
| 写作风格指南 | 每节课都遵循的写作规则 |
| 课程设计笔记 | 这门课为什么这样设计 |
🎒 离线使用
克隆(clone)这个仓库(模块 08 会教你怎么做),然后一切 —— 课文、实验、测验 —— 都能作为纯文本离线使用。只有外部链接和浏览器实验才需要联网。
🤝 参与贡献与社区
遇到看不懂的句子?那是我们课程的缺陷,不是你脑子的问题 —— 请提一个 issue,或者直接发一个修改:见 CONTRIBUTING(贡献指南)。翻译是所有贡献中最受欢迎的:见翻译指南。学完的人:把自己加进毕业设计作品展示 —— 这也顺便成为你的第一个 pull request。
📄 许可证
永远对所有人免费 —— 见 LICENSE。
**献给这个世界上千千万万聪明的人 —— 软件行业忘了向他们解释自己。**
*如果这门课帮到了你,请给仓库点个 ⭐ Star,好让更多人找到它。*