从零开始 · TypeScript 全栈 · 用 Claude 开发

东哥的全栈课表

72 个学习日,每天 5–6 小时,学 6 天休 1 天,12 周学完。每一天都配了完整课件:学习目标、上午的讲解和代码示例、下午的分步实操、常见问题、晚上的验收题和参考答案。点开任意一天,照着课件一步一步学就行。用一门语言(TypeScript)从网页一路写到后台和 AI 功能,每个阶段结束都上线一个你自己用得上的作品。

起点
零编程基础
节奏
每天 5–6 小时 · 学 6 休 1
周期
72 天 · 12 周
上线
7 次,每阶段都有作品
DAY 01阶段 0 · 起步
0 / 72 天
在课表中查看 ↓ 勾选的进度保存在本浏览器

第一天预告 · DAY 01

装好开发环境

2026 年 9 月 28 日开始。开始日期可以在上方改。

上午 · 学(2.5 小时)

了解前端、后端、数据库各管什么;安装 Homebrew、Node.js(LTS 版)、Git、VS Code,给 VS Code 装中文语言包、Prettier、ESLint 插件

下午 · 做(2.5 小时)

终端练习 cd、ls、pwd、mkdir、touch、cat、mv、rm、grep、which:建一个 learn 文件夹,在里面建文件、改名、删除;在 Claude Code 里把输出风格切到 Learning

晚上 · 验收(0.5–1 小时)

不看笔记,在终端新建文件夹 day1,进去建 hello.txt,写入一句话,再把内容显示出来。

为什么这样排

按你的情况定制的四个原则

路线图

7 个阶段,7 次上线

第一排是学什么,第二排是这段时间 Claude 扮演的角色,第三排是每次上线的作品。每一格是半周(3 个学习日),点色块可以跳到对应阶段。

Claude L1 老师 L2 审稿人 L3 结对搭档 L4 你来指挥
上线 旧官网 链接页 小游戏 新官网 后台 工作台 正式版
周 第 1 周第 2 周第 3 周第 4 周第 5 周第 6 周第 7 周第 8 周第 9 周第 10 周第 11 周第 12 周

每日节奏

一天 5–6 小时怎么花

上午 · 学

2.5 小时

看教程、跟着敲例子。脑子最清醒的时候留给新概念,每 50 分钟起来休息 10 分钟。

下午 · 做

2.5 小时

做当天的练习或作品。遇到问题先自己查 15 分钟,再问 Claude。

晚上 · 验收

0.5–1 小时

回答当天的验收题,点“让 Claude 考我”,写学习笔记,然后打勾。

每天点开当天的课件,按“上午课件 → 下午动手 → 晚上验收”的顺序学。某一天没学完,就顺延到第二天,不要跳过。整体推迟时,把上方的开始日期往后改,所有日期会跟着重算。每学 6 天完整休息 1 天。

技术栈

每一层只选一个,不在选型上纠结

都是资料多、Claude 写得熟练、对新手友好的选择。先把这一套用熟,以后换别的工具会很快。

层选择为什么
语言TypeScript(先学 JavaScript)浏览器和服务器都能跑;类型检查能帮你抓出自己和 AI 写错的地方
全栈框架Next.js页面和后端接口写在同一个项目里,一次部署
界面React + Tailwind CSS最主流的组合,教程和现成组件最多
数据库PostgreSQL(Neon 托管)+ Prisma不用自己装数据库、管服务器;Prisma 的表结构写法新手也能看懂
登录Better Auth现成的登录方案,不用自己从零写密码和会话
输入校验Zod一份规则同时管前端表单和后端接口
图片存储Vercel Blob上传 look 照片,和部署平台是同一家
测试Vitest + Playwright一个测函数,一个模拟真人在浏览器里点
部署GitHub + Vercelpush 代码自动上线,有新加坡节点
AIClaude Code + Claude API开发时用 Claude Code 写代码;产品里用 @anthropic-ai/sdk 调用 Claude

Claude 协作阶梯

你越来越强,Claude 的角色就往上走一级

一开始就让 Claude 写全部代码,你会得到能跑的项目,但学不会编程。所以前期限制它,后期放开它。

L1DAY 01–24

老师

