ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

用Markdown和Git打造个人技能资产管理系统

用Markdown和Git打造个人技能资产管理系统

1. 把技能当成资产来打理

很多开发者都有一份名为skills的文件,通常是 Markdown 格式,里面列了自己会的东西:Java、Spring、Redis、Kubernetes……写完大概率就再没打开过。我自己也经历过这个阶段,直到后来在几次重要节点——改简历、内部答辩、转岗面谈——才发现自己居然说不清"到底擅长什么"。

这个标题看起来简单,但背后的坑很深。skills不只是一份列表,它是一个人对自身能力的静态快照。如果维护得好,它是求职谈判的底牌、团队分工的依据、个人成长的导航;如果维护得差,它就是一份过期的、自我感觉良好的、经不起追问的清单。

这篇文章想聊的就是:怎么把一份普通的技能清单,变成一个真正能用的个人能力管理系统。内容覆盖清单设计、水平量化、证据关联、持续迭代四个方面。不管你是刚入行的新人,还是带团队的负责人,只要你需要和别人说清楚"我会什么、能做什么、做到什么程度",这篇文章就值得读下去。

2. 技能清单的核心设计思路

2.1 先想清楚:这份清单给谁看

动手写skills之前,最重要的一件事不是打开编辑器,而是想明白一个问题:这份清单将来要给谁看?

这个问题的答案会直接决定清单的架构方式。如果只是为了自己心里有数,那结构可以随意,怎么舒服怎么来。但如果这份清单要承担对外功能——比如贴到个人主页、写进简历附件、给上级做能力盘点,或者作为团队技术栈的参考——那就必须考虑阅读者的认知习惯。

我自己见过三种典型的使用场景:

  • 求职场景:面试官想快速知道你的技术栈匹配度,清单必须有明确分类、水平自评、代表项目佐证。
  • 团队协作场景:同事想看你在某个领域能不能顶上去,清单需要体现深度而非广度,最好能精确到某个模块、某个框架版本。
  • 自我规划场景:给自己看的清单要能暴露短板,而不是营造虚假充实感,所以"计划学但还没学"的东西也要单列出来。

这三个场景对同一份清单的要求是冲突的。求职要精炼突出重点,团队协作要精确到细节,自我规划要诚实暴露不足。用一份文件满足三种需求不现实。我的做法是:用一份主文件skills.md做索引和概览,再配合若干份细分文件做支撑。这个后面会详细展开。

2.2 为什么用 Markdown 而不是表格或思维导图

有人喜欢用 Excel 表格管技能,有人用思维导图,有人用 Notion 数据库。我不否认这些工具各有优势,但skills这个场景下,纯文本 Markdown 仍然是综合体验最好的载体。

最核心的理由是:Markdown 文件天然支持版本管理。技能清单是持续演进的东西,今天你加了两个新框架,下个月你可能把某个老技术降级。用 Git 管理这个文件,你能随时看到自己一年前的技能画像长什么样,对比现在有哪些变化。这个能力用表格工具很难实现,即便实现了也远不如 Git 直观。

其次是迁移成本。Markdown 是纯文本,永远不用担心平台倒闭、格式不兼容。今天放在本地仓库,明天想挪到博客,后天想转成 PDF,都有现成工具链。我见过有人把技能清单放在某个在线文档里,后来那个产品调整了权限策略,结果清单里的链接全部失效,相当于白维护了两年。

最后是表达能力。技能的描述很难用二维表完全表达清楚:这里有个水平刻度,那里有使用年限,另一处还有关联的项目链接。表格硬塞进去会很挤,Markdown 的层级结构正好能把"分类→技能→细节→佐证"这种四层关系清晰地串起来。

2.3 一份可持续维护的目录结构

基于上面的思考,我最后整理出了一套结构,用了很长时间,稳定且不冗余。

主文件skills.md是给别人看的"门面",结构非常紧凑:

  • 顶部是身份简介(一两行即可)
  • 中间按领域分大类(后端、前端、运维、软技能)
  • 每个大类下只列核心技能名 + 水平等级 + 一个代表佐证

