ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

用文件夹和Markdown构建可检索的技能管理系统:从清单到能力封装

用文件夹和Markdown构建可检索的技能管理系统:从清单到能力封装

1. 当“skills”成为一个项目标题:我看到的不是技能清单,而是一套能力封装系统

第一次看到“skills”这个标题时,我脑子里蹦出来的不是“技能列表”四个字,而是一个更具体的画面:一个可以被反复调用的能力仓库。很多人做个人成长类项目,习惯把技能写成待办清单——学Python、练口语、读十本书,写完就扔进备忘录吃灰。但“skills”作为项目标题,天然带着一种结构感,它暗示的不是“我要学什么”,而是“我如何把已经会的东西、正在学的东西、打算学的东西,组织成一套可检索、可组合、可迭代的系统”。

这个判断来自我过去几年折腾各种效率工具和个人知识库的经验。单纯列清单的问题在于,它只记录了“名词”,没有记录“动词”。你知道自己会“数据分析”,但不知道具体是“能用pandas做清洗”还是“能用SQL做漏斗分析”;你知道自己会“写作”,但分不清是“能写技术文档”还是“能写营销文案”。这种模糊性导致两个后果:一是遇到新任务时想不起来自己其实有相关能力,二是学习新东西时重复造轮子,明明三年前就摸过某个工具,却因为没记录上下文而从头再来。

所以这篇博文想聊的,是我围绕“skills”这个标题做的一套能力封装实践。它不复杂,不需要写代码,核心工具就是文件夹、Markdown文件和一套命名规则。但它解决的问题很实在:让技能从“感觉我会”变成“我知道我会什么、会到什么程度、在什么场景下用过、下一步该补什么”。适合谁看?如果你手头正在维护个人简历、准备面试、做年度复盘,或者单纯觉得自己“好像会很多但说不清楚”,这套东西可以直接抄作业。如果你已经在用Notion、Obsidian之类的工具,也能把这套逻辑嵌进去,不冲突。

2. 为什么我不推荐用“技能清单”来管理技能

2.1 清单思维的三個致命伤

大多数人管理技能的方式,本质上是在做“库存盘点”。打开一个笔记,写下“Python、Excel、PPT、英语”,然后呢?没有然后了。这种清单有三个问题,每一个都会在实际使用中咬你一口。

第一个问题是颗粒度失控。“Python”这个词太大了,它可能意味着“能写hello world”,也可能意味着“能独立开发一个Flask后端”。当你把这两个极端塞进同一个词条时,这个条目就失去了信息量。面试官问你“Python水平如何”,你只能回答“还行”,因为你自己的记录里也没写清楚到底会到什么程度。

第二个问题是场景缺失。技能的价值不在技能本身,而在它能解决什么问题。你会“数据可视化”,但如果没有记录“用折线图向非技术同事解释过月度波动”,这个技能就是悬空的。下次遇到类似场景,你未必能立刻反应过来“哦这个我干过”。

第三个问题是没有演进路径。清单是静态的,但技能是动态的。你今天会的东西,三个月不用就会退化;你今天不会的东西,可能只需要补一个很小的缺口就能用起来。清单不记录“缺口”和“下一步”,所以它无法指导行动。

2.2 从“名词”到“动词”的转变

我后来把技能条目的命名方式全改了。不再写“数据分析”,而是写“用pandas做数据清洗与聚合”。不再写“沟通能力”,而是写“向非技术方解释技术方案并达成共识”。这个转变的核心逻辑是:技能必须能被一个具体动作触发。

你可以做个测试:打开你现在的技能清单,随便挑一条,问自己“我上一次用这个技能是什么时候、做了什么、结果如何”。如果答不上来,说明这条记录是无效的。有效的技能记录应该像一个函数签名——输入是什么、输出是什么、调用条件是什么。

2.3 一个反直觉的结论:技能越“小”越有用

很多人觉得记录技能要往大了写,显得厉害。但实际用起来,反而是越小的技能单元越有价值。比如“能用VLOOKUP做跨表匹配”比“精通Excel”有用得多,因为前者可以直接被一个具体任务触发,后者只能用来吹牛。