Claude 做
讲概念、出练习、批改作业、卡住时给提示
你做
每一行代码亲手敲
设置
输出风格切到「Learning」,Claude 会留出 TODO 让你自己写
L2DAY 25–36

审稿人

Claude 做
审查你写的代码,指出 bug 和更好的写法
你做
先自己写,再根据意见自己改
设置
每个功能写完跑一次 /code-review
L3DAY 37–54

结对搭档

Claude 做
在 Plan 模式出方案,写样板代码(表单、表格、配置)
你做
写核心逻辑,逐行读 Claude 的改动
设置
Plan 模式 + 每跑通一步 git commit
L4DAY 55–72

你来指挥

Claude 做
按需求文档和测试实现功能
你做
写需求、CLAUDE.md 和验收标准,审查后合并上线
设置
CLAUDE.md + 测试 + /code-review 三件套
合并进项目的每一行代码,你都要能讲清楚它在干什么。

讲不清,就让 Claude 解释到你讲得清为止。这一条贯穿整个计划。

阶段 0 · DAY 01–03 · 约 3 天

起步:工具和第一次上线

装好所有工具,学会终端和 Git,头 3 天就把你现在的官网放到网上。

Claude 角色 · L1 老师

第 1 周

DAY 01 第 1 周 · 第 1 天 今天

上午 · 学了解前端、后端、数据库各管什么;安装 Homebrew、Node.js(LTS 版)、Git、VS Code,给 VS Code 装中文语言包、Prettier、ESLint 插件

下午 · 做终端练习 cd、ls、pwd、mkdir、touch、cat、mv、rm、grep、which:建一个 learn 文件夹,在里面建文件、改名、删除;在 Claude Code 里把输出风格切到 Learning

晚上 · 验收

不看笔记,在终端新建文件夹 day1,进去建 hello.txt,写入一句话,再把内容显示出来。

DAY 02 第 1 周 · 第 2 天 今天

上午 · 学Pro Git 第 1–2 章:仓库、暂存区、提交、查看历史,以及分支是什么

下午 · 做注册 GitHub 并在终端登录;把 learn 文件夹变成仓库,提交 5 次,推到 GitHub

晚上 · 验收

讲清 git add 和 git commit 的区别;故意改坏一个文件,再用 Git 恢复它。

DAY 03 第 1 周 · 第 3 天 上线今天

上午 · 学一次网页访问的全过程:域名、DNS、HTTP 请求和响应、状态码;Vercel 是做什么的

下午 · 做把桌面上的 dongge-site 文件夹推成 GitHub 仓库,导入 Vercel 得到网址;改一行字再 push,看网站自动更新

晚上 · 验收

用自己的话讲一遍:在手机上打开官网网址,到页面出现,中间发生了什么?

阶段毕业标准

能在终端新建项目、提交到 GitHub,并通过 push 更新线上网站;能向 Claude 说清楚“我想做什么、卡在哪一步”。

资源

阶段 1 · DAY 04–12 · 约 1.5 周

网页基础:HTML + CSS

亲手写出一个在手机上好看的页面。你的粉丝几乎都在手机上刷到你,所以手机效果永远排第一。

Claude 角色 · L1 老师

第 1 周

DAY 04 第 1 周 · 第 4 天 今天

上午 · 学MDN 的 HTML 入门:标题、段落、链接、图片、列表;标签、属性、嵌套

下午 · 做手写一个“关于东哥”页面:一段介绍、三个世界的列表、一张图片、四个平台链接

晚上 · 验收

块级元素和行内元素有什么区别?各举 3 个例子。

DAY 05 第 1 周 · 第 5 天 今天

上午 · 学header、nav、main、section、footer 各用在哪;表单元素 input、textarea、select、button、label

下午 · 做写「链接主页」骨架:头像、一句话介绍、小红书 / TikTok / Facebook / Instagram 四个按钮,再加一个“给东哥留言”表单(先不提交)

晚上 · 验收

为什么按钮要用 button 而不是 div?为什么 input 要配 label?

DAY 06 第 1 周 · 第 6 天 今天

上午 · 学选择器、颜色、字体、单位(px、rem、%)、盒模型(margin、border、padding)

下午 · 做给链接主页加样式:字体、颜色、按钮圆角和间距;用浏览器开发者工具查看每个元素的盒模型

晚上 · 验收

