目录
引言:你收藏的 1000 篇文章去哪了
每个程序员大概都有过这种时刻:看到一篇好文章,随手丢进「稍后读」或收藏夹,然后……再也没有打开过。收藏从未停止,学习从未开始。等真正要用到某个知识点时,你记得「我好像在哪看过」,却翻遍浏览器书签、微信收藏、Notion、本地 Markdown 也找不到。
问题不在于你不努力,而在于你只做了「收集」,没做「整理」和「输出」。本文分享一套适合程序员的极简知识管理方法:不追求花哨的笔记软件,只用 Markdown + 一个 Shell 脚本,把信息囤积变成可复用的知识资产。
一、先想清楚:我们要管理的是「知识」还是「信息」
信息(Information)是别人生产的、未经消化的原料:一篇文章、一条推文、一段视频。知识(Knowledge)是你内化后、能用自己话复述、能指导行动的东西。
很多人的「知识管理」其实只是在做信息搬运:把网页剪藏进笔记软件,以为存下来就等于学会了。但实际上,存下来只是改变了信息存放的位置,没有改变它和你之间的关系。
所以第一条原则是:收集要快,整理要狠,输出要经常。收集阶段不评判、不整理,几十秒丢进一个统一入口;之后再用固定的节奏去消化,把值得留下的信息加工成自己的笔记。
二、一套够用的三层结构
不必一上来就上 Zettelkasten(卡片盒)那套复杂的链接体系,也不必把 PARA 当成金科玉律。对绝大多数人,三层结构就够用:
notes/├── 0-inbox/ # 收集箱:所有新东西先丢这里,不做整理├── 1-archive/ # 归档库:消化过的、按主题分类的永久笔记└── index.md # 索引:跳转入口,按主题聚合- 0-inbox(收集箱):唯一入口。看到好东西,30 秒内丢进来,附上一句「为什么觉得有用」。这一步越快越好,摩擦越小越能坚持。
- 1-archive(归档库):每周固定时间回顾 inbox,把值得留下的加工成永久笔记,按主题归类。
- index.md(索引):一份「主题 → 相关笔记列表」的手工目录。它比搜索更重要,因为它体现了你对知识结构的主动梳理。
这个结构对应的是 Tiago Forte 的 PARA 方法中「Projects(项目)→ Areas(领域)→ Resources(资源)→ Archive(归档)」的精简版:先有入口,再有沉淀,最后有归档。
三、每篇笔记只回答一个问题
程序员写笔记最大的误区,是把笔记写成「大而全的教程」或「会议纪要」。这样的笔记很难复用,因为它的边界模糊。
更好的做法是:一篇笔记只回答一个具体问题。比如不要写「HTTP 协议」,而是写「为什么浏览器要限制并发连接数」。原子化的笔记更容易被链接、被引用、被复用。写的时候问自己三个问题:
- 这条信息解决了我什么问题?
- 我能不能用自己的话讲清楚?
- 下次我在什么场景会用到它?
如果答不上来,这条信息大概率不值得留下来。
四、一个可运行的极简工作流
下面是一个完整的 Bash 脚本,实现了「收集 → 回顾 → 归档」的闭环。你可以直接复制进 ~/.local/bin/pkm.sh 并 chmod +x。
#!/usr/bin/env bash# 极简笔记工作流:new(收集)→ review(回顾)→ archive(归档)set -euo pipefailshopt -s nullglob
NOTES_DIR="${NOTES_DIR:-$HOME/notes}"INBOX="$NOTES_DIR/0-inbox"ARCHIVE="$NOTES_DIR/1-archive"
new() { mkdir -p "$INBOX" local slug="${1:?用法: pkm new <英文slug>}" local today today=$(date +%Y-%m-%d) local file="$INBOX/${today}-${slug}.md" cat > "$file" <<EOF---title: "${slug//-/ }"created: $todaytags: []status: inbox---
## 背景为什么觉得这条信息有用?
## 要点用自己的话复述核心内容。
## 下一步下次什么场景会用到它?EOF echo "已创建: $file"}
review() { # 列出最近 7 天创建或修改过的笔记,优先处理 inbox find "$NOTES_DIR" -name '*.md' -mtime -7 -print | sort}
archive() { mkdir -p "$ARCHIVE" # 把 inbox 里已标记 status: done 的笔记移到归档库 for f in "$INBOX"/*.md; do if grep -q 'status: done' "$f"; then mv "$f" "$ARCHIVE/" echo "已归档: $(basename "$f")" fi done}
"$@"用法只有三条命令:
pkm new http-connection-limit # 1. 收集:快速记一条pkm review # 2. 回顾:看看最近 7 天记了什么pkm archive # 3. 归档:把消化完的移走这个脚本故意做得很「土」:没有数据库、没有同步、没有双链。但正因为简单,你才会真的去用它——而「坚持用」比「工具强大」重要一百倍。
五、比工具更重要的是「回顾节奏」
任何知识管理系统,最终都会败给「只进不出」。所以回顾(Review)是整套方法的发动机,而不是可选项。
推荐两个固定节奏:
- 每周一次小回顾(约 30 分钟):清空 inbox。能回答「三个问题」的,加工成永久笔记并打上
status: done;回答不了的,直接删掉。敢于删除是知识管理的核心能力——留存成本永远高于再找到它的成本。 - 每月一次大回顾(约 1 小时):翻看 index.md,问自己「这个月新增的笔记,哪些真正改变了我做某件事的方式」。把那些反复用到的笔记,提炼成一篇可以公开输出的文章。
你会发现,最好的知识管理就是「输出」本身。写一篇博客、做一个 demo、给同事讲一次,比任何笔记系统都更能逼你把知识结构化。
结语:知识管理的复利
知识管理不是整理癖,而是为了让「过去踩过的坑」和「想通的道理」在未来的某一天自动出现。它的复利来自两件事:信息只进不出是负债,能复用的才是资产;而资产的价值,取决于你是否建立了「收集 → 回顾 → 输出」的闭环。
从今天开始,把收藏夹里的东西,挑三篇真正有用的,用 pkm new 记下来,然后下周回顾一次。一个月后,你会比过去一年「收藏」得更少,却「掌握」得更多。