📅 Week in Review — Week 11 (10 min read)
📊 NeetCode: 42/150 · SysDesign: 41/40 · Behavioral: 41/40 · Frontend: 37/50 · AI: 20/30
🔥 50天连击!里程碑达成!
🗓️ 本周回顾 / This Week's Journey
本周概览: Day 46–50,全程 Mastery 阶段冲刺,Python Craft 并发与异步三连,链表模式完成 8/11,完成了关键里程碑——第 50 天!
Week overview: Days 46–50, deep in the Mastery phase. Three consecutive Python Craft concurrency lessons, Linked List pattern reached 8/11, and a major milestone hit — Day 50!
| 日期 | 亮点 |
|---|---|
| 周一 5/18 (Day 46) | 推荐系统设计 · 删除倒数第N个节点 · 技术评估框架 · threading + GIL · KV Cache & Speculative Decoding |
| 周二 5/20 (Day 47) | 分布式共识 Raft/Paxos · 随机指针链表深拷贝 · 扭转失败项目 · multiprocessing Pool · AI 新闻:Karpathy加入Anthropic |
| 周三 5/21 (Day 48) | 实时游戏后端设计 · Add Two Numbers · 最有影响力的项目 · asyncio 基础 · AI 安全与对齐 |
| 周四 5/22 (Day 49) | 实时游戏后端(进阶:100人战场) · Floyd环检测找重复数字 · 影响力框架深化 · asyncio模式:gather/Semaphore/Queue · AI新闻:Nvidia创纪录 |
| 周六 5/23 (Day 50) | 🏆 里程碑! Raft 深度剖析 18 分钟深潜 + 复习 Day 46–49 |
🏗️ 系统设计:核心要点 / System Design: Key Takeaways
本周涵盖 / Topics covered: 推荐系统、分布式共识 (Raft/Paxos)、实时游戏后端(两天深挖)
🎯 推荐系统 — 两阶段架构
推荐系统的工业标准是候选生成 → 精排,不是偶然:
- 候选生成(50ms 预算):召回优先,用轻量模型从百万候选里筛出 500 个
- 精排(100ms 预算):精度优先,用复杂模型从 500 里选出最终 20 个
- 核心权衡:准确性 vs 多样性 — Netflix 有显式的 diversity budget,防止用户陷入信息茧房
- 冷启动三招:新用户推热门内容、新内容靠内容特征曝光、新平台先积累数据
The industry two-stage approach — candidate generation → ranking — exists for good reason: different latency budgets demand different model complexity. Accuracy vs. diversity is a real tradeoff Netflix explicitly manages.
⚡ 分布式共识 — Raft 核心保证
Raft 把共识拆为三个子问题(选举、日志复制、安全性),连接点是:
- Quorum 为什么是多数派? 任意两个多数派集合至少有 1 个共同成员,保证信息传递,
N=2f+1容忍f个故障 - 随机化选举超时 防止 split vote(避免所有人同时成为候选人)
- 别混淆"committed"(多数派确认)和"applied"(状态机执行)——从 Follower 读可能读到"committed but not applied"的数据
What connects all three: the quorum invariant. Any two majority sets overlap, which is why Raft can guarantee that committed entries survive leader changes.
🎮 实时游戏后端 — 两个关键模型
Day 48 和 Day 49 都涵盖了游戏后端,形成完整视图:
- Authoritative Server Model:服务器是最终裁判,客户端预测本地渲染 + 服务器定期校正
- Delta Compression:不广播完整状态(几KB),只发变化的部分(约20字节/玩家)— 100玩家×60Hz×(100×20B) ≈ 12MB/s total server bandwidth
- UDP vs TCP:FPS 游戏选 UDP,因为过时的位置数据还不如直接丢弃;QUIC 结合两者优点
The common thread: low-latency systems require state in memory (never DB mid-game), server authority (trust no client), and delta compression (bandwidth is finite).
💻 算法:模式总结 / Algorithms: Patterns Mastered
🔗 链表模式:速度比 vs 间距 vs 隐式链表
| 题目 | 核心变体 | 关键洞察 |
|---|---|---|
| #19 Remove Nth (Day 46) | 固定间距双指针 | fast 先走 N+1 步(不是N步),slow 落在删除节点前一个 |
| #138 Copy Random Pointer (Day 47) | Hash Map 两遍 | 先建映射再连线;进阶:交织法 O(1) 空间 |
| #2 Add Two Numbers (Day 48) | Dummy Node + 进位 | while l1 or l2 or carry——别漏最后一次进位! |
| #287 Find Duplicate (Day 49) | 隐式链表 + Floyd | nums[i] 即 next 指针,重复数字 = 环的入口 |
本周最重要规律: 链表双指针只有两个调参维度——速度比(2:1 vs 1:1)和初始间距(0 vs N)。#287 更进一步:数组本身可以成为隐式链表,floyd 环检测不局限于链表节点。
The week's key insight: "linked list" is an abstraction, not a data structure. Wherever you see "value as index/pointer," Floyd's cycle detection applies.
🐍 Python Craft:并发三连 / Python Craft: The Concurrency Trilogy
本周 Python Craft 完成了并发与并行第一周,构成完整的选择框架:
Day 46 — threading + GIL: GIL 的本质是"I/O 时释放",这才是多线程对 I/O 任务有效的原因,对 CPU 密集任务无效。
Day 47 — multiprocessing: 每个进程独立解释器绕过 GIL;Pool.map 是首选;if name == "main": 在 macOS/Windows 是必须的;lambda 不可 pickle 是常见坑。
Day 48 — asyncio 基础: await = "放进烤箱,先去干别的";绝对不要在协程里用 time.sleep(),用 asyncio.sleep() 或 asyncio.to_thread()。
Day 49 — asyncio 进阶模式: Semaphore 是生产中最关键的工具——gather 无限制并发会瞬间耗尽资源或触发限流;Queue 解耦生产者消费者速率。
Three days that build a complete mental model: threading (I/O, GIL releases), multiprocessing (CPU, separate processes), asyncio (I/O, single thread, cooperative scheduling). Know when to use which.
🗣️ 软技能:练习重点 / Soft Skills: What to Practice
本周场景: 技术采纳框架 · 扭转失败项目 · 最有影响力的工作(重复强化两天)
四步技术评估框架(Day 46)
- 问题优先,不是技术优先
- 全成本核算(TCO):性能之外,还要算学习曲线、招聘难度、运维复杂度
- 时间盒验证(Spike,1周)
- 事先定好退出条件——不让沉没成本左右决策
The framework matters more than any specific answer. "We rejected Kubernetes because our 8 services didn't need it" is more impressive than "we adopted Kubernetes."
影响力框架(Day 48-49,重点强化)
- 影响力 = 规模 × 深度 × 持久性(不是技术复杂度)
- 量化三维:用户数 + 性能指标 + 业务指标
- Staff+ 补充:展示跨团队影响、主动发现问题 > 被分配任务
- 常见弱点:只讲技术决策,忘了说业务结果
Biggest gap most engineers have: linking technical work to business outcomes. If you can't say how many users or dollars your work affected, practice estimating.
🤖 AI:本周知识点 / AI: What Stuck
本周 AI 内容: 推理优化(KV Cache + Speculative Decoding)· AI 新闻两期 · AI 安全与对齐
推理优化双剑(Day 46 重要概念)
- KV Cache:避免重复计算 Attention,代价是 GPU VRAM(1M context 下可占 70-90%);PagedAttention(vLLM)用虚拟内存管理减少碎片,同等显存处理 2x 并发
- Speculative Decoding:小模型快速猜测多个 token → 大模型并行验证,目标吞吐量提升 2-3x;Intel+Weizmann 据报道新方法可达 2.8x(注:据报道)
AI 安全与对齐(Day 48 核心概念)
对齐的核心挑战:让 AI 做我们真正想要的事,而不只是我们字面上说的事。
- 三层次:能力对齐 → 价值对齐 → 目标对齐(难度递增)
- Constitutional AI:让模型根据"宪法"原则自我审查,减少人工标注依赖
- 2026 年现状:EU AI Act 透明度规则 8 月生效;CISA 发布 Agentic AI 安全指南;Anthropic 与多元群体合作扩展价值观讨论
本周 AI 新闻亮点(以下为新闻内容,据报道)
- Andrej Karpathy 加入 Anthropic(据报道,Day 47),专注 R&D,此前在做 AI-native 教育项目
- Nvidia Q1 FY2027 数据中心营收同比增长 92%(据报道,Day 49),AI 算力需求远未见顶
- Intuit 裁员约 17%(据报道,Day 49),重心转向 AI 产品——"AI 替代人手"从概念走向 HR 决策
- Figma AI Agent 上线(据报道,Day 47),AI 设计辅助工具加速设计-前端协作变革
⚠️ 需要复习的内容 / What to Review
🔴 优先复习
- Raft 安全性证明(Day 50 Deep Dive)—— "为什么有最新日志的节点才能成为 Leader" 这个保证要能口头解释清楚
- Floyd 环检测的两阶段(#287)—— Phase 2 为什么 reset 一个指针到起点就能找到入口?要能推导而不是死记
- asyncio Semaphore 实战(Day 49)—— 在生产代码中,何时用 Semaphore vs Queue 的判断
🟡 查漏补缺
- 推荐系统冷启动三招 —— 新用户/新内容/新平台的策略要能说出具体方案
- 影响力问题(Day 48-49)—— 找3个你做过的项目,用"规模 × 深度 × 持久性"框架写下来
- multiprocessing Pool API(Day 47)——
mapvsimapvsmap_async的区别和适用场景
Biggest risk: the concurrency trilogy (threading/multiprocessing/asyncio) is a lot to absorb in three days. If you can explain the "when to use which" decision tree without notes, you're set.
🏆 本周亮点 / Win of the Week
🎉 Day 50 达成!连续 50 天,进入 Mastery 阶段,完成 Raft 深潜!
50 天前,从 Client-Server Model 和 Two Sum 起步。今天,可以设计分布式共识算法、分析 AI 推理优化,用 asyncio 写生产级并发代码,并用 Floyd 算法把数组问题变成链表问题求解。
这不是 50 天的积累——这是复利。每一天的"链表模式 N/11",每一个"举一反三"框,每一道 quiz,都在为下一道更难的题打地基。
坚持到这里本身就是最大的胜利。
Day 50: the halfway point of the NeetCode block. You've gone from Two Sum to Floyd's cycle detection, from Client-Server to distributed consensus. The compounding has started. Keep showing up.
🎯 下周预告 / Next Week Preview
根据当前进度(NeetCode: 42/150 · Frontend: 37/50 · AI: 20/30),下周将继续:
系统设计(已完成 41/40!): SysDesign 已超出原计划,下周可能进入复习巩固模式或更高难度的综合题
算法(链表模式 8/11): 继续链表剩余 3 题,之后进入新模式(Binary Tree 或 Graph?)
Python Craft: 并发第一周收官 + 新主题开始(可能是性能分析、装饰器/元类,或测试)
软技能: 接近 Staff 级别的题目,准备好跨组织影响力和技术愿景类问题
AI: 继续 Mastery 阶段,可能涵盖 AI 工程实践(Evaluation、部署流水线)
一句话: 下周是巩固压实的关键周 — 链表收尾,新模式开始,Python Craft 迎来新篇章。
Next week is consolidation week: finish the linked list block strong, watch for what pattern comes next, and make sure the concurrency trilogy sticks before moving on.