margin 和 padding 有什么区别?用开发者工具找出页面上任意一处间距是哪行 CSS 造成的。

第 2 周

DAY 07 第 2 周 · 第 1 天 今天

上午 · 学Flexbox:主轴、交叉轴、justify-content、align-items、gap、flex-wrap;通关 Flexbox Froggy

下午 · 做用 Flexbox 排链接主页:头像和名字居中,平台按钮在手机上竖排、在电脑上横排

晚上 · 验收

不看资料,把一个方块放到页面正中间(水平垂直都居中)。

DAY 08 第 2 周 · 第 2 天 今天

上午 · 学Grid:grid-template-columns、fr、gap;媒体查询与“手机优先”的写法;通关 Grid Garden

下午 · 做做“三个世界”区块:手机一列、平板两列、电脑三列

晚上 · 验收

什么时候用 Flexbox,什么时候用 Grid?各举一个你页面上的例子。

DAY 09 第 2 周 · 第 3 天 今天

上午 · 学CSS 变量、transition 过渡、hover 状态、用 Google Fonts 引入字体

下午 · 做给绅士、街头、泰风各定一套颜色变量和字体,手动切换 class 看三种效果

晚上 · 验收

用 CSS 变量有什么好处?现场演示:改一个变量,整页颜色一起变。

DAY 10 第 2 周 · 第 4 天 今天

上午 · 学打开现在官网的源码,和 Claude 逐段读 CSS,每段写一句中文注释

下午 · 做把官网里你喜欢的写法(字体组合、大标题、滚动字幕)用到链接主页上

晚上 · 验收

随便指官网上一个元素,说出是哪几行 CSS 让它长成这样。

DAY 11 第 2 周 · 第 5 天 今天

上午 · 学viewport 设置、图片自适应、按钮点击区域的大小;开发者工具的手机模拟模式

下午 · 做在自己手机上打开链接主页,把所有别扭的地方列成清单,逐个修掉

晚上 · 验收

在最小的手机屏幕上,页面没有横向滚动,每个按钮都好点。

DAY 12 第 2 周 · 第 6 天 上线今天

上午 · 学复习本阶段笔记;让 Claude 审查你的 HTML 和 CSS,只列问题不改代码

下午 · 做修完问题,部署到 Vercel,得到一个可以放进各平台简介的网址

晚上 · 验收

不看教程,30 分钟内从零写出一个居中的名片页。

阶段毕业标准

不看教程写出一个手机上好看的单页;能讲清 Flexbox 和 Grid 各适合什么场景。

资源

阶段 2 · DAY 13–24 · 约 2 周

JavaScript:让页面动起来

学会编程的核心:变量、条件、循环、函数、数据。这是整份课表里最重要的两周,后面所有东西都建立在它上面。

Claude 角色 · L1 老师

第 3 周

DAY 13 第 3 周 · 第 1 天 今天

上午 · 学现代 JavaScript 教程“JavaScript 基础知识”一章的前半部分:变量、数据类型、类型转换、运算符

下午 · 做在浏览器控制台和 .js 文件里做 10 道小练习:温度换算、计算年龄、拼接一句自我介绍

晚上 · 验收

let 和 const 有什么区别?"5" + 3 和 "5" - 3 分别得到什么,为什么?

DAY 14 第 3 周 · 第 2 天 今天

上午 · 学if、else、switch、三元运算符;for、while 循环;逻辑运算符 &&、||、!

下午 · 做写 FizzBuzz、猜数字小游戏、打印九九乘法表

晚上 · 验收

不看资料写出 FizzBuzz。

DAY 15 第 3 周 · 第 3 天 今天

上午 · 学函数声明、参数、返回值、箭头函数、作用域

下午 · 做把昨天的练习都改写成函数;写一个 formatDate 函数,把日期变成“10月1日 周四”

晚上 · 验收

参数和返回值分别是什么?举一个“函数忘了 return”导致出错的例子。

DAY 16 第 3 周 · 第 4 天 今天

上午 · 学数组的增删改查;forEach、map、filter、find、includes

下午 · 做准备一个 looks 数组(名字、世界、颜色),用 map 生成标题列表,用 filter 筛出“街头”

晚上 · 验收

map 和 forEach 有什么区别?什么时候用 filter,什么时候用 find?

