资讯动态

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

发布时间:2026/10/20 21:20:57 来源:尧图企业网站定制
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分的标准熟练度我试过很多种分法最后稳定在五级知道概念听说过能说出大概是什么但没动手做过。能照着做有教程或模板的情况下能完成但离开参考就卡壳。能独立做不依赖参考能完成但遇到异常情况需要查资料。能优化做不仅自己能做还能改进流程、处理边界情况。能教别人能把这个技能拆解清楚让新手也能学会。这个分法的关键是第5级。很多人觉得自己“会”某个技能但让他教别人就露馅了——因为教别人要求你把隐性知识显性化这比自己做难得多。我给自己打分时如果某个技能我从来没教过别人最高只给4分。4.3 “踩过的坑”是最值钱的字段这个字段是我从实际项目中总结出来的。比如我在“用pandas做数据清洗”这个技能卡片里记录了这么一条坑用dropna()删空值时没注意inplace参数默认为False导致删了个寂寞。解决方案要么显式写inplaceTrue要么用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功能把技能卡片拖到一个白板上用连线画出技能之间的关系。我试过一次画完之后对自己的能力结构一目了然——哪些是核心节点哪些是边缘技能哪些技能之间还没有连接。这个可视化过程本身就能带来新的洞察。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