我现在的做法是,每个技能条目控制在“一个动作+一个对象+一个场景”的粒度。比如“用正则表达式批量重命名文件”“用甘特图向团队同步项目排期”“用STAR法则写面试案例”。这种粒度下,技能之间还能互相组合——你会写STAR案例,又会做数据清洗,那就能组合出“用数据支撑的面试案例”这个更高阶的能力。

3. 我的skills文件夹结构:三层目录加一个索引文件

3.1 顶层按“能力域”划分,不按“学习状态”划分

很多人喜欢按“已掌握/学习中/想学”来分文件夹,我试过,不好用。因为状态是流动的,今天“学习中”明天可能就“已掌握”,你得不停挪文件。而且这种分法会让你下意识地只关注“学习中”那一块,忽略了已经会的东西也需要维护。

我的顶层目录是按能力域分的,目前有四个:technical(技术类)、communication(沟通表达类)、operations(运营与流程类)、meta(元技能,比如学习方法和工具使用)。每个域下面再按具体方向分二级目录,比如technical下面有data、automation、documentation。

这个结构的好处是稳定。能力域不会天天变,你只需要在新增技能时判断它属于哪个域就行。而且按域划分之后,你能一眼看出自己哪块强、哪块弱——如果communication文件夹里只有两个文件,那说明你该补补了。

3.2 每个技能一个Markdown文件,文件名就是技能名

文件名我采用“动词+对象+限定词”的格式,比如clean-data-with-pandas.md、explain-tech-to-non-tech.md、automate-file-rename-with-regex.md。用英文是因为文件系统对英文支持更稳,而且强迫自己用英文命名时,会不自觉地更精确——你很难用英文写出“沟通能力”这种模糊的词。

每个文件内部的结构是固定的,我管它叫“技能卡片”。下面是一个模板:

# 技能名称 ## 一句话定义 用一句话说清楚这个技能是干什么的。 ## 熟练度 1-5分,1是“知道概念”,5是“能教别人”。 ## 使用场景 - 场景A:具体描述 - 场景B:具体描述 ## 关键动作 1. 第一步做什么 2. 第二步做什么 3. 第三步做什么 ## 踩过的坑 - 坑1:描述+解决方案 - 坑2:描述+解决方案 ## 相关技能 - [[另一个技能文件]] - [[再一个技能文件]] ## 最近使用 - 日期:做了什么,结果如何

这个模板看起来简单,但每个字段都有用意。“一句话定义”逼你把技能说清楚,“熟练度”让你有量化感知,“使用场景”和“关键动作”是给未来的自己看的操作手册,“踩过的坑”是最值钱的部分——这些是网上教程不会写的,“相关技能”让技能之间产生连接,“最近使用”则是一个提醒:如果某个技能半年没更新这一栏,说明你该复习了。

3.3 索引文件:让技能可以被“检索”而不只是“存储”

光有文件夹和文件还不够,因为文件多了之后你记不住哪个技能在哪个文件里。所以我有一个index.md,放在根目录,里面是一个表格:

技能名能力域熟练度最近使用文件链接
用pandas做数据清洗technical/data42024-06[[clean-data-with-pandas]]
向非技术方解释方案communication32024-05[[explain-tech-to-non-tech]]
用正则批量重命名technical/automation42024-04[[automate-file-rename-with-regex]]

这个索引的好处是,你可以按熟练度排序看自己最强的是什么,按最近使用排序看自己最近在练什么,按能力域筛选看自己哪块有缺口。它把“存储”变成了“检索”,这是清单和系统的本质区别。

提示:索引文件不需要手动维护。如果你用Obsidian,可以用Dataview插件自动生成;如果用纯文本,写个简单的脚本定期扫描文件夹也能生成。手动维护的话,每次新增技能时顺手加一行就行,成本很低。

4. 技能卡片的填写逻辑:每个字段都是在逼你思考

4.1 “一句话定义”为什么这么难写