DAY 17 第 3 周 · 第 5 天 今天

上午 · 学对象的创建、读写、遍历;对象数组;解构赋值;展开运算符 ...

下午 · 做把四个平台做成对象数组(名称、链接、颜色),写一个按名称查找平台的函数

晚上 · 验收

user.name 和 user["name"] 分别在什么时候用?

DAY 18 第 3 周 · 第 6 天 今天

上午 · 学复习本周笔记,让 Claude 根据你的笔记出 10 道综合题

下午 · 做用 Node.js 运行一个文字版“你最需要哪个东哥”:固定一组答案,算出得分最高的世界

晚上 · 验收

两个世界同分时,你的计分函数会怎样?应该怎样?

第 4 周

DAY 19 第 4 周 · 第 1 天 今天

上午 · 学现代 JavaScript 教程第二部分“Document”:选中元素、改文字和样式、创建和删除元素

下午 · 做用 JavaScript 从 looks 数组生成卡片,插入到页面里

晚上 · 验收

textContent 和 innerHTML 有什么区别?为什么把用户输入直接放进 innerHTML 很危险?

DAY 20 第 4 周 · 第 2 天 今天

上午 · 学addEventListener、点击和输入事件、事件对象、事件冒泡与委托

下午 · 做给链接主页加风格切换按钮:一点就换成绅士、街头或泰风;用 localStorage 记住访客的选择

晚上 · 验收

用你自己的页面举例,解释事件冒泡。

DAY 21 第 4 周 · 第 3 天 今天

上午 · 学表单的 submit 事件、preventDefault、读取输入值、简单校验

下午 · 做完成“给东哥留言”表单的前端校验:不能为空、限制长度、提交后显示感谢(先存在 localStorage)

晚上 · 验收

提交表单时为什么通常要调用 preventDefault?

DAY 22 第 4 周 · 第 4 天 今天

上午 · 学回调、Promise、async/await、JSON、fetch;用 try/catch 处理错误

下午 · 做把平台链接和介绍文字挪进 data.json,用 fetch 读取后显示;故意写错文件名,显示友好的出错提示

晚上 · 验收

用点外卖打比方,讲清 Promise 和 async/await。

DAY 23 第 4 周 · 第 5 天 今天

上午 · 学import / export;npm 是什么;package.json;用 Vite 创建一个原生 JavaScript 项目

下午 · 做开始做测试小游戏:写好 6 道题的数据,一题一题显示,记录答案

晚上 · 验收

npm install 做了什么?node_modules 为什么不提交到 Git?

DAY 24 第 4 周 · 第 6 天 上线今天

上午 · 学完成计分和结果页:显示对应的世界和一句话,文案守住“说事情不说情话”

下午 · 做把结果做成适合手机截图分享的卡片,部署上线

晚上 · 验收

请两位朋友在手机上做一遍,记下他们卡住或觉得别扭的地方。

阶段毕业标准

能用 JavaScript 独立做出一个有交互、有数据的小页面;能讲清同步和异步的区别。

资源

阶段 3 · DAY 25–36 · 约 2 周

TypeScript + React

给代码加上类型,用组件的方式搭页面,把官网重做成 React 版。

Claude 角色 · L2 审稿人

第 5 周

DAY 25 第 5 周 · 第 1 天 今天

上午 · 学TypeScript Handbook:基本类型、类型推断、数组和对象的类型、函数的类型

下午 · 做把测试小游戏改写成 TypeScript,逐个修掉编辑器报的错

晚上 · 验收

TypeScript 是在写代码时报错,还是在用户打开网页时报错?这对你有什么好处?

DAY 26 第 5 周 · 第 2 天 今天

上午 · 学interface 和 type、可选属性、联合类型、字面量类型、泛型入门

下午 · 做给 Look、Platform、QuizQuestion 定义类型;用字面量类型规定世界只能是 gentleman、street、thai 之一

晚上 · 验收

interface 和 type 你会怎么选?联合类型帮你防住了什么错误?

DAY 27 第 5 周 · 第 3 天 今天

上午 · 学React 中文文档“快速入门”:组件、JSX、props;用 Vite 创建 React + TypeScript 项目

下午 · 做把链接主页拆成 Avatar、Intro、PlatformButton 三个组件

