你的 GitHub Repo 为什么攒不到🌟?华盛顿大学和微软研究院合著的论文《Understanding skills for OSS communities on GitHub》基于对455名 OSS 贡献者的在线调查数据进行分析,开发了一个 OSS 技能模型,包含 9 类 45 种技能:技术技能、工作风格、问题解决、贡献类型、项目特定技能、人际技能、外部关系、管理和特征
。能指导 OSS 贡献者显著提高技能,同时发现与他人分享技能有很多好处,比如可用于招聘
。
技能模型
OSS 中的技能包括硬技能和软技能的组合。 技能的主要类别是技术技能、工作方式、解决问题、贡献类型、项目特定技能、人际交往能力、外部关系、管理和特征。
技术技能(technical skills)
:包括编程语言、框架、工具、测试、调试、版本控制、持续集成/部署、安全性、性能优化等。工作风格(working styles)
:包括沟通、协作、反馈、学习、适应性、自我管理等。问题解决(problem solving)
:包括分析、创新、逻辑、批判性思维等。贡献类型(contribution types)
:包括代码贡献(如添加功能或修复错误)、文档贡献(如编写或更新文档)、报告错误或建议改进(如提交问题或请求)、审查代码或文档(如提供意见或批准更改)、参与讨论或社区活动(如回答问题或分享经验)等。项目特定技能(project-specific skills)
:包括项目背景知识(如项目的目标和历史)、项目规范知识(如项目的结构和风格)、项目工具知识(如项目使用的特定工具和平台)等。人际技能(interpersonal skills)
:包括礼貌和尊重他人的观点和经验,同理心和理解他人的需求和情感,信任和建立良好的关系,冲突管理和妥善处理分歧等。外部关系(external relations)
:包括推广和宣传OSS项目,协调和合作OSS项目之外的人或组织,寻找并利用外部资源,保护OSS项目的利益等。管理(management)
:包括决策和制定OSS项目的目标和计划,组织和分配OSS项目的任务和角色,监督和评估OSS项目的进度和质量,激励和培养OSS项目的贡献者等。特征(characteristics)
:包括热情和对OSS项目有兴趣和动力,自信和对自己有信心并敢于尝试新事物,耐心和对OSS项目有长期的承诺并能够忍受不确定性等。
提升技能
贡献者通过阅读博客、在社交媒体和会议上关注 OSS 人物、向同行学习以及为 OSS 项目做出贡献来提高技能。 技能的增长受到贡献者兴趣、OSS 团队的需求、可用资源和确定的改进领域的影响。 大多数贡献者都在积极采取措施提高他们的技能,并根据他们必须提供的技能加入项目。
OSS 贡献者有以下几种提高技能的动机和方式:
学习新知识
:OSS贡献者通过参与不同的项目和任务来学习新的技术、工具、框架、语言等。解决问题
:OSS贡献者通过解决自己或他人遇到的问题来提高自己的技能,比如修复bug、优化性能、增加功能等。参与社区活动
:OSS贡献者通过参与社区的各种活动来提高自己的技能,比如讨论、协作、评审、培训等。
OSS 贡献者是如何评估自己的技能水平和进步的:
- 反馈:OSS贡献者通过收到其他人的反馈来评估自己的技能,比如代码审查、问题评论、合并请求等。
- 成果:OSS贡献者通过观察自己的成果来评估自己的技能,比如完成任务、解决问题、提高质量等。
- 比较:OSS贡献者通过与其他人或自己过去的水平进行比较来评估自己的技能,比如参考优秀代码、学习先进技术、回顾历史记录等。
OSS 贡献者提升技能遇到的几种挑战:
- 时间:OSS贡献者往往缺乏足够的时间来提升自己的技能,因为他们需要平衡工作、生活和其他责任。
- 资源:OSS贡献者往往缺乏合适的资源来提升自己的技能,比如文档、教程、指导等。
- 信心:OSS贡献者往往缺乏信心来提升自己的技能,因为他们可能觉得自己不够好、不被欢迎或不被认可。
展示技能
贡献者展示他们的技能,维护者评估 GitHub 上的潜在贡献者。 贡献者分享技能以改善职业前景并展示专业知识。 贡献者发现技能可用于招聘、评估贡献、引导新人加入社区以及寻找专家。
OSS 贡献者有以下几种展示技能的方式:
- 贡献:OSS贡献者通过参与不同类型和规模的项目来展示自己的技能,比如编写代码、修复错误、撰写文档等。
- 交流:OSS贡献者通过与其他人沟通和协作来展示自己的技能,比如提问、回答、评论、建议等。
- 展示:OSS贡献者通过使用可视化和元数据来展示自己的技能,比如徽章、标签、图表、简历等。