你可能觉得“一句话定义”很简单,但真写起来会发现很难。比如“数据分析”这个技能,你写“分析数据”,等于没写。你写“用统计方法从数据中提取洞察”,还是太虚。我最后写的是“把原始表格变成能支撑决策的结论”。这个定义里,“原始表格”是输入,“支撑决策的结论”是输出,中间隐含了“统计方法”和“业务理解”。

写不出“一句话定义”通常意味着两件事:要么你还没真正掌握这个技能,要么你掌握得太杂还没提炼出核心。两种情况都值得警惕。前者说明你需要回去补基础,后者说明你需要做一次技能梳理。

4.2 熟练度打分:用“能否教别人”作为5分的标准

熟练度我试过很多种分法,最后稳定在五级:

  1. 知道概念:听说过,能说出大概是什么,但没动手做过。
  2. 能照着做:有教程或模板的情况下能完成,但离开参考就卡壳。
  3. 能独立做:不依赖参考能完成,但遇到异常情况需要查资料。
  4. 能优化做:不仅自己能做,还能改进流程、处理边界情况。
  5. 能教别人:能把这个技能拆解清楚,让新手也能学会。

这个分法的关键是第5级。很多人觉得自己“会”某个技能,但让他教别人就露馅了——因为教别人要求你把隐性知识显性化,这比自己做难得多。我给自己打分时,如果某个技能我从来没教过别人,最高只给4分。

4.3 “踩过的坑”是最值钱的字段

这个字段是我从实际项目中总结出来的。比如我在“用pandas做数据清洗”这个技能卡片里记录了这么一条:

坑:用dropna()删空值时,没注意inplace参数默认为False,导致删了个寂寞。解决方案:要么显式写inplace=True,要么用df = df.dropna()重新赋值。后来我统一用后者,因为链式调用更清晰。

这种坑,网上教程不会写,因为教程作者默认你知道。但正是这些“默认你知道”的东西,在实际操作中会浪费你半小时。每次踩坑后花两分钟记下来,下次就能省半小时。这个投入产出比极高。

4.4 “相关技能”让能力产生复利

单独一个技能的价值是线性的,但技能组合的价值是指数级的。比如“数据清洗”+“数据可视化”+“向非技术方解释”,这三个技能组合起来就是“能独立完成一份给业务方看的数据报告”。这个组合能力在简历上比三个单独技能加起来更有说服力。

所以我在每个技能卡片里都会写“相关技能”,并且用双向链接(Obsidian的[[]]语法)连起来。这样当我在看某个技能时,能顺藤摸瓜看到它能和什么组合。时间长了,这些链接会形成一张网,你能直观看到自己的能力结构——哪些技能是孤岛,哪些技能已经形成了集群。

5. 让skills系统真正跑起来的三个日常动作

5.1 每周花15分钟做“技能回顾”

系统建好之后,最大的风险是“建完就忘”。我的做法是每周固定一个时间(通常是周五下午),花15分钟做三件事:

第一,打开索引文件,按“最近使用”排序,看看哪些技能超过一个月没更新。如果某个技能确实最近没用,就在卡片里加一条“待复习”标记。第二,回想这一周有没有遇到“这个我好像会但想不起来”的情况,如果有,说明某个技能卡片需要补充场景描述。第三,如果有新学的东西,新建一个卡片,哪怕只写个标题和一句话定义,先占个位。

这15分钟看起来不起眼,但它是系统运转的润滑剂。没有这个动作,系统会在两个月内变成一堆死文件。

5.2 遇到新任务时先“检索”再“动手”

这是改变最大的一点。以前遇到新任务,我的第一反应是“怎么做”,现在我的第一反应是“我有没有相关技能”。打开索引文件搜一下关键词,往往能发现以前做过类似的事情,或者有可复用的技能组合。

比如有一次需要做一个“自动整理下载文件夹”的小工具,我搜了一下“automation”,发现之前记录过“用正则批量重命名”和“用Python做文件遍历”两个技能。虽然没直接做过“整理下载文件夹”,但这两个技能组合一下就能搞定。如果没有这个检索动作,我可能就从零开始查资料了,浪费的是已经沉淀下来的能力。