晚上 · 验收

组件是什么?PlatformButton 为什么要通过 props 接收链接和名称?

DAY 28 第 5 周 · 第 4 天 今天

上午 · 学渲染列表和 key;条件渲染;组件组合与 children

下午 · 做用 looks 数据渲染卡片列表;没有数据时显示一个空状态

晚上 · 验收

列表为什么需要 key?用数组下标当 key 会有什么问题?

DAY 29 第 5 周 · 第 5 天 今天

上午 · 学useState、事件处理、为什么不能直接修改 state、state 更新后何时生效

下午 · 做用 React 的 state 重做风格切换;再加一个“只看某个世界”的筛选

晚上 · 验收

props 和 state 有什么区别?

DAY 30 第 5 周 · 第 6 天 今天

上午 · 学受控组件与表单处理;useEffect 的用途和依赖数组

下午 · 做用 React 重写留言表单;用 useEffect 把风格选择存进 localStorage

晚上 · 验收

useEffect 的依赖数组写空数组、不写、写变量,分别会怎样?

第 6 周

DAY 31 第 6 周 · 第 1 天 今天

上午 · 学状态提升、组件之间传数据;让 Claude 在 Plan 模式出组件树方案,代码你自己写

下午 · 做实现题目组件、进度条、结果页

晚上 · 验收

“当前第几题、选了什么”这些 state 放在哪个组件里?为什么?

DAY 32 第 6 周 · 第 2 天 今天

上午 · 学Tailwind 的思路;常用类:间距、颜色、字体、flex、grid、响应式前缀 sm: md: lg:

下午 · 做用 Tailwind 重做链接主页的样式

晚上 · 验收

Tailwind 的 md: 前缀是什么意思?

DAY 33 第 6 周 · 第 3 天 今天

上午 · 学规划新官网的页面:首页、三个世界、链接页、测试入口;画出组件树

下午 · 做搭好首页和导航,尽量复用已经写好的组件

晚上 · 验收

哪些组件在多个页面复用了?

DAY 34 第 6 周 · 第 4 天 今天

上午 · 学React Router:多页面、Link、动态路由 /world/:id

下午 · 做做三个世界的详情页,数据都来自同一个 TypeScript 文件

晚上 · 验收

为什么三个世界共用一个页面组件,而不是写三个页面?

DAY 35 第 6 周 · 第 5 天 今天

上午 · 学图片优化、加载状态、404 页面;用 /code-review 审查组件

下午 · 做按审查意见修改,在手机上逐页检查

晚上 · 验收

说出审查意见里你接受的 2 条和不接受的 1 条,以及理由。

DAY 36 第 6 周 · 第 6 天 上线今天

上午 · 学上线前检查:构建没有报错、手机显示正常、所有链接都能点

下午 · 做部署上线,替换旧的静态版官网

晚上 · 验收

不看教程,从零建一个 React 项目,做出一个带筛选的列表。

阶段毕业标准

能把一个设计稿拆成组件并用 React 实现;能讲清 props 和 state 的区别。

资源

阶段 4 · DAY 37–54 · 约 3 周

Next.js 全栈:数据库、登录、后台

从“会做页面”变成“会做产品”。给官网加上数据库、管理员登录、内容后台和粉丝提问箱。时间给得最多,是整份课表的核心。

Claude 角色 · L3 结对搭档

第 7 周

DAY 37 第 7 周 · 第 1 天 今天

上午 · 学Next.js 官方教程开头几章:创建项目、样式、字体和图片、页面与布局

下午 · 做跟着教程把示例项目的骨架做出来

晚上 · 验收

在 Next.js 里,文件夹结构怎么决定网址?

DAY 38 第 7 周 · 第 2 天 今天

上午 · 学Link、动态路由、嵌套布局、loading 和 not-found 页面

下午 · 做继续教程;同时新建 dongge-web 项目,把 React 版官网的页面迁移过来

晚上 · 验收

layout 和 page 有什么区别?

DAY 39 第 7 周 · 第 3 天 今天

上午 · 学服务端组件和客户端组件的区别;什么时候要加 "use client"

下午 · 做完成官网迁移:决定哪些组件留在服务端,哪些必须放到客户端(比如测试小游戏)

晚上 · 验收

测试小游戏为什么必须是客户端组件?

