Data Science for Beginners 课程全解析:10 周 20 课从零掌握数据科学核心技能
这是一份面向零基础学习者的数据科学课程速查与深度指南。Data Science for Beginners 是一套由 10 周、20 节课组成的数据科学学习计划,覆盖数据科学定义、数据伦理、数据准备、可视化、分析、云上数据科学等完整知识链路,其「项目导向 + 高频测验」的教学设计让学习者可以在动手构建中真正掌握技能。读完本文,你将了解课程的完整结构、每节课的组成要素、环境搭建方法、学习工作流、测验系统用法以及离线阅读方案,可以直接据此规划自己的学习路线或课堂排课。
课程概览:面向零基础的 10 周学习计划
Data Science for Beginners 由微软的 Azure Cloud Advocates 团队推出,是一套完整的 10 周、20 节课学习计划。每一节课都包含:
- 课前与课后测验(pre-lesson / post-lesson quizzes);
- 完成课程所需的书面指导(written instructions);
- 解答(solution);
- 作业(assignment)。
其核心教学理念是项目导向(project-based pedagogy)——学习者通过「边学边做」的方式掌握新技能,这是被验证为更容易让新技能「扎根」的学习方式。课程由多位作者共同编写,包括 Jasmine Greenaway、Dmitry Soshnikov、Nitya Narasimhan、Jalen McGee、Jen Looper、Maud Levy、Tiffany Souterre、Christopher Harrison 等,并有大量 Microsoft Student Ambassador 参与审校与内容贡献。
教学理念:项目导向 + 高频测验
在构建这套课程时,设计者选择了两个教学原则:确保课程基于项目(project-based),并且包含频繁的测验(frequent quizzes)。到系列课程结束时,学生将掌握数据科学的基础原理,包括:
- 伦理概念(ethical concepts);
- 数据准备(data preparation);
- 处理数据的不同方式(different ways of working with data);
- 数据可视化(data visualization);
- 数据分析(data analysis);
- 数据科学的真实世界用例(real-world use cases)等。
此外,课堂前的低压测验为学生设定学习某个主题的意图,课堂后的第二次测验则确保进一步的知识留存。课程设计灵活有趣,可以整体学习也可以部分学习;项目从很小开始,到 10 周周期结束时逐步变得复杂。课程仓库中还提供了 行为准则、贡献指南 等文档,欢迎建设性反馈。
六大模块与 20 节课全景
课程按主题分为六大模块(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 | 云中的数据科学 | 云数据 | 使用 Low Code 工具训练模型 | 课程 | Tiffany 和 Maud |
| 19 | 云中的数据科学 | 云数据 | 使用 Azure Machine Learning Studio 部署模型 | 课程 | Tiffany 和 Maud |
| 20 | 实际应用中的数据科学 | 实际应用 | 真实世界中的数据科学驱动项目 | 课程 | Nitya |
课程学习路径整体呈现「从理论到实操、从本地到云端」的递进:第 1–4 课建立数据科学概念与统计基础;第 5–8 课进入实际数据处理(SQL、NoSQL、Python、数据准备);第 9–13 课系统掌握 Matplotlib 等可视化工具;第 14–16 课梳理数据科学生命周期;第 17–19 课迁移到云端;第 20 课落地到真实项目。
每节课的标准结构
课程采用统一的课节结构以最大化学习效果,每节课通常包含:
- 可选的 sketchnote(视觉速记图);
- 可选的补充视频;
- 课前热身测验;
- 书面课程(核心概念与讲解);
- 针对项目导向课程,提供如何构建项目的分步指南;
- 知识检查(knowledge checks);
- 挑战(challenge);
- 补充阅读(supplemental reading);
- 作业(assignment);
- 课后测验。
测验系统:quiz-app
关于测验的一个关键细节:所有测验都存放在 quiz-app 文件夹中,共 40 个测验,每个测验 3 道题。它们从课程内链接引用,但测验应用可以本地运行,也可以部署到 Azure;具体说明见 quiz-app 目录。测验正在逐步本地化(localized)。
从 quiz-app/package.json 可以看到,测验应用基于 Vue 2(vue ^2.6.11)、vue-router、vue-i18n(国际化支持),开发服务器脚本为 vue-cli-service serve。本地启动方式:
cd quiz-app
npm install # 首次安装依赖
npm run serve # 启动开发服务器
之后在浏览器访问 http://localhost:8080 即可开始答题。也可以执行 npm run build 构建生产版本,或 npm run lint 做代码规范检查。
环境准备与快速上手
课程的完整安装说明见 安装指南,使用说明见 使用指南。这里给出两条主要起步路径。
方式一:GitHub Codespaces(推荐新手)
这是最省事的起步方式,直接在浏览器中获得完整开发环境:
- 打开仓库,点击 Code 下拉菜单;
- 选择 Codespaces 标签页;
- 点击 Create codespace on main;
- 等待环境初始化(约 2–3 分钟)。
环境就绪后,所有依赖都已预装,可以直接开始学习。
方式二:本地开发
本地安装的核心步骤(详见 INSTALLATION.md):
- 安装 Git:用于克隆仓库与跟踪变更。Linux 下可用
sudo apt-get install git(Debian/Ubuntu)、sudo dnf install git(Fedora)、sudo pacman -S git(Arch)。 - 克隆仓库:
git clone <仓库地址> cd Data-Science-For-Beginners - 安装 Python 与 Jupyter:课程要求 Python 3.7 或更高版本。安装后执行
python3 --version验证。 - 创建虚拟环境(推荐隔离依赖):
python -m venv venv source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows - 安装数据科学依赖包:
pip install jupyter pandas numpy matplotlib seaborn scikit-learn - 安装 Node.js 与 npm(仅测验应用需要):安装后验证
node --version、npm --version,然后在quiz-app目录执行npm install。 - (可选)安装 Docsify:用于离线阅读文档,
npm install -g docsify-cli。
安装验证:激活虚拟环境后运行 jupyter notebook,浏览器会打开 Jupyter 界面,可以进入任意课程的 .ipynb 文件;测验应用启动后访问 http://localhost:8080;文档服务(docsify serve)启动后访问 http://localhost:3000。
减少下载体积:Sparse Checkout
由于仓库包含 50+ 种语言的翻译,整体下载体积显著增大。如果只需要英文课程内容,可以用 sparse checkout 排除翻译目录:
Bash / macOS / Linux:
git clone --filter=blob:none --sparse <仓库地址>
cd Data-Science-For-Beginners
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
CMD(Windows):
git clone --filter=blob:none --sparse <仓库地址>
cd Data-Science-For-Beginners
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
这样你可以获得完成课程所需的全部内容,同时下载速度明显更快。
学习工作流:如何高效使用这套课程
使用指南 提供了几种常见工作流,核心模式是「测验 → 阅读 → 动手 → 作业 → 测验」:
# 1. 进入课程目录
cd 1-Introduction/01-defining-data-science
# 2. 阅读 README.md(浏览器或编辑器中打开)
# 3. 完成课前测验(点击 README 中的测验链接)
# 4. 打开 Jupyter notebook(如有)
jupyter notebook
# 5. 完成 notebook 中的练习
# 6. 完成作业
# 7. 完成课后测验
针对不同目标的四种工作流:
- 完整新手路径:从第 1 课开始按顺序推进全部 20 课;
- 专题学习:例如只聚焦数据可视化,直接进入 3-Data-Visualization,学习第 9–13 课;
- 项目式学习:先学生命周期课程(第 14–16 课,见 4-Data-Science-Lifecycle),再做第 20 课的真实世界案例(6-Data-Science-In-Wild/20-Real-World-Examples),最后迁移到自己的项目;
- 云端数据科学:学习第 17–19 课(5-Data-Science-In-Cloud),从云端概念入门到 Low-Code 训练再到 Azure 部署。
Jupyter Notebook 使用要点
- 运行单元格:按
Shift + Enter或点击 Run 按钮;菜单中可选择 Cell → Run All 一次运行全部单元格; - 重启内核:遇到问题时选择 Kernel → Restart;
- 自动保存:Jupyter 会定期自动保存,也可手动按
Ctrl + S(macOS 为Cmd + S)保存到.ipynb文件。
一个典型的数据探索代码模板(详见 USAGE.md):
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 加载数据集
df = pd.read_csv('data/sample.csv')
# 探索数据
df.head()
df.info()
df.describe()
# 创建可视化
plt.figure(figsize=(10, 6))
plt.plot(df['column_name'])
plt.title('Sample Visualization')
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.show()
初学者友好示例:五个可直接运行的入门脚本
如果你是数据科学完全新手,建议先从 examples 目录 的简单、注释详尽的示例开始,在进入完整课程之前先理解基础。五个示例按难度递进:
- 🌟 Hello World(01_hello_world_data_science.py)——第一个数据科学程序:创建简单数据集(学生名单与成绩列表),用
max()/min()/sum()/len()计算基本统计量,找出最高分学生,最后把数据组织成字典。示例完整演示了「创建数据 → 分析 → 洞见 → 结构化组织」的基本流程; - 📂 加载数据(02_loading_data.py)——使用 Pandas 读取 CSV 文件(示例数据为仓库内的 data/birds.csv),查看 DataFrame 基本信息、首尾行与摘要统计;
- 📊 简单分析(03_simple_analysis.py)——计算均值、中位数、众数,查找最大值/最小值,统计出现次数,并按条件筛选数据;
- 📈 基础可视化(04_basic_visualization.py)——绘制柱状图、折线图、饼图,并把可视化结果保存为图片;
- 🔬 真实世界项目(05_real_world_example.py)——完整工作流:加载真实数据 → 清洗准备 → 分析 → 有意义地可视化 → 得出结论。
运行这些示例只需 pip install pandas numpy matplotlib,每个文件都带详细注释,适合完全零基础的读者。
离线访问:用 Docsify 本地起文档站点
课程文档可以用 Docsify 在本地离线运行:
- Fork 本仓库;
- 在本地机器安装 Docsify;
- 在仓库根目录执行:
docsify serve
站点会在 localhost:3000 提供服务。仓库根目录的 docs/_sidebar.md 与 index.html 即是 Docsify 的文档侧边栏与入口配置,可以据此了解文档站的组织方式。
注意:notebook 不会被 Docsify 渲染,因此需要运行 notebook 时,请在 VS Code 中以 Python 内核单独运行。
学生与教师使用建议
对学生
- 独立学习者:Fork 整个仓库,从课前测验开始,自行完成练习。建议在理解课程的基础上自己创建项目,而不是直接复制解答代码;解答代码位于每个项目导向课程的
/solutions文件夹中。也可以与朋友组建学习小组共同推进。 - 快速开始四步:① 查阅安装指南配置环境 → ② 阅读使用指南了解如何与课程交互 → ③ 从第 1 课开始顺序学习 → ④ 遇到问题加入社区寻求支持。
- 学习方法建议:保持规律练习(至少每周完成一课),定期复习前面的课程;为每节课建立学习笔记;学完课程后把技术应用到个人项目——例如用
pd.read_csv加载自己的数据,依次套用数据清洗(第 8 课)、探索性分析(第 7 课)、可视化(第 9–13 课)与分析(第 15 课)的流程。
对教师
- 详细的教学指导见 for-teachers.md,包括课堂设置、作业评分等建议。
- USAGE.md 给出了一份 10 周排课建议:
| 周次 | 内容 | 课程 |
|---|---|---|
| 第 1–2 周 | 引言 | 第 1–4 课 |
| 第 3–4 周 | 处理数据 | 第 5–8 课 |
| 第 5–6 周 | 数据可视化 | 第 9–13 课 |
| 第 7–8 周 | 数据科学生命周期 | 第 14–16 课 |
| 第 9 周 | 云端数据科学 | 第 17–19 课 |
| 第 10 周 | 真实世界应用与期末项目 | 第 20 课 |
- 课堂环境可选用 GitHub Classroom 或 Codespaces,建立统一的沟通渠道;使用
docsify serve让学生在校内局域网离线访问localhost:3000上的文档。
多语言支持:50+ 语言的自动翻译
课程仓库通过 GitHub Action 自动维护 50+ 种语言的翻译,且始终与英文版保持同步更新,包括阿拉伯语、孟加拉语、简体/繁体中文、捷克语、丹麦语、法语、德语、日语、韩语、俄语、西班牙语等。每个翻译目录保持与英文版相同的结构,例如本文对应的捷克语版本位于 translations/cs,其下按模块维护了各课程的 README 与 notebook(如 translations/cs/1-Introduction),翻译图片位于 translated_images/cs。这意味着学习者可以完全用自己的母语完成全部课程。
故障排除与帮助
如果遇到问题,按以下顺序排查:
相关课程与延伸学习
该系列还有配套的其他初学者课程(详见 README.md 的 Other Curricula 一节),覆盖机器学习(ML for Beginners)、生成式 AI(Generative AI for Beginners)、LangChain、AI Agents、Web 开发、IoT、XR 开发、Copilot 系列等主题。完成本课程后,可以继续沿着这些方向深入。所有相关入口均以课程徽章链接的形式列在 README.md 中。
总结:Data Science for Beginners 的核心价值在于「结构化 + 项目化 + 高频反馈」:20 节课被清晰地组织进六大模块,每节课都有测验闭环、动手项目和可参考解答;无论你是自学、组队还是课堂教学,都可以按本文给出的路径快速上手,并借助多语言翻译、离线 Docsify 文档与本地可跑的测验应用,获得完整且低门槛的数据科学学习体验。
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.2 K634
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown300
jforgamejforgame是一个一站式游戏服务器开发框架。包含游戏服务器开发所需要的各种组件,比如网关,socket服务端与客户端,自定义高效消息编解码,游戏热更新,游戏通用工具等等。包含游戏服,跨服,匹配服,后台管理系统等实现,同时提供大量业务案例以供学习。亦可用于其他socket应用,例如及时聊天等。Java101
fizz-gateway-nodeAn Aggregation API Gateway in Java . FizzGate 是一个基于 Java开发的微服务聚合网关,是拥有自主知识产权的应用网关国产化替代方案,能够实现热服务编排聚合、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API审核管理、回调管理等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行API服务治理、减少中间层胶水代码以及降低编码投入、提高 API 服务的稳定性和安全性。Java50
certd开源SSL证书管理工具;全自动证书申请、更新、续期;通配符证书,泛域名证书申请;证书自动化部署到阿里云、腾讯云、主机、群晖、宝塔;https证书,pfx证书,der证书,TLS证书,nginx证书自动续签自动部署JavaScript60
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python280