5.3 每月做一次“技能缺口分析”

每个月末,我会做一次缺口分析。方法很简单:拿一张纸,左边写“当前项目需要但我不会的”,右边写“我会但当前项目用不上的”。左边的是学习方向,右边的是可能被低估的能力。

这个分析的价值在于,它让学习和使用形成闭环。你学的东西是因为项目需要,而不是因为“大家都在学”;你会的技能有明确的使用场景,而不是“学了不知道干嘛”。我试过盲目学新东西,效率极低,因为缺乏应用场景,学完就忘。有了缺口分析之后,学习目标变得非常具体——“学会用pandas的groupby做分组聚合”,而不是“学pandas”。

6. 这套系统跑了半年后,我观察到的三个变化

6.1 从“我觉得我会”到“我知道我会什么”

最大的变化是自我认知清晰了。以前别人问我“你会什么”,我只能说“还行吧,会一些”。现在我能具体说出“我会用pandas做数据清洗和聚合,熟练度4分,最近在XX项目里用过,踩过空值处理的坑”。这种清晰度带来的直接好处是面试和汇报时更有底气,因为你说的每一句话都有记录支撑。

间接好处是,你不再焦虑“我是不是落后了”。因为你能看到自己已经积累的东西,而不是只盯着不会的东西。焦虑往往来自模糊——你不知道自己有什么,所以总觉得别人比你多。一旦把技能显性化,焦虑就变成了具体的待办事项。

6.2 技能之间的“连接”比技能本身更有价值

跑了半年之后,我发现最有价值的不是单个技能卡片,而是卡片之间的链接。比如“数据清洗”链接到“数据可视化”链接到“向非技术方解释”,这三个技能形成了一个“数据沟通”的能力集群。当有新任务需要“用数据说服别人”时,我能立刻调用这个集群,而不是从零开始想“我该用什么方法”。

这种连接是自然生长的,不需要刻意设计。你只需要在每次新建卡片时,花30秒想想“这个技能和哪个已有技能相关”,然后加上链接。时间长了,这张网会自己长出来。

6.3 复习变得有针对性,不再“从头学起”

以前复习技能的方式是“重新看一遍教程”,效率极低。现在复习是打开技能卡片,看“踩过的坑”和“关键动作”,五分钟就能唤醒记忆。因为卡片里记录的是你当时理解的精华,而不是教程里的通用内容。

比如我复习“正则表达式”时,不需要重新学语法,只需要看卡片里记的“常用模式”和“踩过的坑”——比如“贪婪匹配导致匹配过多,要用非贪婪模式加问号”。这些是你自己的经验,比任何教程都更适合你。

7. 如果你现在就想开始:最小可行方案

7.1 先建三个文件,别贪多

不要一上来就建几十个技能卡片,你会累死。先建三个:一个是你最擅长的技能,一个是你最近在用的技能,一个是你想学但还没开始的技能。每个卡片只填“一句话定义”“熟练度”“使用场景”三个字段,其他字段以后慢慢补。

这三个文件的作用是让你跑通流程。你会发现,光是写“一句话定义”就能让你想很久,这本身就是价值——说明你之前对这个技能的理解是模糊的。

7.2 用你已有的工具,别折腾新工具

如果你已经在用Obsidian、Notion、飞书文档或者甚至就是文件夹+Word,就用现有的。不要为了这套系统去学新工具,那是本末倒置。这套系统的核心是“记录结构”和“回顾习惯”,工具只是载体。

我见过太多人花一周时间折腾工具配置,结果系统本身没跑起来。工具越简单越好,文件夹+Markdown文件是最稳的,因为十年后你还能打开它们。

7.3 第一个月只做“记录”,不做“分析”

第一个月不要做缺口分析、不要做技能组合、不要想“这个系统怎么优化”。你只需要做一件事:每次用完一个技能,花两分钟在卡片里加一条“最近使用”。这个动作的目的是建立习惯。习惯建立起来之后,其他动作都是水到渠成。