DAY 40 第 7 周 · 第 4 天 今天

上午 · 学数据库、表、行、列;CREATE TABLE、INSERT、SELECT、WHERE、ORDER BY、UPDATE、DELETE

下午 · 做在 Neon 建一个 PostgreSQL 数据库(选新加坡区域),在它的 SQL 编辑器里手写 20 条练习

晚上 · 验收

写一条 SQL:查出所有“街头”世界的 look,按时间从新到旧排。

DAY 41 第 7 周 · 第 5 天 今天

上午 · 学主键、外键、一对多关系、JOIN;索引是做什么的

下午 · 做设计 worlds、looks、questions 三张表,画出关系图,让 Claude 审查

晚上 · 验收

looks 和 worlds 是什么关系?外键应该放在哪张表?

DAY 42 第 7 周 · 第 6 天 今天

上午 · 学Prisma:schema 写法、迁移、用 Prisma Client 增删改查

下午 · 做用 Prisma 建好三张表,写一个种子数据脚本,首页改为从数据库读取 looks

晚上 · 验收

改了 schema 之后要做什么,数据库才会跟着变?

第 8 周

DAY 43 第 8 周 · 第 1 天 今天

上午 · 学Server Actions 与表单;revalidatePath;Route Handlers 是什么

下午 · 做做「粉丝提问箱」:粉丝提交的问题存进数据库

晚上 · 验收

表单提交后,数据是怎么从浏览器一路走到数据库的?

DAY 44 第 8 周 · 第 2 天 今天

上午 · 学用 Zod 定义规则;为什么服务端校验必不可少;怎么把错误信息返回给表单

下午 · 做给提问箱加校验和提示:长度限制、空内容、防止连点重复提交

晚上 · 验收

只在前端校验为什么不够?

DAY 45 第 8 周 · 第 3 天 今天

上午 · 学.env 与密钥管理、Vercel 的环境变量;XSS、CSRF、SQL 注入的原理

下午 · 做让 Claude 扮演攻击者检查提问箱,只讲问题和原理,你自己修

晚上 · 验收

XSS 是怎么发生的?React 默认帮你挡住了哪一部分?

DAY 46 第 8 周 · 第 4 天 今天

上午 · 学认证和授权的区别;Session 与 Cookie;Better Auth 快速上手

下午 · 做接入 Better Auth,做好管理员登录页

晚上 · 验收

认证和授权有什么区别?密码为什么绝不能明文存储?

DAY 47 第 8 周 · 第 5 天 今天

上午 · 学在服务端检查登录状态;未登录跳转到登录页

下午 · 做建后台首页 /admin,只有你登录后才能进;加上退出登录

晚上 · 验收

有人直接在浏览器输入 /admin 会怎样?有人绕过页面直接调用你的 Server Action 呢?

DAY 48 第 8 周 · 第 6 天 今天

上午 · 学列表页、表单复用、编辑与删除、删除前确认

下午 · 做完成 looks 的新建、编辑、删除;表格和表单的样板代码交给 Claude,业务逻辑你自己写

晚上 · 验收

删除操作为什么要在服务端再检查一次登录状态?

第 9 周

DAY 49 第 9 周 · 第 1 天 今天

上午 · 学文件上传的原理;Vercel Blob;限制图片大小和格式

下午 · 做look 支持上传照片,并在前台显示

晚上 · 验收

为什么要在服务端限制文件的大小和类型?

DAY 50 第 9 周 · 第 2 天 今天

上午 · 学用状态字段表示待审核、已通过、已隐藏;按状态筛选

下午 · 做后台审核提问,通过后才在前台显示;你可以给每条写回答

晚上 · 验收

为什么不直接删掉不想展示的提问,而是用状态字段?

DAY 51 第 9 周 · 第 3 天 今天

上午 · 学测试是什么;Vitest;先测纯函数:计分、日期格式、校验规则

下午 · 做给测试小游戏的计分和 Zod 规则写 15 个测试

晚上 · 验收

你写的测试里,哪一个最能防止以后不小心改坏东西?

DAY 52 第 9 周 · 第 4 天 今天

上午 · 学Playwright:模拟真人打开页面、填表、点击

下午 · 做写 3 条流程测试:粉丝提交提问、管理员登录、发布 look 后前台能看到

