无标题
Go 学习规划(2026年5月 - 8月)
生成日期:2026-05-26
一、背景与目标
个人背景
- 即将开始本校计科专硕(三年制)
- C++ 有基础但断档一年(学过 C++ Primer、STL、Linux 网络编程、线程池等)
- 计网、操作系统学过(自顶向下 + 408)
- MySQL 入门,Redis 没学
- 目标:研一暑假(2027年7月)前拿到 Go 后端实习
最终方向
- 主线:Go 后端开发
- 支线:AI / RAG / Agent 应用(作为 Go 项目的加分模块)
- 保留:C++ 基础和旧项目(不作为主攻方向)
- 后置:Java(研二上根据银行、国企、运营商需求再补)
二、教程选择:为什么选邓明
四个教程对比
| 教程 | 定位 | 工程化程度 | 作业体系 | 与规划匹配度 |
|---|---|---|---|---|
| 龙哥 Go 从0开始 | 纯语法入门 | 无项目 | 无 | 只有语法,学完还是不会做后端 |
| 邓明初级 Go 工程师 | 系统后端工程师培养 | 21次作业 + 完整 IM 项目 | 有 | 完全匹配:Go + Gin + MySQL + Redis + JWT + Docker |
| 云原生 Go+Gin 脚手架 | Go + 云原生入门 | 有脚手架但较浅 | 无 | 偏云原生,技术深度不够 |
| 16 天 Go 入门 | 纯语法速成 | 无项目 | 无 | 只有语法,不够 |
选择邓明的三个理由
1. 唯一能让你学完就能做项目的教程
龙哥和 16 天教程学完语法就结束了——你知道 goroutine 是什么,但不知道怎么写一个带登录的 API。邓明的教程从第一周搭建环境到最后一周写出即时通讯系统,是一整条线。
2. 作业体系能帮你从”看懂”变成”会写”
21 次作业,每次学完必须动手。这个机制逼着你在每块知识学完后立刻写代码验证,避免陷入”看了一大堆视频,打开编辑器还是不知道怎么开始”的循环。
3. 技术栈正好匹配规划
教程覆盖:Git → Go 语法 → Gin → MySQL → Redis → JWT → Kafka → K8s → IM 项目。学完后做”企业知识库智能问答系统”时,是在已有项目上扩展,不是从零搭架子。
三、12 周详细学习计划(5.26 - 8.17)
整体节奏
1 | 阶段一(2周):语法速通 → 能看懂和写 Go 程序 |
利用 C++ 基础加速
| 已有基础 | 对应 Go 内容 | 处理方式 |
|---|---|---|
| C++/STL | 数组、切片、map、结构体 | 2 倍速,只关注 Go 语法差异 |
| Linux 系统编程 | Linux 命令、Docker 基础 | 快速过,原理相通 |
| 线程池项目 | goroutine、channel | 对比学习,一天搞定 |
| 计网自顶向下 | HTTP、TCP、网络模型 | 跳过理论,直接看代码 |
| MySQL 基础 | MySQL 操作、CRUD | 直接看 Go 的 MySQL 驱动用法 |
阶段一:语法速通(第 1-2 周 / 5.26-6.8)
目标:能用 Go 写 200 行左右的独立程序,语法不卡壳。
| 天数 | 内容 | 做什么 |
|---|---|---|
| D1 | 环境搭建 | 安装 Go + VSCode,跑通 Hello World |
| D2 | 变量、常量、基本类型、fmt | 重点看 Go 的类型系统和 C++ 的区别 |
| D3 | if/switch/for、数组 | 写一个小工具:命令行计算器 |
| D4 | 切片(重点) | 切片是 Go 最重要的数据结构,搞清楚 len/cap/append/底层数组的关系 |
| D5 | map、结构体 | 写一个学生成绩管理程序(增删改查) |
| D6 | 函数、defer、闭包 | 理解 defer 的执行顺序和用途 |
| D7 | 指针、方法、接口 | Go 接口是重点,和 C++ 虚函数完全不同 |
| D8 | goroutine 入门 | 用 goroutine 写一个并发下载模拟器 |
| D9 | channel 入门 | 理解无缓冲/有缓冲 channel,写生产者-消费者 |
| D10 | select、sync 包 | 理解 select 多路复用,会用 WaitGroup 和 Mutex |
| D11 | 包管理、go mod | 理解 Go module,会 init/tidy/get |
| D12 | 文件读写、JSON 处理 | 会读写文件,会序列化/反序列化 JSON |
| D13 | net/http 基础 | 用标准库写一个最简单的 HTTP 服务 |
| D14 | 复习 + 小测验 | 写一个命令行待办事项管理(支持增删查改,保存到文件) |
关键提醒:
- 前 14 天不要碰 Gin,只用标准库
- 每天写代码,光看不写等于没学
- 切片、接口、goroutine/channel 这三块是 Go 的核心差异,多花时间
阶段二:Web 基础(第 3-4 周 / 6.9-6.22)
目标:能独立写出带数据库、有登录认证的 API 服务。
| 天数 | 内容 | 动手任务 |
|---|---|---|
| D15-16 | Gin 框架入门:路由、请求处理、中间件、参数绑定 | 写一个 RESTful API:GET/POST/PUT/DELETE 用户列表 |
| D17-18 | JWT 登录认证 | 给上面的 API 加上 JWT 登录保护 |
| D19-20 | GORM 或 sqlx 操作 MySQL | 把用户数据从内存改成 MySQL 存储,写 CRUD |
| D21-22 | Redis 缓存用户 session | 把 JWT token 存 Redis,学会过期和校验 |
| D23-24 | Docker 基础 | 把 API 服务打包成 Docker 镜像,本地跑起来 |
| D25-26 | 综合复习 | 把 Gin + MySQL + Redis + JWT + Docker 串起来 |
| D27-28 | 整理 | 补文档、整理笔记、把代码提交 GitHub |
产出:GitHub 上一个完整的 Go Web API 项目(用户系统)。
阶段三:主体项目(第 5-9 周 / 6.23-7.27)
目标:跟着邓明教程的项目主线,边学边做,完成项目核心功能。
| 周次 | 内容 | 每周产出 |
|---|---|---|
| 第5周 | 项目初始化:分层架构、配置管理、错误处理 | 项目脚手架 |
| 第6周 | 用户模块完整实现:注册、登录、个人信息、权限 | 用户模块完成 |
| 第7周 | 内容模块:发布、编辑、删除、列表、搜索 | 内容模块完成 |
| 第8周 | 互动功能:点赞、收藏、评论 | 互动模块完成 |
| 第9周 | 中间件、日志、错误处理、API 文档 | 项目功能完整可用 |
每周检查清单:
1 | 口 视频全部看完(该倍速的倍速,该细看的细看) |
阶段四:高级功能(第 10-11 周 / 7.28-8.10)
目标:加入 Kafka、热榜、IM 功能,把项目往”中厂实习”水平推。
| 周次 | 内容 | 产出 |
|---|---|---|
| 第10周 | Kafka 消息队列:异步通知、阅读事件消费 | 消息系统完成 |
| 第11周 | 热榜算法 + 即时通讯(WebSocket) | 热榜 + 聊天功能 |
重点理解:
- Kafka:理解”为什么需要消息队列”,场景:用户点赞 → 发消息到 Kafka → 异步更新热度
- 热榜:理解 Redis Sorted Set 做排行榜、定时任务更新、热度衰减算法
- IM:理解 WebSocket 连接管理、消息投递、群聊广播
阶段五:收尾(第 12 周 / 8.11-8.17)
目标:项目整理、文档完善、简历初稿。
| 天数 | 任务 |
|---|---|
| D1-2 | 项目全面测试:每个功能跑一遍,修复遗留 bug |
| D3 | 写 README:项目介绍、技术栈、架构图、运行说明、API 文档 |
| D4 | 代码清理:删除注释掉的代码、统一命名、加必要注释 |
| D5 | 准备面试问题:总结项目中 10 个技术难点和解决方案 |
| D6 | 简历初稿:项目名称、技术栈、你负责的部分、量化成果 |
| D7 | 整体回顾:梳理学过的技术点,标出掌握薄弱的 |
四、并行任务:算法怎么安排
面试时算法是必考的,不能只学 Go 不刷算法。
| 阶段 | 频率 | 难度 | 具体怎么做 |
|---|---|---|---|
| 语法速通(第1-2周) | 每天 1 道 | 简单为主 | 用 Go 刷,熟悉 Go 语法同时保持题感 |
| Web 基础(第3-4周) | 每天 1 道 | 简单+中等 | 链表、栈、队列 |
| 主体项目(第5-9周) | 每天 1 道 | 中等为主 | 二叉树、DFS/BFS、动态规划入门 |
| 高级功能(第10-11周) | 每周 5 道 | 中等+高频 | 重点 Hot 100 |
| 收尾(第12周) | 每天 1 道复习 | 回头做错题 | 复习之前卡过的题 |
目标:到 8 月底累计 80-100 道算法题。
练习方法:
15 分钟想不出来 → 看题解 → 理解思路 → 关掉题解 → 自己写 → 第二天重做一遍
Go 刷算法题的注意事项
Go 标准库没有 C++ STL 里那些东西,提前知道就不慌:
| C++ 有 | Go 没有 | 刷题时怎么办 |
|---|---|---|
vector |
—— | 用切片 []int,差不多 |
map / unordered_map |
map |
直接用,但 Go 的 map 遍历顺序随机 |
set / unordered_set |
❌ 没有 | 用 map[T]bool 或 map[T]struct{} 代替 |
priority_queue |
❌ 没有 | 用 container/heap 接口,写法比 C++ 复杂 |
queue / stack |
❌ 没有 | 用切片模拟 |
algorithm(sort、max、min) |
sort 包 |
sort.Ints()、手动写 max/min |
初期的算法题选择:前两周选数组、字符串、哈希表类的简单题,避开需要堆、优先队列的。
五、关于 C++ 和 Agent
12 周里只做 Go
C++ 不能同时复习:
- 两门语言语法打架(Go 没有类、没有继承、没有 try-catch)
- 压缩 Go 的练习时间,最后两边都半吊子
- C++ 不需要重新完整捡一遍,用到再学
Agent 也不能同时学:
- Go 还没入门,Agent 也只有概念,两条都是新线
- 两条新线就是两倍的学习曲线,而且交集很小
正确的顺序
1 | 现在 → 8月中(12周) |
C++ 怎么”保留”
C++ 的价值只剩两个用途:
用途一:面试标签。简历上写”熟悉 C++,做过 Linux 后端项目”,面试官会觉得你基础扎实。
用途二:旧项目复盘材料。面试被问到”你做过什么项目”,可以把集群聊天服务器、nginx 内存池拿出来讲。
这两个用途都不需要每天复习 C++。只需要在投简历前两周,每个旧项目花一小时:画出架构图,列出技术难点,想好怎么讲。够了。
六、关于博客更新
结论:写,但只写学习笔记
不是教程,不是技术文章,就是原来那种风格的笔记。形式不变,内容换成 Go。
为什么值得写
1. 博客风格本来就是”学习笔记”
之前写《408 中由硬件完成而非软件的过程》《HTTP 和 TCP 的数据传输过程》,都是学到某个容易混淆的点,自己梳理清楚后记下来。这种笔记不会花很多时间——本来就要梳理,多花 10 分钟写成 md 就行。
2. Go 学习笔记本身就是面试材料
学 goroutine + channel 时写一篇”Go 的 channel 和无缓冲的区别”,学 defer 时写一篇”defer 执行顺序和常见坑”——这些笔记放到博客上,投简历时附上链接,很有说服力。
3. 不写的话,12 周后会忘很多
笔记只放本地 md 文件里,暑假结束后大概率不会再翻开。发到博客上,公开可见,面试前回来翻一遍,能快速回忆起关键点。
怎么写:不追求质量,追求速度
规则:
1 | 每学完一个重要概念 → 花 10-15 分钟写一篇笔记 → 扔到博客上 → 继续学 |
不需要排版,不需要配图,不需要检查错别字。这些事可以 8 月以后再整理。现在第一优先级是学 Go,博客只是顺手的事。
哪些内容值得写
| 学到的内容 | 可以写的笔记 | 耗时 |
|---|---|---|
| 切片底层原理 | Go 切片和 C++ vector 的对比 | 10 分钟 |
| defer | defer 的执行顺序和参数求值时机 | 10 分钟 |
| goroutine + channel | 有无缓冲 channel 的区别 | 15 分钟 |
| interface | Go 接口和 C++ 虚函数的差异 | 15 分钟 |
| GORM | GORM 常见查询写法备忘 | 10 分钟 |
| JWT | Go 中 JWT 的签发和验证流程 | 15 分钟 |
| Docker | 一个 Go 项目的 Dockerfile 模板 | 5 分钟 |
| 项目架构 | IM 项目的目录结构和分层说明 | 15 分钟 |
平均每 2-3 天写一篇,一篇 10-15 分钟。12 周下来大概 30-40 篇。
七、8 月底的验收标准
| 验收项 | 标准 |
|---|---|
| Go 语法 | 不用查文档能写出 goroutine + channel 的并发程序 |
| Gin 框架 | 能独立搭一个带中间件的 API 服务 |
| MySQL | 能写 CRUD + 简单联表查询 + 索引基本概念 |
| Redis | 会用 String/Hash/Sorted Set + 缓存穿透/击穿概念了解 |
| Docker | 能把项目打包成镜像并启动 |
| 项目 | 邓明教程的 IM 项目跑通,自己能讲清楚架构和难点 |
| GitHub | 有持续提交记录,项目 README 完善 |
| 算法 | 80-100 道题,能跟面试官讲清楚思路 |
| 简历 | 初稿完成 |
八、开学后到投递(9 月 → 次年 3 月)
1 | 9-12月(研一上,课余时间): |
九、一句话总结
选邓明教程,12 周完成(5.26 → 8.17)。有 C++ 基础,语法阶段快速过,暑假每天 6-8 小时全力推进。核心产出是一个能投实习的 Go 后端项目 + 80-100 道算法题 + 简历初稿。
Go 后端是主线,AI / Agent 是支线加分,C++ 是历史基础和底层标签,Java 是研二根据银行/国企/运营商需求再补的兜底路线。