我自己的经验是,前两周最难,因为你会觉得“记这个有什么用”。但第三周开始,当你第一次通过检索找到可复用的技能时,你会立刻感受到价值。那个瞬间之后,你就不需要靠意志力坚持了,因为系统开始给你回报了。

注意:不要追求完美。技能卡片写得粗糙没关系,字段填不全没关系,文件名起得不好也没关系。这套系统的价值在于“持续使用”,不在于“一次写好”。我最早的几张卡片现在回头看写得很烂,但它们是我系统的起点,没有它们就没有后面的迭代。

8. 几个我踩过的坑和对应的解法

8.1 坑一:技能粒度越写越大,最后变成简历

刚开始记录时,我写的是“数据分析”“项目管理”“写作”这种大词。结果发现这些卡片根本没法用——你没法从“数据分析”这个卡片里学到任何具体的东西。后来我强制自己用“动词+对象”的格式,比如“用pandas做分组聚合”“用甘特图同步排期”“用STAR法则写案例”。粒度变小之后,卡片立刻变得可操作了。

解法:每次新建卡片时问自己“这个技能能不能被一个具体任务触发”。如果不能,说明粒度太大,继续拆。

8.2 坑二:只记录“成功经验”,不记录“失败教训”

一开始我只在卡片里写“怎么做”,不写“哪里容易错”。结果下次做同样的事情时,还是会踩同样的坑。后来我强制自己在“踩过的坑”字段里至少写一条,哪怕是很小的坑。这个字段后来成了我最常看的部分。

解法:把“踩过的坑”设为必填字段。如果实在想不出坑,说明你还没真正做过这个技能,熟练度不能超过2分。

8.3 坑三:系统建好之后三个月没打开

这是最致命的坑。我第一版系统建得很漂亮,然后三个月没碰,再打开时已经忘了当初为什么这么设计。后来我加了一个“每周回顾”的日历提醒,雷打不动执行了两个月,才把习惯固化下来。

解法:把回顾动作绑定到一个已有的习惯上。比如我绑定在“周五写周报”之后,写完周报顺手花15分钟看技能卡片。绑定之后,就不需要额外提醒了。

8.4 坑四:过度追求“全面”,结果什么都没记好

有段时间我想把所有会的东西都记下来,结果花了大量时间建卡片,却没时间用卡片。后来我调整策略:只记录“最近三个月用过”或“最近三个月打算用”的技能。其他的先不记,等用到时再补。这样卡片数量控制在20个以内,每个都是活的。

解法:给技能卡片加一个“活跃度”标记。超过三个月没用的,归档到archive文件夹,不占用主目录的注意力。

9. 这套东西后续还能怎么长

我现在跑下来的感觉是,这套系统最值钱的部分不是“记录”,而是“连接”和“检索”。所以后续的扩展方向也是围绕这两点。

一个方向是加“技能组合”卡片。比如“数据报告能力”这张卡片,不记录具体技能,而是记录“数据清洗+可视化+向非技术方解释”这个组合,以及这个组合在什么场景下用过。这样当有新任务需要“做一份数据报告”时,直接调这张组合卡片就行,不用一个个翻单技能卡片。

另一个方向是加“学习路径”卡片。比如我想学“自动化办公”,可以建一张卡片,列出需要的前置技能(文件遍历、正则、API调用),然后链接到对应的技能卡片。这样学习路径就变成了“按图索骥”,而不是“东一榔头西一棒子”。

还有一个方向是跟简历和复盘打通。每年做年度复盘时,直接打开索引文件,按熟练度和最近使用排序,就是一份现成的能力清单。写简历时,从技能卡片里挑“使用场景”和“关键动作”字段,稍微改改就是项目经历。这个我试过,比对着空白文档硬想要高效得多。

最后分享一个小技巧:如果你觉得Markdown文件太散,可以用Obsidian的Canvas功能把技能卡片拖到一个白板上,用连线画出技能之间的关系。我试过一次,画完之后对自己的能力结构一目了然——哪些是核心节点,哪些是边缘技能,哪些技能之间还没有连接。这个可视化过程本身就能带来新的洞察。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进