晚上 · 验收

单元测试和端到端测试各适合测什么?

DAY 53 第 9 周 · 第 5 天 今天

上午 · 学GitHub Actions;分支加 Pull Request 的工作流

下午 · 做配置 CI:每次 push 自动跑类型检查、测试和构建;从今天起改功能都走 Pull Request

晚上 · 验收

故意让一个测试失败,读懂 CI 日志里的报错。

DAY 54 第 9 周 · 第 6 天 上线今天

上午 · 学全项目跑 /code-review,修完高优先级问题

下午 · 做把数据库迁移到正式环境,上线;以后更新内容不用再改代码

晚上 · 验收

不看代码,讲一遍:在后台新增一条 look,从点“保存”到前台出现,经历了什么。

阶段毕业标准

能独立做出“前台 + 后台 + 数据库 + 登录”的网站;能讲清一次表单提交从浏览器走到数据库的全过程。

资源

阶段 5 · DAY 55–63 · 约 1.5 周

AI 与数据:你的内容工作台

在自己的产品里接入 Claude,做一个帮你写文案的助手,再加一个看各平台数据的看板。这部分只有你能登录使用。

Claude 角色 · L4 你来指挥

第 10 周

DAY 55 第 10 周 · 第 1 天 今天

上午 · 学大模型 API 是什么:token、系统提示词、上下文;申请 API Key,在控制台设好用量上限,Key 只放进服务端环境变量

下午 · 做用 @anthropic-ai/sdk 写一个最小接口:输入一句话,返回 Claude 的回答

晚上 · 验收

API Key 如果写进浏览器端代码,会发生什么?

DAY 56 第 10 周 · 第 2 天 今天

上午 · 学流式输出的原理;在 Next.js 里把回答一段段推到页面

下午 · 做做一个简单的对话页:回答逐字显示,可以中途停止

晚上 · 验收

为什么流式输出会让人感觉更快?

DAY 57 第 10 周 · 第 3 天 今天

上午 · 学写系统提示词的方法:角色、背景、要求、示例、输出格式

下午 · 做为文案助手写系统提示词:人设、女性观众视角、“说事情不说情话”、小红书和 TikTok 的风格差异

晚上 · 验收

你的提示词里,删掉哪一句后输出变差得最明显?

DAY 58 第 10 周 · 第 4 天 今天

上午 · 学结构化输出:让 Claude 按固定格式返回标题、正文、标签

下午 · 做做文案助手页面:选一个世界、输入视频主题,生成小红书和 TikTok 两版草稿

晚上 · 验收

用 5 个真实主题测试,每条输出打 1–5 分,记下问题。

DAY 59 第 10 周 · 第 5 天 今天

上午 · 学把生成结果存进数据库;控制成本:限制输入长度和每天的使用次数

下午 · 做草稿可以收藏、修改、标记“已发布”;根据昨天的打分改提示词,再测一轮

晚上 · 验收

改完提示词后平均分提高了吗?哪一处改动最有效?

DAY 60 第 10 周 · 第 6 天 今天

上午 · 学埋点的思路;怎么防止刷量;按天汇总数据

下午 · 做记录四个平台按钮的点击次数,以及测试小游戏的结果分布

晚上 · 验收

一个人连点 100 次按钮,你的统计会变成什么样?

第 11 周

DAY 61 第 11 周 · 第 1 天 今天

上午 · 学图表库 Recharts 入门;按周汇总数据的 SQL

下午 · 做在后台做看板:每周各平台的点击数、各个世界在测试结果里的占比

晚上 · 验收

看板上你最想每周看的一个数字是什么?为什么?

DAY 62 第 11 周 · 第 2 天 今天

上午 · 学后台的导航和布局;整理目录和代码结构

下午 · 做把文案助手和看板合成「东哥内容工作台」

晚上 · 验收

让 Claude 通读代码,指出结构上最该改的一处。你同意吗?为什么?

DAY 63 第 11 周 · 第 3 天 上线今天

上午 · 学给 AI 功能写测试(模拟 API 的返回);跑 /code-review

下午 · 做上线自用,接下来一周真的用它来写文案

晚上 · 验收

用工作台生成的文案,至少有一条真的发出去了。

阶段毕业标准