支撑文件则放在skills/detail/目录下,每个领域一份:

skills/ ├── README.md # 主清单,对外展示用 ├── detail/ │ ├── backend.md # 后端技能详细说明 │ ├── frontend.md # 前端技能详细说明 │ ├── devops.md # 运维与交付能力详细说明 │ └── soft.md # 软技能与协作能力说明 └── archive/ └── 2024-Q4.md # 历史版本存档,用于复盘

主清单负责高效传达信息,支撑文件负责深挖细节,归档目录负责记录演变轨迹。三者的分工各有侧重,这份skills才能形成体系,而不是一页随手写下的笔记。

3. 核心细节拆解:技能描述怎么写

3.1 水平等级的确定方法

技能清单里最容易出问题的,就是"掌握""熟悉""了解"这类模糊词。不同的人对同一个词的理解可能差出三个级别。我用过很多种评估体系,最后发现 Dreyfus 模型(一种技能获取五阶段模型)的简化版最适合个人自评,因为它把水平描述和具体行为绑定在了一块,而不是靠感觉。

我把技能等级划分为五个档位,每个档位都有明确的判断依据:

等级名称判断标准典型表现
L1听说过知道名字,知道大概解决什么问题别人提起时不会完全懵
L2用过在教程或小项目中用过,能做demo照着文档能跑通基本流程
L3熟练在真实项目里独立使用过能处理常见的异常和边界情况
L4精通深入理解原理,能优化性能,能排查深层问题能讲清楚底层机制,能改框架代码
L5专家能制定方案、指导他人、推动最佳实践团队在这个领域遇到难题时会找你

这个模型最大的价值是逼着人说实话。你说自己"精通 Java",那好,JVM 内存模型能讲透吗?线上 Full GC 问题能独立定位吗?能的话 L4 实至名归;如果只是 Spring Boot 用得多,那是"熟练"而不是"精通"。

实际操作的时候,我会对每个技能标注两个维度:当前等级 + 使用年限。比如Java | L3 | 5年。等级代表深度,年限代表经验积累,两者结合比单纯的"精通"两个字有信息量得多。

3.2 技能描述的"一句话公式"

等级确定了,描述怎么写也有讲究。我总结了一个"一句话公式",适用于大多数技能条目:

一句能佐证量化水平的话,加上这句经历的具体背景。

它不是空泛地写"熟悉分布式系统设计",而是写"负责某业务系统的服务拆分与异步改造,将核心接口的 p99 延迟从 800ms 优化到 200ms"。这样阅读者通过这句话就能抓到关键信息。

支撑文件里记录的是背景事实:在什么项目里用的、遇到什么问题、自己发挥了什么作用、结果如何。这些是不能造假的,因为你永远不知道面试官会不会顺着这句话深挖下去。我也遇到过支撑文件里没有任何实际案例,只有大词堆砌,一旦追问细节就完全无法展开的情况。一两句可以提前准备,但如果整个支撑文件都经不起追问,那这份清单就只剩"纸面价值"了,关键是用的时候会反过来伤害自己的可信度。

3.3 不要只列技术栈,软技能也能精确描述

很多人的技能清单掉进一个陷阱:只写技术名词,完全不碰软技能。但实际工作中,沟通协调、项目管理、技术决策这类能力往往才是晋升和协作的分水岭。

软技能不好量化,但一样可以用行为化描述来精准表达。比如"跨团队协作能力",不要写"具有良好的沟通能力",而是描述一段具体经历:"曾主导某跨平台项目,协调后端、客户端、QA 三个团队共 8 名成员,在 3 个月期限内完成交付,期间通过双周同步机制解决需求变更 12 次"。这就是行为化描述,面试官听完就有画面感,也知道你能做什么。

我给软技能也配了等级评估。L3 的标准是"独立负责过某个需要多方协作的完整事项",L4 是"在冲突和资源受限的情况下仍能推进目标达成"。这样一来,软技能就不再是空洞的自我评价,而是有行为锚点的客观刻画。

