← 2026-05-23 📂 All Days 2026-05-26 →

📅 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

**本周题目:** 链表模式从第5题延续到第8题(Remove Nth → Copy with Random → Add Two Numbers → Find Duplicate)

🔗 链表模式:速度比 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)隐式链表 + Floydnums[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 完成了并发与并行第一周,构成完整的选择框架:

任务类型 推荐工具 I/O 密集 + 高并发 → asyncio (Week 1 Day 3-4) I/O 密集 + 简单 → threading (Week 1 Day 1) CPU 密集 → multiprocessing (Week 1 Day 2)

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)

  1. 问题优先,不是技术优先
  2. 全成本核算(TCO):性能之外,还要算学习曲线、招聘难度、运维复杂度
  3. 时间盒验证(Spike,1周)
  4. 事先定好退出条件——不让沉没成本左右决策

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

🔴 优先复习

  1. Raft 安全性证明(Day 50 Deep Dive)—— "为什么有最新日志的节点才能成为 Leader" 这个保证要能口头解释清楚
  2. Floyd 环检测的两阶段(#287)—— Phase 2 为什么 reset 一个指针到起点就能找到入口?要能推导而不是死记
  3. asyncio Semaphore 实战(Day 49)—— 在生产代码中,何时用 Semaphore vs Queue 的判断

🟡 查漏补缺

  1. 推荐系统冷启动三招 —— 新用户/新内容/新平台的策略要能说出具体方案
  2. 影响力问题(Day 48-49)—— 找3个你做过的项目,用"规模 × 深度 × 持久性"框架写下来
  3. multiprocessing Pool API(Day 47)—— map vs imap vs map_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.