数据科学初学者完整课程指南:10 周 20 课,从零到实战的系统学习路径
课程概览:什么是「数据科学初学者」
「数据科学初学者」(Data Science for Beginners)是一套由微软 Azure 云技术推广团队精心打造的免费开源课程,采用 10 周、20 课的紧凑结构,覆盖数据科学从概念到实战的完整知识体系。课程的核心设计理念是「边构建边学习」(project-based pedagogy):每一课都以一个可运行的项目为载体,配以课前测验、课后测验、书面讲义、参考答案和作业,让新技能真正「扎根」。
这套课程的最大特点在于零门槛与高完成度并重:
- 面向零基础学习者,不需要事先掌握数学或编程;
- 每一课都有课前测验(设置学习意图)与课后测验(强化记忆);
- 课程灵活可选,可以完整学习 10 周,也可以只挑感兴趣的章节;
- 项目难度由小到大渐进升级,到第 10 周时学员已能完成端到端的真实数据科学工作流。
课程由多位微软作者联合编写,包括 Jasmine Greenaway、Dmitry Soshnikov、Nitya Narasimhan、Jalen McGee、Jen Looper、Maud Levy、Tiffany Souterre 与 Christopher Harrison,并获得了微软学生大使社区的广泛审校与贡献。
图:课程全貌路线图——从定义数据科学出发,历经数据处理、可视化、生命周期、云端部署,最终走向真实世界应用。
教学设计理念:两大教育原则
课程在构建之初确立了两条教育原则:
- 项目驱动(Project-based):每个知识点都落在可动手构建的项目上。学员通过「理解 → 实现 → 调试 → 完善」的真实流程来掌握技能,而不是被动阅读理论。课程在 examples/README.md 中提供了从「Hello World」到「完整真实项目」的递进式示例,让初学者在进入正式课程前就能先跑通第一个数据科学程序。
- 高频测验(Frequent Quizzes):课前一次低压力测验,帮学员明确「我即将学什么」;课后第二次测验,则用于检验与巩固记忆。这种「课前设意图、课后验留存」的双测验机制是课程设计的核心支柱。
课程整体覆盖以下主题模块:数据科学伦理、数据准备、不同的数据处理方式、数据可视化、数据分析、真实世界的数据科学应用场景等。
每一课的标准结构
每个独立课时都遵循统一、可预期的结构(约 10 个组成部分):
- 可选的速记图(Sketchnote):一图概览核心概念,适合视觉型学习者;
- 可选的补充视频:配合书面内容的多媒体讲解;
- 课前热身测验;
- 书面讲义:核心概念与原理讲解;
- 对项目型课程,提供分步构建指南;
- 知识检测(Knowledge Checks):随堂小问题;
- 挑战(Challenge):进阶练习任务;
- 延伸阅读:深入学习的资料;
- 作业(Assignment):课后实践;
- 课后测验。
整套课程的速记图(含大尺寸海报版)集中存放在 sketchnotes/ 目录,多语言翻译版本位于 translated_images/ 目录。
测验系统:quiz-app 详解
所有测验都封装在 Quiz-App(quiz-app/)目录中,共 40 个测验,每个测验 3 道题。测验从各课讲义内部链接进入,同时该应用支持本地运行或部署到 Azure。
quiz-app 是一个基于 Vue 2 的前端应用(见 quiz-app/package.json,核心依赖包括 vue、vue-router、vue-i18n),常用命令如下:
cd quiz-app
npm install # 安装依赖
npm run serve # 本地开发服务器,默认 http://localhost:8080
npm run build # 生产构建
npm run lint # 代码检查
测验编号从 0 到 39,每课对应一个课前测验和一个课后测验。若要将测验应用部署到 Azure Static Web App,只需 fork 仓库后按 Azure 门户指引创建静态 Web 应用,并将构建输出目录指向 dist,Azure 会自动生成 GitHub Actions 工作流完成持续构建与部署。
完整课程表:20 课的学习路线
课程被组织为 6 大模块:引言(Introduction)、数据处理(Working with Data)、数据可视化(Data Visualization)、数据科学生命周期(Lifecycle)、云端数据科学(Cloud Data)、真实世界案例(In the Wild)。下表完整列出 20 课的编号、主题、所属模块、学习目标、关联讲义与作者:
| 课号 | 主题 | 所属模块 | 学习目标 | 关联讲义 | 作者 |
|---|---|---|---|---|---|
| 01 | 定义数据科学 | 引言 | 学习数据科学背后的基本概念,及其与人工智能、机器学习和大数据的关系 | 讲义 | Dmitry |
| 02 | 数据科学伦理 | 引言 | 数据伦理概念、挑战与框架 | 讲义 | Nitya |
| 03 | 定义数据 | 引言 | 数据如何分类及其常见来源 | 讲义 | Jasmine |
| 04 | 统计与概率入门 | 引言 | 用概率与统计的数学技术理解数据 | 讲义 | Dmitry |
| 05 | 处理关系型数据 | 数据处理 | 关系型数据入门,以及用 SQL 探索分析关系型数据的基础 | 讲义 | Christopher |
| 06 | 处理 NoSQL 数据 | 数据处理 | 非关系型数据入门、其不同类型,以及探索分析文档数据库的基础 | 讲义 | Jasmine |
| 07 | 使用 Python 处理数据 | 数据处理 | 使用 Pandas 等库以 Python 探索数据的基础(建议具备 Python 基础) | 讲义 | Dmitry |
| 08 | 数据准备 | 数据处理 | 清洗与转换数据的技术,应对缺失、不准确或不完整的数据 | 讲义 | Jasmine |
| 09 | 可视化数量 | 数据可视化 | 使用 Matplotlib 可视化鸟类数据 | 讲义 | Jen |
| 10 | 可视化数据分布 | 数据可视化 | 在时间区间内可视化观测值与趋势 | 讲义 | Jen |
| 11 | 可视化比例 | 数据可视化 | 可视化离散与分组的百分比 | 讲义 | Jen |
| 12 | 可视化关系 | 数据可视化 | 可视化数据集及其变量之间的关联与相关性 | 讲义 | Jen |
| 13 | 有意义的数据可视化 | 数据可视化 | 让可视化对有效解决问题和获取洞察更有价值的技术与指南 | 讲义 | Jen |
| 14 | 数据科学生命周期入门 | 生命周期 | 数据科学生命周期入门及其第一步:获取与提取数据 | 讲义 | Jasmine |
| 15 | 分析 | 生命周期 | 生命周期中的分析阶段,聚焦数据分析技术 | 讲义 | Jasmine |
| 16 | 沟通 | 生命周期 | 以决策者易于理解的方式呈现数据洞察 | 讲义 | Jalen |
| 17 | 云端数据科学 | 云端数据 | 介绍云端数据科学及其优势 | 讲义 | Tiffany 与 Maud |
| 18 | 云端数据科学 | 云端数据 | 使用低代码工具训练模型 | 讲义 | Tiffany 与 Maud |
| 19 | 云端数据科学 | 云端数据 | 使用 Azure Machine Learning Studio 部署模型 | 讲义 | Tiffany 与 Maud |
| 20 | 真实世界中的数据科学 | 真实世界 | 现实世界中数据科学驱动的项目 | 讲义 | Nitya |
面向初学者的示例代码:先跑起来,再深入
如果你是完全的数据科学新手,课程作者建议先进入 examples/ 目录完成 5 个循序渐进、注释详尽的示例脚本,再投入完整课程。每个示例都附带「预期输出」说明,帮助你验证运行结果:
- Hello World(01_hello_world_data_science.py):第一个数据科学程序,用列表与字典组织学生成绩数据,并计算最大值、最小值和平均值;
- 加载数据(02_loading_data.py):读取 CSV 文件、查看前几行、获取基本统计量与数据类型;
- 简单分析(03_simple_analysis.py):计算均值/中位数/众数、筛选与条件过滤数据;
- 基础可视化(04_basic_visualization.py):绘制柱状图、折线图、饼图并保存为图片;
- 真实世界项目(05_real_world_example.py):从加载、清洗到分析与可视化的完整工作流。
运行示例只需 Python 3.7+ 与三个核心库:
pip install pandas numpy matplotlib
快速开始:学生与教师路径
课程为不同身份的学习者提供了差异化路径。自学者可以 fork 整个仓库,从课前测验开始,依次完成讲义与活动;官方建议「先理解课程再动手写项目,而不是直接复制答案代码」——不过答案代码在每个项目型课程的 /solutions 目录中均可用(例如 1-Introduction/01-defining-data-science/solution/)。同时推荐组建学习小组,与朋友协作学习。
快速开始四步走:
- 阅读 INSTALLATION.md 安装指南,完成环境配置;
- 阅读 USAGE.md 使用指南,了解课程常见工作流;
- 从第 1 课开始,按顺序逐课推进;
- 加入社区(Discord)获取支持。
教师可参考 for-teachers.md 中的课堂使用建议,包括使用 GitHub Classroom 将每课拆分为独立仓库、在线课堂中的测验与作业组织方式等;课程共包含 20 课、40 个测验、20 份作业,许多讲义同时提供 Python 与 R 两种语言版本,并可用 VS Code 中的 Jupyter 笔记本完成。
环境安装要点
本地开发环境的核心依赖如下(详见 INSTALLATION.md):
- Git:用于克隆仓库;
- Python 3.7+ 与 Jupyter:数据科学课程的核心运行环境;
- 数据科学库:
pip install jupyter pandas numpy matplotlib seaborn scikit-learn
- Node.js 与 npm:用于运行测验应用(
cd quiz-app && npm install && npm run serve,默认端口 8080); - Docsify CLI(可选):用于离线阅读文档,
npm install -g docsify-cli。
克隆技巧:由于仓库包含 50+ 种语言翻译,下载体积较大。若不需要翻译内容,可以使用稀疏检出(sparse checkout)大幅提升克隆速度:
# Bash / macOS / Linux
git clone --filter=blob:none --sparse https://github.com/microsoft/Data-Science-For-Beginners.git
cd Data-Science-For-Beginners
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
:: CMD (Windows)
git clone --filter=blob:none --sparse https://github.com/microsoft/Data-Science-For-Beginners.git
cd Data-Science-For-Beginners
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
这依然会为你提供完成课程所需的全部内容,只是下载更快。
推荐的 10 周学习节奏
根据 USAGE.md 的建议,教师与自学者可按如下节奏排课:
- 第 1–2 周:引言模块(第 1–4 课:定义数据科学、伦理、定义数据、统计与概率);
- 第 3–4 周:数据处理模块(第 5–8 课:关系型数据库、NoSQL、Python、数据准备);
- 第 5–6 周:数据可视化模块(第 9–13 课);
- 第 7–8 周:数据科学生命周期(第 14–16 课);
- 第 9 周:云端数据科学(第 17–19 课);
- 第 10 周:真实世界应用与最终项目(第 20 课)。
课程同时支持按主题定向学习(例如只学 3-Data-Visualization/ 模块的第 9–13 课)和项目驱动式学习(先学生命周期再动手做真实项目),两种模式都有现成工作流可循。
三种开箱即用的运行方式
1. GitHub Codespaces(初学者推荐)
无需本地配置,浏览器即得完整开发环境:点击仓库页面的 Code 下拉菜单 → 选择 Codespaces 标签 → 点击 Create codespace on main,等待 2–3 分钟初始化即可,所有依赖已预装。
2. VS Code Remote - Containers
本地安装 Docker 与 VS Code 的 Remote - Containers 扩展后,可把代码克隆到隔离的 Docker 卷中运行(推荐用于持久化容器数据);也可以打开本地已克隆的副本,按 F1 选择 Remote-Containers: Open Folder in Container... 命令,等待容器启动即可。
3. 离线访问(Docsify)
Fork 仓库并安装 Docsify 后,在仓库根目录执行:
docsify serve
文档站会运行在 http://localhost:3000。需要注意:Docsify 无法渲染 Jupyter 笔记本,需要运行笔记本时请单独在 VS Code 中使用 Python 内核打开。
多语言支持:50+ 语言自动翻译
课程通过 GitHub Action 实现自动化、持续更新的社区翻译(基于 Co-op Translator),目前支持 50 余种语言,包括阿拉伯语、孟加拉语、简体中文、繁体中文、法语、德语、日语、韩语、俄语、西班牙语等。阿拉伯语完整翻译即为本文所依据的 translations/ar/README.md,各语言翻译均保持与英文原版一致的结构,例如:
cd translations/fr # 法语
cd translations/es # 西班牙语
cd translations/zh-CN # 简体中文
配套的翻译图片按语言存放于 translated_images/ 目录,如 translated_images/ar/、translated_images/zh-CN/。
生态:同系列的姊妹课程
微软「For Beginners」系列课程生态还包括:
- LangChain 系列:LangChain、LangChain.js、LangChain4j for Beginners;
- Azure / Edge / MCP / Agents 系列:AZD、Edge AI、MCP、AI Agents for Beginners;
- 生成式 AI 系列:Generative AI for Beginners(含 .NET 与 Java 版本);
- 核心学习系列:ML、AI、Cybersecurity、Web Dev、IoT、XR Development for Beginners;
- Copilot 系列:Copilot for AI Paired Programming、Copilot for C#/.NET 等。
遇到问题怎么办
遇到问题时的求助路径:
- 查阅 TROUBLESHOOTING.md 故障排查指南中的常见问题解答;
- 搜索仓库已有 Issues;
- 加入 Discord 社区,参与持续进行的「Learn with AI」系列(例如学习如何在数据科学中使用 GitHub Copilot 的技巧);
- 在微软 Foundry 开发者论坛提交产品反馈或构建过程中遇到的错误。
总结
「数据科学初学者」不是一本让你「读」的教科书,而是一套让你「做」的项目工坊:20 堂课、40 个测验、20 个作业、5 个入门示例、6 大知识模块,配合测验应用、速记图、多语言翻译与三种免配置运行方式,构成了当前开源社区中最完整、对初学者最友好的数据科学学习路径之一。无论你是想自学入门、组织学习小组,还是在课堂上讲授数据科学,都可以从 README.md 总览出发,按 INSTALLATION.md 完成环境搭建,然后打开第 1 课,开始你的第一个数据科学项目。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust4.21 K635- DDeepSeek-V4.1-FlashDeepSeek-V4.1-Flash 是一个多模态混合专家(MoE)模型,拥有 5520 亿骨干参数,并支持最多一百万 token 的上下文长度。该模型原生支持图像和文本输入,并以自回归方式生成文本Python70
jforgamejforgame是一个一站式游戏服务器开发框架。包含游戏服务器开发所需要的各种组件,比如网关,socket服务端与客户端,自定义高效消息编解码,游戏热更新,游戏通用工具等等。包含游戏服,跨服,匹配服,后台管理系统等实现,同时提供大量业务案例以供学习。亦可用于其他socket应用,例如及时聊天等。Java161
fizz-gateway-nodeAn Aggregation API Gateway in Java . FizzGate 是一个基于 Java开发的微服务聚合网关,是拥有自主知识产权的应用网关国产化替代方案,能够实现热服务编排聚合、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API审核管理、回调管理等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行API服务治理、减少中间层胶水代码以及降低编码投入、提高 API 服务的稳定性和安全性。Java90
certd开源SSL证书管理工具;全自动证书申请、更新、续期;通配符证书,泛域名证书申请;证书自动化部署到阿里云、腾讯云、主机、群晖、宝塔;https证书,pfx证书,der证书,TLS证书,nginx证书自动续签自动部署JavaScript120
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python300