4. 实操过程:从零搭建你的技能清单

4.1 准备工作与基础框架搭建

实际操作很简单。新建一个 Git 仓库(如果是个人博客仓库也可以建个目录),初始化好之后建立三个顶层目录。主文件放README.md,支撑文件放detail/,历史版本放archive/。这样一套骨架十几分钟就能搭好。

接下来是盘点。这一步很多人偷懒,觉得"我会什么我心里有数"。但真实情况是,没写下来之前,你的技能清单是模糊的。我推荐的盘点方式是:翻自己过去两到三年的提交记录、项目文档、技术分享笔记,从实际做过的事情里提炼技能,而不是从脑子里凭空想。

举个例子,你翻看半年前的提交记录,发现自己写了不少 SQL 调优的代码,还做过一次慢查询优化的分享,那这条技能就该落入清单,标记等级 L3,并关联上当时做过的具体数据库与业务场景。你"以为"自己会的东西和"实际用过"的东西之间,通常有相当大的差距,以事实为依据就能尽量避免自我美化。

4.2 用 Git 做变化追踪

在 Git 仓库里维护还有一个好处:技能清单的每次变更都是有记录的。这本身就是一笔很好的成长账本。

我给自己定了一条规则:每季度做一次全面复盘,重点看两个指标——新增了哪些技能(L2 以上的),降级或移除了哪些技能。降级这件事很多人不愿意做,但"三个月没碰过的技能"就应该从上往下掉一个等级。技术领域更新太快,半年不碰,手就是会生。别骗自己。

依托历史归档来复盘,最直观的方式是对比同一条技能在不同季度的等级变化。比如"Go"从 L2 变到 L3,说明最近半年真的在用;"Hadoop"从 L3 掉到 L2,说明有一年没实际使用了,计划里如果有重拾的需求也可以这样暴露出来。

4.3 把清单和项目经验做关联

skills的价值,很大程度取决于它和项目经历的关联程度。孤立的技能列表没有任何说服力,只有把"技能 → 项目 → 产出"这条链路打通,清单才真正可靠。

我在支撑文件里给每个技能配置了一个"佐证条目",格式很简单:

## Redis - 水平: L3,3年 - 场景: 某电商系统的缓存层设计与热 key 治理 - 我的角色: 负责缓存策略制定与失效方案设计 - 结果: 缓存命中率从 82% 提升到 96%,大促期间未出现缓存穿透 - 可以展开聊的点: 多级缓存方案对比、缓存与数据库一致性取舍

最后一行是重点。它能帮自己整理聊资,面试时被问到这项技能,不用临时组织语言,直接从这个"可以展开聊的点"出发,就能讲出一个有细节、有取舍、有深度的完整故事。这份起草本身并不难,只需要平时在项目结束后顺手记几条要点;比起临时抱佛脚梳理,不仅效果更好,压力也小很多。

4.4 对外展示时的精简策略

主清单和支撑文件的内容不同。主清单给外人看,绝对不能写得太长,信息密度要高、一眼能扫完。我的主清单长这样:

# 技能清单 后端:Java(L3,5年) · Spring Boot(L3,4年) · MySQL(L3,5年) · Redis(L3,3年) 前端:Vue(L2,2年) · TypeScript(L2,1年) 运维:Docker(L3,3年) · Kubernetes(L2,1年) 软技能:跨团队协作(L3) · 技术方案评审(L3) · 导师带教(L3) 详细能力地图见 detail/ 目录。

线上项目和个人主页需要展示的,就放这份精简版。支撑文件自己留着,或者按需开放给特定的人看。我见过有的开发者把主清单写成了超长文档,每个技能一段详细介绍,结果核心信息完全被淹没。在一个需要快速决策的场景里,少即是多几乎永远成立。

5. 实操过程中的高频问题排查

5.1 技能清单变成"僵尸文件"

这是最常见的问题。清单写完之后,几个月甚至一年都没有再更新过,等到真正需要的时候打开,里面全是过时信息。