能在自己的产品里调用 AI;能判断 AI 的输出好不好,知道怎么通过改提示词让它变好。

阶段 6 · DAY 64–72 · 约 1.5 周

打磨上线:「三岁的东哥」正式版

把前面做的所有东西打磨成一个快、稳、安全的正式产品,绑定域名,正式对外。

Claude 角色 · L4 你来指挥

第 11 周

DAY 64 第 11 周 · 第 4 天 今天

上午 · 学回看所有功能,写正式版的需求文档:保留什么、改什么、明确不做什么

下午 · 做写好 CLAUDE.md 和 README;在 Plan 模式出改进方案,拆成 GitHub issue

晚上 · 验收

正式版必须有的 3 个功能,和明确不做的 3 个功能分别是什么?

DAY 65 第 11 周 · 第 5 天 今天

上午 · 学Lighthouse 怎么看;图片格式与懒加载;字体加载

下午 · 做把首页的 Lighthouse 性能分跑到 90 以上

晚上 · 验收

哪一项改动让分数提高得最多?

DAY 66 第 11 周 · 第 6 天 今天

上午 · 学页面标题、描述、Open Graph 分享图;sitemap

下午 · 做给每个页面配好分享卡片;让测试小游戏的结果页生成专属分享图

晚上 · 验收

把网址发到聊天软件里,预览卡片好看吗?

第 12 周

DAY 67 第 12 周 · 第 1 天 今天

上午 · 学限流、输入长度限制、防机器人提交的思路;错误页面

下午 · 做给提问箱和文案助手加限流;做好 404 和 500 页面

晚上 · 验收

有人用脚本每秒提交 100 条提问,现在会怎样?

DAY 68 第 12 周 · 第 2 天 今天

上午 · 学数据库备份与恢复;Vercel 日志;错误监控

下午 · 做做一次备份恢复演练;故意制造一个错误,在日志里找到它

晚上 · 验收

线上出错时,你第一步去哪里看?

DAY 69 第 12 周 · 第 3 天 今天

上午 · 学域名与 DNS 记录(A、CNAME);HTTPS

下午 · 做绑定你的域名(还没有的话先选一个买下),确认所有页面都走 HTTPS

晚上 · 验收

你打开网站时,DNS 解析起了什么作用?

DAY 70 第 12 周 · 第 4 天 今天

上午 · 学全项目跑一次 /code-review

下午 · 做修完所有高优先级问题,补上缺的测试

晚上 · 验收

CI 全部通过,没有未处理的高优先级问题。

DAY 71 第 12 周 · 第 5 天 上线今天

上午 · 学按上线检查清单逐项过一遍

下午 · 做正式发布,把新官网放进各平台简介

晚上 · 验收

在手机、电脑、不同浏览器上各打开一遍,功能都正常。

DAY 72 第 12 周 · 第 6 天 今天

上午 · 学写复盘:学会了什么、哪里最难、哪些部分是 Claude 替你做的

下午 · 做让 Claude 回顾代码,找出你最薄弱的 3 个知识点;决定下一步:Go 进阶、手机 App,或继续加功能

晚上 · 验收

不看代码,给朋友讲清你的网站每一层是怎么工作的。

阶段毕业标准

一个真实在线、每一层你都讲得清的产品,外加一路上的 6 个作品。接外包或找工作时,这就是你的作品集。

资源

毕业之后 · 可选

Go 进阶路线,按你的节奏约 3 周

有了全栈基础再学 Go 会快很多。适合想往后端方向深入,或者想把服务跑在自己服务器上的时候。学到这里时回来找我,我再把它细化到每一天。

第 13 周

Go 语法

A Tour of Go + Go by Example。你已经会编程,重点看 Go 和 TypeScript 不一样的地方:指针、接口、错误处理、goroutine。

第 14 周

用 Go 重写一个服务

把点击统计单独拆出来,用 Go 标准库 net/http + PostgreSQL 重写,配上测试。

第 15 周

部署到自己的服务器

Docker 打包,部署到你那台新加坡 EC2,用 Caddy 配 HTTPS,和 Vercel 上的官网对接。

提示词模板

5 句话,覆盖大部分学习场景

把【】里的内容换成你自己的,直接复制到 Claude Code。

Claude Code 七条规矩

从第一天就养成的习惯