1. 当“skills”成为一个项目标题:我看到的不是空壳,而是最诚实的起点
第一次看到“skills”这个标题,正文、关键词、摘要全是空白,我反而觉得挺亲切。做了十多年技术博主,见过太多项目把标题起得天花乱坠——“基于深度学习的跨模态智能协同平台”,点进去一看,核心逻辑就是调了个API。反倒是“skills”这种朴素到极致的词,让我愿意停下来琢磨:它到底想说什么?
“skills”这个词,直译是“技能”。但在技术语境里,它承载的东西远比字面复杂。它可能是一个技能管理系统的代号,可能是一个技能树可视化工具的项目名,也可能是一个关于“如何习得技能”的方法论框架。正文空白,意味着没有预设边界;关键词空白,意味着没有流量绑架;摘要空白,意味着没有自我设限。这种“三无”状态,恰恰给了我们最大的拆解空间。
我打算从三个层面来解构这个标题。第一层,把“skills”当作一个技术项目来对待,探讨如果我要从零搭建一个技能管理或技能可视化系统,核心架构该怎么设计。第二层,把“skills”当作一个个人成长命题,聊聊技术人如何系统化地管理自己的技能栈,避免“什么都会一点,什么都不精”的尴尬。第三层,把“skills”当作一个内容创作方向,分析为什么“技能”类内容在技术社区里永远有生命力,以及怎么做出差异化。
这篇文章适合谁看?如果你是正在规划一个技能管理工具的技术人,第一层对你有用。如果你是在职业发展中感到迷茫的开发者,第二层值得细读。如果你是内容创作者,第三层能给你一些选题上的启发。我不打算写一篇“什么是技能”的科普文,那太无聊了。我要做的是,从一个空标题出发,把“skills”背后可能藏着的真实项目逻辑、技术选型、实操路径,一层层剥开给你看。
提示:本文所有案例、项目、人物均为虚构代称,仅用于说明技术逻辑和实操方法,不指向任何真实存在的系统或个体。
2. 如果把“skills”做成一个技能管理工具:从数据模型到交互设计的完整推演
2.1 为什么技能管理工具的核心难点不在“管理”而在“建模”
很多人一听到“技能管理工具”,第一反应是做个列表,增删改查,顶多加个标签和分类。我一开始也这么想,直到自己动手做了一个给团队内部用的技能看板,才发现事情没那么简单。问题出在“技能”这个概念的建模上。
技能不是静态的条目。一个技能有熟练度,熟练度会随时间变化;一个技能有前置依赖,比如“分布式系统设计”依赖“网络协议基础”和“并发编程”;一个技能有应用场景,同一个“数据分析”技能,在电商场景和生物信息场景下的具体内涵完全不同;一个技能还有“证据”,你怎么证明自己会?项目经历、代码仓库、认证证书、同行评审,这些都是证据。
如果你用关系型数据库的思维去建模,很容易陷入“表越加越多,查询越来越慢”的困境。我试过用MySQL建了技能表、熟练度表、依赖表、证据表、场景表,五张表关联查询,一个“查询某人是否具备某岗位所需技能”的请求,SQL写了三屏,执行时间超过两秒。后来我换了个思路,用图数据库的思维来建模,把技能、场景、证据、人全部当作节点,关系当作边,查询效率直接提升了一个数量级。
具体来说,节点类型包括:技能节点、场景节点、证据节点、人员节点。边类型包括:依赖边(技能A依赖技能B)、掌握边(人员掌握技能,带熟练度属性)、证明边(证据证明技能)、适用边(技能适用于场景)。这种模型的好处是,当你问“要胜任某个场景,需要哪些技能,这些技能的前置依赖是什么,团队里谁具备这些技能”时,图遍历可以一次性把路径找出来,不需要反复JOIN。
注意:图数据库不是银弹。如果你的技能数据量在几千条以内,关系型数据库完全够用,别为了技术而技术。我是在数据量超过五万条、关联查询成为瓶颈之后才迁移的。
2.2 熟练度量化:从“了解/熟悉/精通”到可计算的数值模型
“了解、熟悉、精通”这种三档分类,几乎是所有技能管理工具的标准配置。但我在实际使用中发现,这种粗粒度分类有个致命问题:不同人对“熟悉”的定义差异巨大。A同学觉得能写个Demo就叫熟悉,B同学觉得能独立排查线上问题才叫熟悉。结果就是,技能矩阵看起来很美,实际参考价值很低。
我后来设计了一套五维评分模型,每个维度0到5分,加权求和得到综合熟练度。这五个维度是:知识掌握度(能否准确解释核心概念)、独立操作度(能否不依赖他人完成常规任务)、问题解决度(能否处理边界情况和异常)、方案设计度(能否针对新场景设计合理方案)、传授指导度(能否教会他人并纠正错误)。
这套模型的灵感来自我观察团队里不同级别工程师的实际表现差异。初级工程师往往在“知识掌握”和“独立操作”上得分不低,但在“问题解决”和“方案设计”上明显薄弱。高级工程师的“传授指导”维度得分普遍较高,因为他们能把复杂问题拆解成别人能理解的步骤。
加权求和时,不同场景的权重可以调整。比如招聘初级岗位时,“独立操作度”权重可以调高;选拔技术负责人时,“方案设计度”和“传授指导度”权重应该加大。这种灵活性是固定三档分类做不到的。
实操中,我建议每个维度都给出具体的行为锚点描述。比如“问题解决度”3分的锚点是:“能独立处理已知类型的异常,对于未知异常能定位到大致模块并寻求帮助。”5分的锚点是:“能处理从未见过的异常,能预判潜在问题并提前设计防御措施。”有了锚点,评分才有可比性。
2.3 技能依赖图的构建:手动维护还是自动推导
技能之间的依赖关系,是技能管理工具最有价值也最难维护的部分。我试过纯手动维护,让每个技能负责人填写前置技能,结果三个月后依赖图就烂掉了——有人离职没交接,有人填得随意,有人觉得“这个依赖太明显了不用填”。
后来我设计了一套半自动的推导机制。核心思路是:从实际项目数据中挖掘技能共现关系。具体做法是,收集团队过去一年所有项目的任务分配记录和代码提交记录,用关联规则挖掘算法找出频繁共现的技能对。比如,如果“React组件开发”和“状态管理”在80%的任务中同时出现,那它们之间很可能存在依赖或强关联。
但共现不等于依赖。两个技能可能只是经常一起用,但并没有先后学习关系。所以我加了一个人工审核环节:系统推荐Top 50的共现技能对,由技术负责人标注“强依赖”“弱关联”或“无关”。标注结果再反馈给算法,调整推荐权重。这样迭代三轮之后,依赖图的准确率能达到可用的程度。
对于新技能,系统会先根据技能名称和描述的文本相似度,推荐可能的前置技能,然后由人工确认。我实测下来,这种“算法推荐+人工确认”的模式,比纯手动维护效率高至少三倍,而且依赖图的质量更稳定。
提示:依赖图不要追求大而全。我见过一个团队试图把几百个技能全部连成一张大网,结果没人看得懂。建议先聚焦核心岗位的20到30个关键技能,把这张小图做准做精,再逐步扩展。
2.4 交互设计上的取舍:为什么我最终放弃了“炫酷的技能树”
技能树可视化,几乎是每个技能管理工具都想做的功能。我一开始也花了两周时间,用D3.js做了一棵可交互的技能树,节点可以展开收起,连线有动画效果,鼠标悬停显示详情。Demo演示时效果很好,但实际投入使用后,数据惨淡——日活跃用户不到团队人数的10%。
我找了几个人聊,反馈很一致:“好看是好看,但我不知道点哪里。”“我想查某个技能的前置要求,得在树上找半天。”“我就想知道我离目标岗位还差什么,不想看整棵树。”
这让我意识到,技能树适合“浏览”和“探索”,但不适合“查询”和“决策”。大多数用户打开工具的目的很明确:要么查某个技能的要求,要么看自己缺什么,要么找具备某技能的人。这些任务用列表、搜索、差距分析视图来完成,效率比技能树高得多。
我最终保留了技能树,但把它降级为“探索模式”的入口,默认视图改成了“差距分析面板”。面板左侧是目标岗位的技能要求列表,右侧是当前人员的技能评分,中间用颜色标注差距大小。用户一眼就能看到“我还差哪几项,差多少”。这个改动之后,工具的周活跃率从不到10%提升到了45%。
这个经历给我的教训是:技能管理工具的核心价值是“辅助决策”,不是“展示数据”。任何交互设计上的炫技,如果偏离了这个核心,都是自嗨。
3. 技术人如何用“skills”思维管理自己的技能栈:一套可落地的自查框架
3.1 先做减法:识别你的“核心技能圈”和“外围技能圈”
我见过太多技术人的简历,技能列表写了两页,从汇编语言到React Native,从机器学习到区块链,仿佛无所不能。但一问细节,很多技能只是“用过一次”“看过文档”“跟着教程做过Demo”。这种“技能虚胖”在职业发展中是负资产,因为它会模糊你的定位,让招聘方不知道你到底擅长什么。
我的建议是,把你的技能分成两个圈:核心技能圈和外围技能圈。核心技能圈不超过5项,是你吃饭的本事,是你能在面试中聊半小时细节、能在项目中独立扛起模块、能指导他人解决问题的技能。外围技能圈可以多一些,是你了解原理、能配合他人工作、能在需要时快速上手的技能。
怎么判断一个技能该放核心圈还是外围圈?我用一个简单的测试:假设明天有个紧急项目,需要有人在没有任何外部支持的情况下,用这个技能在两周内交付一个中等复杂度的功能,你敢不敢接?如果答案是“敢”,放核心圈;如果答案是“得查资料、得找人问、得边做边学”,放外围圈。
这个测试的关键在于“没有任何外部支持”。很多人高估自己的能力,是因为习惯了遇到问题就搜索、就问人。一旦切断这些支持,真实水平就暴露了。我建议每半年做一次这个测试,因为技能会退化,尤其是那些长期不用的外围技能。
3.2 技能折旧率的计算:为什么你三年前的精通技能现在可能只值“了解”
技术技能的折旧速度远比大多数人想象的要快。我做过一个粗略的统计:对于前端框架类技能,如果不持续使用,六个月后熟练度下降约30%,一年后下降约60%,两年后基本退回到“了解”水平。后端语言类技能折旧慢一些,但两年不写,也会从“精通”掉到“熟悉”。
这个折旧率不是线性的。前三个月下降最快,因为很多细节记忆会迅速模糊;之后进入一个相对平缓的平台期,核心概念还能保留;但一旦超过一年半,连核心概念都会开始遗忘。
知道这个规律之后,我在管理自己的技能栈时,会刻意做两件事。第一,对核心技能圈里的技能,保证每季度至少有一次实际使用的机会,哪怕是自己写个小工具、做个技术分享、帮同事Review代码。第二,对外围技能圈里的技能,如果确定未来一年用不上,就主动降级,不再在简历和自我介绍中强调,避免误导他人也误导自己。
注意:折旧率因技能类型而异。底层原理类技能(如算法、网络协议、操作系统概念)折旧最慢,因为它们是其他技能的基础,会不断被间接使用。框架和工具类技能折旧最快,因为版本迭代频繁,API变化大。
3.3 用“项目证据链”替代“自我评价”:让技能可验证
“精通Java”“熟悉分布式系统”“了解机器学习”——这些自我评价在招聘方眼里几乎没有信息量。我后来学乖了,不再写形容词,而是写证据。每个核心技能后面,附上三个东西:一个代表性项目(做了什么、用了什么、解决了什么问题)、一个可验证的产出(代码仓库、技术文档、线上系统)、一个量化结果(性能提升了多少、故障率降低了多少、覆盖了多少用户)。
这套“项目证据链”的写法,不仅让简历更有说服力,更重要的是,它倒逼我在做项目时刻意积累证据。以前做完一个项目就完了,现在会想:这个项目能证明我哪项技能?有没有可以公开的产出?有没有可量化的结果?如果没有,下次做项目时就要注意留痕。
我还会定期做“证据审计”:把核心技能圈里的每项技能过一遍,看看证据链是否完整。如果某项技能只有自我评价没有证据,要么赶紧补一个项目,要么把它降级到外围圈。这个习惯坚持了三年,最大的收获是,我对自己的真实水平有了更清醒的认知,不再被“感觉自己会”的幻觉迷惑。
3.4 技能组合的杠杆效应:为什么“T型人才”不如“梳子型人才”
“T型人才”这个概念流行了很多年,一横代表广度,一竖代表深度。但我在实际观察中发现,真正在职业发展中获得加速度的人,往往不是T型,而是“梳子型”——有多根深度不同的竖齿,齿与齿之间有明确的关联。
举个例子。一个后端工程师,核心深度是“高并发系统设计”,这是最长的那根齿。旁边有几根短一些的齿:“数据库优化”“缓存策略”“消息队列”“性能调优”。这些齿不是孤立的,它们都围绕“高并发”这个核心场景展开,彼此之间有协同效应。当遇到一个高并发问题时,他能从多个角度切入,方案更全面,排查更高效。
相比之下,一个“什么都会一点”的T型人才,横线很宽但每根竖齿都很浅,遇到复杂问题时缺乏深度支撑,容易停留在表面。而“梳子型”人才,虽然广度不如T型,但在核心场景下的战斗力远超T型。
构建梳子型技能组合的关键是:先确定你的核心场景,然后围绕这个场景选择3到5个关联技能进行深度投入。关联技能的选择标准是:它们能在核心场景中协同使用,能互相增强,而不是各自独立。比如“高并发”场景下,“数据库优化”和“缓存策略”就是强关联的,而“前端动画”就是弱关联的,不值得投入太多。
4. 从“skills”看技术内容创作:为什么技能类选题永远有流量,但大多数人做不好
4.1 技能类内容的流量密码:解决“我不知道我不知道”的问题
技术社区里,技能类内容(教程、指南、避坑、经验分享)的流量一直很稳。原因很简单:技术人永远在学习新东西,永远在遇到新问题。但流量大不代表容易做,恰恰相反,技能类内容的竞争极其激烈,因为门槛低,谁都能写。
我观察了上百篇高流量的技能类文章,发现它们有一个共同点:解决的是“我不知道我不知道”的问题。什么意思?读者在看这篇文章之前,甚至不知道有这个问题存在,或者不知道有这种解法。文章的价值在于打开了一个新的认知窗口。
举个例子。“如何用Python读取Excel文件”这种选题,流量不会太差,因为需求量大,但竞争也大,而且读者是带着明确问题来的,属于“我知道我不知道”的范畴。而“为什么你的Pandas读取大Excel会内存溢出,以及三种流式读取方案”这种选题,解决的是“我不知道我不知道”的问题——读者可能一直在用默认方式读取,从没想过内存问题,直到文件大到跑不动才意识到。
做技能类内容,要刻意往“我不知道我不知道”的方向靠。具体做法是:不要只讲“怎么做”,要讲“为什么这样做”“不这样做会怎样”“还有哪些你没想到的做法”。把问题的边界、前提、陷阱、替代方案都讲清楚,读者才会觉得“学到了”。
4.2 技能教程的“可复现性”陷阱:为什么你的步骤读者跑不通
我写过不少技能教程,也看过更多。最大的痛点不是内容不够多,而是“可复现性”太差。作者在自己的环境里跑通了,写出来的步骤却让读者处处碰壁。原因通常有这几个:环境差异(操作系统、版本、依赖)、隐含前提(作者觉得理所当然但没写出来的步骤)、数据差异(作者用的示例数据读者没有)、时序问题(某些步骤有先后依赖但没说明)。
我后来总结了一套“可复现性检查清单”,每次写教程前过一遍。第一,明确声明环境要求:操作系统、语言版本、关键依赖的版本号,一个都不能少。第二,把“隐含前提”显式化:比如“假设你已经安装了Node.js”这种话,要么写清楚,要么直接给出安装命令。第三,提供完整可运行的示例数据:不要用“你的数据文件”这种模糊表述,要么给一个生成脚本,要么给一个公开可下载的样例。第四,标注步骤间的依赖关系:哪些步骤可以并行,哪些必须串行,哪些步骤失败后需要回滚。
还有一个容易被忽略的点:错误处理。教程通常只展示“正确路径”,但读者在实际操作中大概率会遇到报错。如果教程里能预判常见错误并给出排查方法,读者的体验会好很多。我现在的习惯是,每写一个关键步骤,就问自己:这一步最可能出什么错?出错后怎么判断原因?怎么解决?把这些作为“常见问题”附在步骤后面。
4.3 从“技能清单”到“技能叙事”:如何让你的经验分享更有辨识度
技能类内容同质化严重,因为技能本身是客观的,A写“Python装饰器教程”和B写“Python装饰器教程”,核心知识点不会差太多。差异在哪里?在“叙事”。同样的知识点,用不同的项目场景、不同的踩坑经历、不同的思考角度来呈现,读者的感受完全不同。
我自己的做法是,每篇技能文章都嵌入一个“个人叙事线”。比如写“技能管理工具”这个主题,我不会一上来就讲数据模型,而是先讲我为什么做这个工具、遇到了什么痛点、第一版做砸了哪里、后来怎么改的。这条叙事线让文章有了温度,也让读者更容易记住关键决策背后的逻辑。
叙事线的另一个作用是建立信任。当读者看到你坦诚地分享失败经历、踩坑过程、方案取舍的纠结,他们会觉得你是一个真实的人在分享真实经验,而不是一个AI在输出标准答案。这种信任感是技能类内容最稀缺的资源。
但叙事不能喧宾夺主。技术文章的核心还是技术,叙事是包装,是引子,是佐料。我见过一些文章,个人故事写了三千字,技术干货只有五百字,读者看完只记得“作者很不容易”,但没学到任何东西。这个度要把握好:叙事服务于技术,而不是替代技术。
4.4 技能内容的“长尾效应”:为什么三年前的文章还在带来流量
技能类内容有一个其他类型内容不具备的优势:长尾效应。一篇好的技能教程,发布三年后可能还在被搜索、被引用、被转发。因为技能本身变化慢,而新入行的人源源不断。
我有一篇关于“数据库索引优化”的文章,发布至今快四年了,每个月还能带来稳定的搜索流量。原因很简单:索引优化的核心原理没有变,而每年都有新的开发者遇到索引性能问题。这篇文章解决的是一个长期存在的、高频的、有明确搜索意图的问题。
要做出有长尾效应的技能内容,选题时要问自己三个问题:这个问题三年后还会存在吗?这个问题的搜索需求是持续性的还是事件性的?这个问题的解法是否依赖特定版本或特定工具?如果答案分别是“会”“持续性”“不依赖”,那这个选题就值得投入。
相反,那些追热点的技能内容,比如“XX框架最新版本新特性解读”,流量来得快,去得也快。版本一更新,文章就过时了。我不是说不能写热点内容,而是说,如果你的内容组合里只有热点内容,没有长尾内容,那你的流量会非常不稳定。
我自己的内容策略是“三七开”:七成长尾内容,三成热点内容。长尾内容保证基本盘,热点内容带来爆发流量。这个比例可以根据个人定位调整,但完全不做长尾内容,长期来看会很吃力。
5. 从零搭建技能管理工具时,我踩过的五个坑和对应的解法
5.1 坑一:一开始就追求“大而全”的技能分类体系
我做的第一版技能管理工具,花了整整两周设计技能分类体系。参考了各种职业能力标准、行业技能框架,把技能分成了十几个大类、上百个小类。结果工具上线后,没人愿意维护。因为分类太细,填一个技能要选半天分类,而且不同人对分类的理解不一致,同一个技能被归到不同类里,数据很快就乱了。
后来我砍掉了所有预设分类,改成“标签+自由文本”的模式。技能名称由用户自由填写,系统只提供标签建议(从已有标签中推荐)。分类不再由系统预设,而是通过标签的共现关系自动聚类。比如“React”“Vue”“Angular”经常被一起打标签,系统就自动生成一个“前端框架”的聚类。这个改动之后,数据录入效率提升了至少五倍,而且分类是“长出来”的,不是“设计出来”的,更符合实际使用习惯。
提示:任何需要用户额外思考的步骤,都会降低数据录入的意愿。技能管理工具的第一要务是降低录入成本,而不是追求分类的完美。
5.2 坑二:用“管理员思维”设计权限,而不是“用户思维”
第一版工具里,我设计了一套精细的权限体系:管理员可以增删改所有技能,技能负责人可以修改自己负责的技能,普通用户只能查看和给自己打分。听起来很合理,但实际使用中问题很大。普通用户发现自己不能修改技能描述里的错误,得找管理员;技能负责人离职后,他负责的技能没人能改;管理员成了瓶颈,所有维护工作都堆到一个人身上。
后来我改成了“维基模式”:所有登录用户都可以编辑技能描述和依赖关系,但每次编辑都会记录版本和编辑者,并且有“最近更改”页面供所有人审查。如果出现恶意修改或争议,可以回滚到之前的版本。这个模式运行了半年,技能数据的准确性和时效性反而比之前高,因为维护成本被分摊到了所有人身上。
这个坑给我的教训是:在协作型工具里,权限设计的核心不是“控制”,而是“追溯”。与其限制谁能改,不如让所有人都能改,但改了什么、谁改的、什么时候改的,全部可追溯。这样既降低了维护门槛,又保留了纠错能力。
5.3 坑三:忽略了“技能证据”的上传和展示体验
技能管理工具的核心价值之一是“证明你会”。但第一版工具里,证据上传功能做得很简陋:只能上传文件,没有预览,没有分类,没有和具体技能关联。结果就是,大家上传了一堆文件,但没人看得懂这些文件证明了什么技能。
后来我重新设计了证据模块。每个证据必须关联至少一个技能,并且要选择证据类型(项目经历、代码仓库、技术文档、认证证书、同行评审)。上传后,系统会自动提取关键信息(比如代码仓库的语言分布、文档的标题和摘要),生成一个证据卡片。证据卡片会展示在对应技能的详情页里,其他人可以点赞或评论。
这个改动之后,证据模块的使用率从不到5%提升到了40%以上。更重要的是,技能详情页变得有血有肉了——不再是干巴巴的评分,而是有具体项目、具体产出、具体评价的完整画像。
5.4 坑四:没有设计“技能过期”机制,导致数据越来越陈旧
技能会折旧,但第一版工具里,技能评分一旦录入就永远不变。结果一年后,很多人的技能评分严重失真——三年前精通的技能现在还显示精通,但实际上已经忘得差不多了。
后来我加了一个“技能保鲜期”机制。每个技能评分都有一个“最后验证时间”,超过一定期限(默认12个月)没有更新,系统会自动降低该评分的置信度,并在界面上标注“该评分已超过12个月未更新,仅供参考”。用户可以选择“重新验证”,通过回答几个随机抽取的技能问题,或者上传新的证据,来刷新评分。
这个机制刚上线时,有人觉得麻烦。但运行一段时间后,大家反而养成了定期更新技能评分的习惯,因为“过期”的标签挂在技能上不好看。数据的新鲜度问题就这样通过机制设计解决了,而不是靠自觉。
5.5 坑五:把“技能管理”做成了“绩效考核”,引发抵触
这是最严重的一个坑。第一版工具上线后,我兴冲冲地把技能评分和绩效挂钩,想着“这样大家就有动力维护数据了”。结果适得其反,大家开始虚报技能评分,把不熟悉的技能也标成精通,因为“评分低了影响绩效”。数据质量急剧下降,工具的公信力也崩了。
后来我彻底切断了技能评分和绩效的关联,并且明确向团队传达:技能管理工具是“个人发展工具”,不是“考核工具”。你填的数据只用于帮你规划学习路径、找项目机会、匹配导师,不会进入任何绩效评估流程。这个定位明确之后,数据质量才慢慢恢复。
这个坑让我深刻理解了一件事:任何工具,一旦被用于“评判”而非“帮助”,用户就会开始“表演”而非“使用”。技能管理工具的生命线是数据真实性,而数据真实性的前提是用户感到安全。
6. 写在最后:关于“skills”这个标题,我的一点个人体会
做了这么多年技术博主,我越来越觉得,一个项目的价值往往不在于它用了多先进的技术,而在于它解决了多真实的问题。“skills”这个标题,正文空白,反而让我看到了最纯粹的问题意识:技能这件事,对每个技术人来说都是刚需,但真正系统化管理自己技能的人少之又少。
我自己从三年前开始用一套简单的技能管理方法,核心就是前面提到的“核心技能圈+外围技能圈+项目证据链”。没有用什么复杂的工具,就是一个Markdown文件加一个表格。但坚持下来,最大的收获不是技能变多了,而是对自己“会什么、不会什么、该学什么”有了清晰的认知。这种认知,比多学两个框架重要得多。
如果你也在考虑做技能管理相关的项目,我的建议是:先从自己用开始。不要一上来就想做个平台、做个系统、做个产品。先解决你自己的技能管理问题,把数据模型、交互流程、使用习惯都跑通。等你自己的需求被满足了,再考虑推广给别人。这个过程里踩的坑、积累的经验,才是项目最坚实的底座。
至于“skills”这个标题本身,它可以是任何东西。但无论它最终变成什么,只要它围绕“帮助人更好地理解和发展自己的技能”这个核心,就值得做下去。