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
3
4
5
阶段一(2周):语法速通 → 能看懂和写 Go 程序
阶段二(2周):Web 基础 → Gin + MySQL + Redis,能写 API
阶段三(5周):主体项目 → 跟着课程做完整后端项目
阶段四(2周):高级功能 → Kafka、热榜、IM 系统
阶段五(1周):收尾 + 简历

利用 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
2
3
4
5
口 视频全部看完(该倍速的倍速,该细看的细看)
口 课程作业完成(先自己做,卡了再看讲解)
口 代码已提交 GitHub
口 本周笔记已整理
口 算法题 5 道(保持手感)

阶段四:高级功能(第 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]boolmap[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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
现在 → 8月中(12周)
└── 只看邓明教程,C++ 不看,Agent 不看
└── 唯一并行的是每天一道算法题(用 Go 刷)

8月底结束教程后:
└── 先花 1-2 天评估自己 Go 掌握程度

9月-10月(研一上开学后):
主线:给 Go 项目加入 RAG 功能(Agent 从这里自然切入)
副线:C++ 每周只花 1 小时——翻翻旧项目的代码和文档,保持记忆

11月-12月:
└── 项目完善(加缓存、加日志、加 Docker Compose)
└── 整理面试材料(C++ 旧项目复盘文档 + Go 项目文档)
└── 算法刷到 150 题

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
9-12月(研一上,课余时间):
└── 项目扩展:加入 RAG 功能(文档上传→文本切片→向量检索→大模型问答)
└── 继续刷算法到 150 题
└── C++ 旧项目每周复盘 1 小时(保留面试材料)

1-2月(研一寒假):
└── 项目完善:加日志、加限流、加 Docker Compose
└── 简历 v1.0 + 小范围试投(10-20 家)

3-6月(研一下):
└── 正式投递,主投 Go 后端实习
└── 面试复盘,查漏补缺

7-9月(研一暑假):
└── 第一段实习 ✓

九、一句话总结

选邓明教程,12 周完成(5.26 → 8.17)。有 C++ 基础,语法阶段快速过,暑假每天 6-8 小时全力推进。核心产出是一个能投实习的 Go 后端项目 + 80-100 道算法题 + 简历初稿。

Go 后端是主线,AI / Agent 是支线加分,C++ 是历史基础和底层标签,Java 是研二根据银行/国企/运营商需求再补的兜底路线。