跳到主要内容

2026 新生暑期 C++技术实践

从第一行代码开始,用 C++ 亲手完成一个能保存历史、管理分支并推送到远程仓库的迷你 Git。

面向 2026 年高中毕业、即将进入大学学习的同学,不限于清华大学新生;默认零基础。

7次正式课
7次集中答疑
90 min每次正式课
1个完整项目

课程介绍

这不是一门把语法目录从头讲到尾的课。我们更关心你能否把程序写出来、编译起来、调试清楚,最后组织成一个真正可以交付的小项目。

前五讲建立 C++ 编程与工程基础;后两讲进入统一项目 minigit,亲手实现工作区、暂存区、提交、分支和受限合并。 课程最后使用真实 Git 与 SSH,把你自己写的源码推送到远程仓库。

minigit 不读取真实 Git 的 .git 格式,也不实现网络协议。它把版本控制的核心机制变成可以直接查看的目录和文本文件,帮助你真正理解“版本”怎样存在。

课程完成时你会拥有进入大学后的第一个可展示技术作品。

课程大纲

点击任一讲查看验收目标并下载课件。

01从 C++ 源代码到可执行程序编辑器、编译器、变量、输入输出、条件与循环
第 01 讲课件封面:从 C++ 源代码到可执行程序
本讲验收独立编译、运行并修改一个交互式程序。

从空文件开始,建立“写代码 - 编译 - 运行 - 读报错 - 修复”的完整闭环。

下载讲义
02函数、字符串与容器函数、作用域、string、vector 与基础算法思维
第 02 讲课件封面:函数、字符串与容器
本讲验收完成输入处理任务,并写出可复用的函数。

把重复步骤命名,把一组数据管理起来,最终完成一个可验证的成绩统计器。

下载讲义
03类与对象类、成员、构造函数、封装、头文件与源文件
第 03 讲课件封面:类与对象
本讲验收定义并使用 minigit 中的第一批核心类。

用 Commit 与 Stage 把数据和行为组织在一起,并第一次完成多文件编译。

下载讲义
04文件 I/O 与调试文件读写、路径、错误信息、断点与最小复现
第 04 讲课件封面:文件 I/O 与调试
本讲验收将提交记录写入文件、正确读回并修复预设错误。

让程序结束后数据仍然存在,并学会用上下文清楚的错误信息缩小问题。

下载讲义
05小项目工程化多文件项目、模块边界、命令行、README 与最小测试
第 05 讲课件封面:小项目工程化
本讲验收建立可编译、可测试、能够继续扩展的项目骨架。

从这一讲起进入作业仓库,在固定接口上完成 Commit 与 Stage 的 5 个需求。

下载讲义
06迷你 Git(一)工作区、暂存区、提交,以及 init / add / commit / log
第 06 讲课件封面:迷你 Git(一)
本讲验收在本地创建多次提交,重启程序后仍能查看历史。

把版本控制拆成可以直接查看的目录和文本文件,完成最小的本地版本闭环。

下载讲义
07迷你 Git(二)与 SSH分支、checkout、受限 merge、SSH 与真实 Git 推送
第 07 讲课件封面:迷你 Git(二)与 SSH
本讲验收完成分支演示,并把自己的 C++ 项目推送到远程仓库。

在 minigit 中理解分支指针与快进合并,最后用真实 Git 完成远程交付。

下载讲义

一份代码,连续完成三讲

第 5 至第 7 讲都在同一个作业仓库上推进。接口保持不变,测试逐讲累积;你不会每次重开工程,也不会在下一讲推翻上一讲的代码。

13处待完成 TODO
3组累积测试
2个追赶标签
查看完整项目说明
minigit / terminal
$ git clone https://github.com/<你的用户名>/minigit.git$ cd minigit$ cmake -S . -B build -DMINIGIT_LESSON=5$ cmake --build build$ ctest --test-dir build --output-on-failure# 从失败的第一条断言开始实现

怎么学习

每一讲都以“能否独立完成一个结果”收尾,而不是以讲完多少语法收尾。

01

线上正式课

共 7 次,每次约 90 分钟;课堂以跟做、检查点和可运行结果为主。

02

次日集中答疑

每讲次日集中排错、补齐基础,并检查上一讲的可验收成果。

03

分层课后练习

基础任务保证主线完整,进阶任务留给希望继续扩展项目的同学。

04

统一资料归档

讲义、示例、练习、录屏和精选问答会按讲次集中整理。

课程边界

范围清楚,才能把十余小时真正用在完成项目上。

我们会做到

  • 编译、运行、调试并组织一个多文件 C++ 项目
  • 把暂存、提交历史与分支指针保存到本地文件
  • 用测试和可复现步骤验证每一个阶段
  • 安全生成 SSH 密钥,并用真实 Git 完成远程推送

我们刻意不做

  • 不覆盖指针、模板、复杂继承、并发等完整 C++ 主题
  • 不复刻真实 Git 的对象格式、网络协议或三方合并
  • 不要求学员部署服务器;SSH 只连接明确授权的平台
  • 不使用 AI 生成代码或让编程智能体代替本人完成作业