这个问题的根源不是懒,而是没有把迭代机制嵌进日常工作流。我的解法是给自己设置了两个触发点:一是每个项目结束的复盘会,顺手把项目里用到的技能和收获更新进支撑文件;二是技术调研或学习计划发生变化时,在清单里同步体现,哪怕只是加一行"正在学习中(L1)"。

如果你有定期写周报或月报的习惯,也可以把技能更新放在一起,不需要额外增加负担。关键是让清单成为和信息流同步更新的"活文件",而不是等着被想起来才去改的"存档文件"。

5.2 技能水平自评虚高

第二个常见问题是自评虚高。明明只写过几个 demo 就标 L3,被内行一眼看穿,反而伤了信誉。

这里有个很隐蔽的心理机制:人容易把"做过"和"做得好"混为一谈。写过几个接口调用的代码,就觉得"熟悉"了;实际上,没有经历过异常处理、容量规划、线上故障排查的技术,离真实的工程能力还有很大距离。

破法很简单:每次标注等级之前,强迫自己写出对应的难例。如果你说不出来,那就老实降一个等级。这里的"难例",指的是某个系统中特别麻烦、特别容易出错的环节,不一定和性能调优有关。这个习惯坚持半年,"虚高率"能自然降下来。

5.3 只写技术栈,忽略场景约束

第三个坑是只写技术名词本身,忽略技术名词背后的场景约束。同样的"MySQL",在千万级数据量下做过分库分表和在一个小项目中建了几张表,含金量天差地别。

技术能力永远是和场景绑定的。脱离场景谈技能,就像说"我会开车"——开过五菱和开过赛车,虽然都叫开车,但完全不是一回事。所以我的支撑文件里,每条技能一定会写清楚场景的规模和复杂度。这里只要能体现复杂性差异的细节就行,比如数据量级、并发规模、团队人数、系统边界,这些参数能瞬间拉高或拉低这条技能的说服力。写场景的过程本身也在帮自己理清:这到底是一段值得写进清单的经历,还是只是一个普通过往。

5.4 软技能无法描述

软技能的问题前面提过,这里补充一个实操技巧。如果你真的不知道怎么描述自己的软技能,去翻一下过去一年里别人夸奖你的话,或者同事给你的评审反馈。那里面的高频词,往往就是你最真实的软技能标签。然后把这些标签放回具体的事件里,变成行为化的描述。

比如评审反馈里同事常说你"靠谱"、"交给你的事不用操心",那对应的软技能可能是"任务跟进与闭环能力",佐证事件就是你独立负责过的某个跨团队事项。很多人忽略的外部反馈,其实是构建技能清单时最宝贵的数据来源。

6. 把这份清单用在真正关键的地方

前面讲了很多方法,这节聊聊我在实际使用中的感受。skills这个目录,最初只是我为求职整理的材料,后来慢慢演变成了个人能力管理的核心工具。它真正发挥价值,是在下面这几个时刻。

第一个时刻是定成长方向。以前我很焦虑,觉得要学的东西太多,什么都想抓。后来每次季度复盘时看着清单,哪些技能在用、哪些在退化、哪些空缺最影响当前的工作目标,一目了然。学习计划不再是凭感觉拍脑袋,而是从清单的缺口里长出来的。

第二个时刻是技术选型讨论。当需要判断团队里谁能顶某块技术方案时,我直接翻出清晰准确的能力清单,谁在哪层、谁有实战、谁只是"听过",几秒钟就能完成匹配。平时多花一点时间维护,就是这个回报。

最后是求职和自我介绍的场合。以前被问到"你最擅长什么",支支吾吾说不太清楚。现在有了按佐证细节组织的清单,可以很自然地根据对方需求强调对应技能的深度与细节。它不是简历替身,而是让人在问深之后依然能站得稳的底气所在。

如果你也有一份很久没更新的skills文件,可以试试这次说的方法——给它搭好结构、标好等级、配上佐证,然后坚持维护一个季度。等下次你再打开它的时候,你会看到一个"已经长成不同样子"的自己。

RELATED READING

延伸阅读

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