
值得注意的是,这一研究成果已有实际落地产品——Vibelf - Scratch Copilot,为全球教育工作者和学生提供 AI 驱动的 Scratch 编程辅助服务,让编程学习变得更加智能化和个性化,致力于帮助青少年提升计算思维。


虽然像 Scratch 这样的创意编程平台已经让编程变得更容易接触,但将想象中的创意转化为功能代码对许多年轻学习者来说仍然是一个重大障碍。尽管 AI 编程助手在成人程序员中显示出巨大潜力,但专门针对儿童块状编程环境的工具却非常稀少。
近期研究表明,5-10 岁是儿童编程教育的关键发展窗口期。传统观念认为”9 岁才能有效学习计算思维”,但最新的集群随机对照试验证实,年龄适配的编程干预能同步提升 5-10 岁儿童的计算思维技能和执行功能,且低龄儿童(5-7 岁)表现出更强的认知可塑性。
研究团队开发了 Cognimates Scratch Copilot 工具,并进行了探索性定性评估:
18 名国际儿童(年龄 7-12 岁)另一项关于《编程干预的年龄效应:探究5-10岁儿童计算思维与执行功能的协同发展》的大规模研究采用集群随机对照试验设计:
437 名儿童(一年级 273 人,四年级 164 人)8 小时 Code.org 平台编程课程70% 的情况下提供了有用的指导,其余 30% 的复杂情况仍需要人工帮助或儿童自主解决问题基于 437 名儿童的大规模研究发现了显著的年龄差异效应:
研究证实,年龄适配的编程干预能同步提升 5-10 岁儿童的计算思维(Computational Thinking, CT)技能:
1.53 个标准差,编程计划时间缩短效果显著(d=1.18)1.84 个标准差,学习效率更高但自动化进步较小(d=0.34)1.44 个标准差,四年级生为 0.91 个标准差,低龄组计划时间减少 33%80%(d=0.80),四年级生减少 38%(d=0.38);Stroop 测试同样显示低龄组优势(d=1.10 vs 0.44)基于两项研究的综合发现,提出了设计儿童 AI 编程助手和编程教育的关键原则:
Scratch Copilot 的核心技术创新已在Vibelf - Scratch Copilot中得到完整实现:


完整的智能课堂工具链,包含课程设计、分析和管理功能
两项研究的综合发现为儿童编程教育和 AI 助手设计提供了重要洞察:
本文通过深入分析两项重要研究,揭示了 AI 辅助编程教育在儿童计算思维培养和认知发展中的关键作用。研究明确证实,编程教育是培养 21 世纪”新式读写能力”的有效途径,能够系统性提升儿童的计算思维能力,包括分解思维、模式识别、抽象思维和算法设计等核心技能。
精心设计的 AI 工具结合年龄适配的教学策略,不仅能够支持儿童的编程学习,还能在保持其创意主体性的同时显著提升计算思维和认知能力,这种认知效益还能迁移到执行功能等其他认知领域。
Vibelf - Scratch Copilot 作为这一理论研究的成功实践,展现了从学术研究到商业产品的完美转化。通过 AI 驱动的个性化学习、系统性的计算思维培养、多角色支持系统和丰富的交互功能,Vibelf 不仅验证了研究发现的实用性,更为全球数千名用户提供了高质量的计算思维培养体验。
随着人工智能技术的不断发展,AI 辅助编程教育将在培养下一代数字原住民的计算思维和创新能力方面发挥越来越重要的作用。计算思维作为数字化时代的核心素养,其培养价值已得到充分验证。这项研究为 AI 在儿童编程教育中的应用提供了重要的理论基础和实践指导,标志着 AI 编程助手从成人领域向儿童教育领域的重要扩展,更为计算思维教育的规模化发展奠定了坚实基础。
<!DOCTYPE aigc>: Your next web page is not HTML》 提出了通过大模型零成本发布网页的设计方案。论文中提到 Chrome 在实验一个功能,你的网页内容只需使用人类语言编写提示词,当用户浏览你的网站时,Chrome 会根据大模型自动生成网页内容。
你只需将 HTML 文档类型声明 <!DOCTYPE html> 替换为 <!DOCTYPE aigc>,主体内容则是你网页的提示词,例如,“一个类 YouTube 的网站,展示搞笑的猫短视频”。
如果你购买了下一代搭载了 Google 自研 AI 芯片的 Google Chromebooks,你的用户甚至可以在无需联网的情况下访问你的网址,即刻浏览由 Google 强大的多模态大模型 Gemini 生成的网页内容。
Google 对此的愿景是:无论有什么创意,你都可以轻易向世人用更丰富的形式展示你的作品。假设你是一个诗人,你的网站提示词就是你的诗,而你的用户可以看到 AI 根据诗生成的视频。假设你是个编剧,你的剧本直接变成影片;假设你是画家,你的画展自动有多国语言的注解。等等,知识的传播和创造将变得从未有之容易,人的创作潜力真正展现出无限可能。
与此同时 OpenAI 也在测试同样功能的 React 组件 <OpenAIView>,两者的目标都是让自家的大模型接管网页开发和内容生成。从论文内容来看 Google Chrome <!DOCTYPE aigc> 功能更强大些,以下来看看两者的差异性:
Google Chrome <!DOCTYPE aigc> 基于 Google Gemini 大模型生成内容,WebSocket 加载,以 Chrome 作为渲染载体。

例子
<!DOCTYPE aigc>
Show me a YouTube-like website
that shows short funny cat videos.
OpenAI 的 React 组件 <OpenAIView> 基于 OpenAI 的大模型生成内容,微前端加载,以 React 作为渲染容器。
例子
//...
export default function MyApp() {
return (
<OpenAIView>
Show me a YouTube-like website
that shows short funny cat videos.
</OpenAIView>
);
}
Google Chrome <!DOCTYPE aigc>:
支持可交互游戏,通过 Canvas+WebGL+WASM 实现;支持动态更新,按需更新网页中的模块;Single Source of Truth,严格根据提供的在线数据 API 解析并生成内容;OpenAI 的 React 组件 <OpenAIView>:
Google Chrome <!DOCTYPE aigc>:
但仅限于 Chrome,不兼容其他浏览器;支持离线浏览;全球可用;OpenAI 的 React 组件 <OpenAIView>:
仅支持文本;兼容任何浏览器;Google Chrome <!DOCTYPE aigc>:
支持加密,通过加密提示词防止他人盗用,Chrome 会校验提示词的加密 hash 与域名的匹配,保证你的网站内容总是独一无二的。支持隐私策略,用户浏览的内容都是无法追踪的;OpenAI 的 React 组件 <OpenAIView>:
20个在线服务系统中收集了2018年至2020年的 2.7 万条事故数据,发现 TTM 与事故的严重性、影响范围、类型、来源、所属服务和所属团队有显著的相关性,信息不足、沟通不畅、协作不协调是影响 TTM 最大的因素,并提出了预测方法 TTMPred。
数据使用了微软内部的事故管理系统,从2018年至2020年的20个大规模在线服务系统中收集了事故数据,包括事故的文本描述、讨论记录、缓解时间等信息,共计约2.7万条。
事故生命周期的的时间分布
开始时间、结束时间、持续时间和缓解时间。事故在工作日和工作时间更多发生,而在周末和非工作时间更少发生。大多数事故可以在较短的时间内结束或缓解,但少数事故需要较长的时间。严重性、影响范围、类型、来源、所属服务和所属团队有显著的差异,即不同属性的事故的时间分布有不同的特点。影响 TTM 的因素
信息不足、沟通不畅、协作不协调等。
论文提出了一种基于深度学习的事故缓解时间预测方法,称为 TTMPred。评估 TTMPred 的有效性和性能时使用了微软四个大规模、不同类型的在线服务系统的事故数据,包括 Azure DevOps、Azure SQL、Azure Storage 和 Office 365。
Modern Code Review (MCR)。巴西南里奥格兰德州联邦大学 (UFRGS)和阿雷格里港信息学研究所合著的论文《A Systematic Literature Review and Taxonomy of Modern Code Review》 系统分析了 139 篇论文和来自行业、开源项目的问卷,详尽的记录了十多个细节性发现,能帮助我们了全面了解采用 MCR 的动机、挑战和好处,以及哪些影响因素导致哪些结果,并总结了改进 MCR 流程的提案。
有经验的审阅者。新人往往会受到更多关注。经验丰富的作者、经验丰富且积极且高度一致的审阅者时,审阅请求的完成时间会更短。放弃代码更改的主要原因是重复和缺乏反馈。审查代码更改后,产品质量往往会提高。 更多地参与代码审查、审查活动的更多经验以及审查者更熟悉项目也是降低发布后缺陷可能性的因素。MCR 和结对编程在成本方面是可以互换的,除非在测试驱动开发中采用后者——在这种情况下,MCR 的成本更低。MCR 有多种目的,其中最主要的是提高代码质量和发现缺陷。此外,MCR 还可以促进知识共享、团队协作、学习新技能、遵循编码标准等其他目的。


提案是指支持 MCR 的技术和工具,它们可以帮助代码审查者和作者更好地进行 MCR,可提高 MCR 的效率、效果和质量,以及减少 MCR 的成本和复杂性。提案可以分为以下几种类型:
TOP25 软件弱点之一,而 GitHub 公开的 Repo 中有超过600万个公开的密码(数据库凭证、API 密钥和其他凭证)。美国北卡罗来纳州立大学的论文《What are the Practices for Secret Management in Software Artifacts?》确定了 24 种管理密码的最佳实践。发现:本地环境变量、外部密码管理服务、使用版本控制系统扫描工具和使用临时密码能有效避免意外提交密码和限制密码暴露。
OSC-1:使用本地环境变量。本地环境变量是在应用程序外部定义的动态对象,用于避免将密码存储在 VCS 或配置 (config) 文件中,是实践者力荐的。OSC-2:将密码移动到配置文件。使用模板配置文件可以减少将密码签入 VCS 的机会,从而防止潜在的密码泄露。OSC-3:忽略敏感文件。为避免提交敏感文件,所有数据库都应包含一个 .gitignore 文件OSC-4:为客户端应用程序添加服务器端实现。为了避免在客户端应用程序中获取保密数据,服务端将使用适当的加密并为客户端获取数据,从而消除了在客户端应用程序中保存密码的必要性。SSC-1:使用外部密码管理系统。管理密码的实践中最推荐的方案,外部密码管理系统最大限度地减少人工参与创建、分发和维护密码。这些系统可以根据开发人员所在的团队分配权限,可使开发人员的密码失效,可设置动态密码,可设置基于租约的密码管理。例如 HashiCorp Vault, AWS KMS 和 Knox。SSC-2:存储加密的密码。使用加密工具的好处是实施不需要额外的基础设施,避免对密码进行 Base64 编码,必须安全地管理加密密钥(远离 VCS)并且不用基于角色的机密访问控制。LSE-1:使用临时密码。临时密码可以通过终止访问来防止以前未被发现的数据泄露成为威胁,需要正确轮换和重新分配密码。LSE-2:限制 API 访问和权限。还应设置 API 密钥使用的每日限制。因为攻击者经常在他们的范围内使用密码,所以检测他们何时恶意地这样做可能具有挑战性。通过限制对密码的访问和许可来限制损害和横向移动。LSE-3:撤销机密并清理 VCS 历史记录。密码不会通过在另一次提交中删除它们而被完全删除,因为密码将保留在 VCS 历史记录中。最佳做法是在使用工具扫描 VCS 历史记录之前关闭所有拉取请求。GitHub 建议使用 git rebase 因为合并可以引入一些受污染的历史。LSE-4:审核所有上传到 VCS 的代码并查看 VCS 审核日志以查找可疑活动。Asc-1:使用 VCS 扫描工具。不建议依赖代码审查来检测密码,建议运行 VCS 扫描工具,将 VCS 扫描工具与持续集成或持续部署,例如 TruffleHog、Gitrob 和 git-all-secrets。ASC-2:显式添加文件。在 VCS 显式添加文件,应避免使用通配符命令 (git add -A, git add ., add *) 。ASC-3:在提交之前使用 VCS 钩子检查文件。为了防止密码被推送到 VCS 数据库中,建议使用 VCS 在特定操作之前或之后执行脚本。钩子可用于在提交之前或拉取之后分别过滤和涂抹密码,每个开发者都需要单独设置 VCS 钩子。MSD-1:在 CI/CD 中使用密码变量。从 CI/CD 脚本中删除硬编码的密码,并使用构建/部署系统的密码变量。MSD-2:使用配置管理系统。不同机器的配置由配置管理系统 (CMS) 工具从一个集中位置进行协调,可以使用确保每台机器接收正确配置的相同机制将密码分发到特定机器。Msd-3:为每个环境使用不同的密码。避免在多个环境中使用相同的密码,这样暴露一个环境的密码就不会危及其他环境。生产环境的密码应该不同于开发或预生产环境。将生产环境的密码仅限于一小部分所有者,以避免失败的风险。MSD-4:将点文件保存在根目录之外。在部署过程中将点文件(例如 .git, .gitignore, .config)移出根目录。应该对生产服务器上的点文件应用适当的访问限制,以避免泄露密码。如果.git文件夹没有保存在根目录之外,那么提交更改的整个历史就会暴露给攻击者。组织可以采用一般做法在 VCS 中为开发人员实施政策。这些一般做法可以最大限度地减少漏洞,从而有助于避免泄露密码。
OEP-1:严格管理开发者权限。组织应遵循最小特权原则。组织不应授予开发人员超出所需范围的权限,例如更改数据库可见性和添加外部贡献者。如果数据库包含密码,则有权更改数据库可见性的开发人员越多,失败的风险就越高。OEP-2:强制执行 2FA 身份验证。为了防止通过不安全的开发者帐户泄露源代码,建议强制执行 2FA 身份验证。OEP-3:需要提交签名。恶意用户可以通过伪装成其他人将可利用代码推送到 VCS 中,并通过更改 VCS 中的用户名和电子邮件地址来保持无法追踪。对于代码合并的验证和可追溯性,可以使用提交签名,这是一种密码代码签名技术。提交签名是通过 GPG 完成的,签名的提交会获得一个“已验证”标志。恶意用户的提交很容易被追踪,因为提交不会有“已验证”标志。OEP-4:添加 Security.md 文件。添加 Security.md 以正式记录与安全相关的过程和程序,例如令牌可访问性、身份验证要求和漏洞报告。这安全 Security.md 可以作为开发人员的有用参考,也可以作为组织安全期望的集中空间。OEP-5:实现单点登录。可以通过利用 SAML SSO 明确提供对资源的权限来管理对 VCS 资源(例如特定数据库和拉取请求)的访问。SAML SSO 还允许设置经批准的身份提供者,这使组织能够强制开发人员使用组织的帐户而不是私人拥有的 VCS 帐户进行登录。OEP-6:禁用 Fork。Git Fork 功能允许开发人员复制数据库,并且对测试和沙盒很有用。Fork 可以向公众泄露密码。每一次 Fork,风险都会呈指数增长,从而导致一系列安全漏洞。
论文将软件监控的日志技术映射到四个维度和13个分支:
25%的成本浪费于解决技术债遗留的问题。塞尔维亚诺维萨德大学、巴西里约热内卢联邦大学、巴伊亚联邦大学和巴西塞阿拉联邦研究所、洛斯安第斯大学、哥伦比亚大学、美国蒙大拿州立大学和爱达荷国家实验室、萨尔瓦多大学和巴西巴伊亚州立大学合著的论文《Prevalence, Common Causes and Effects of Technical Debt: Results from a Family of Surveys with the IT Industry》 调查了 12 个国家/地区的研究人员的反馈,研究各种软件开发活动与技术债(Technical Debt,简称 TD)之间的关系。发现:TD 的主要影响是交付延迟,可维护性低,和返工;导致 TD 的 8 大原因最大的是 Deadline;TD 类型占比 TOP5 是设计、测试、代码、架构和⽂档。

设计债 (21.99%):是指违反良好设计原则和实践。 这种欠债可以通过分析源代码来发现。 例如,使用代码审查技术或静态代码分析工具。测试债 (19.94%):是指与测试问题。 例如,未执行的计划测试或低测试覆盖率。代码债 (14.66%):是指在源代码中发现的对代码的可读性和可维护性产生负面影响的问题。 例如,过于复杂的方法或不存在的编码标准。 为了消除代码债,需要进行代码重构。架构债 (10.70%):是指影响架构要求(例如,性能、可维护性、健壮性等)的系统架构问题。 例如,违反模块化原则或分离不佳会导致系统的进一步演进、维护和扩展出现重大问题。文档债 (9.09%):是指在软件项目的文档中发现的问题,包括文档缺失。 它是通过查找不一致、缺失、不充分或不完整的文档来发现。 例如,技术文档已过时,无法反映系统的实际状态。需求债 (8.80%):是指约定的需求与软件产品中实际实现的需求之间的差距。 例如,这可以表现为部分实现的要求或仅针对某些情况定制的要求。流程债 (4.11%):是指低效流程。 例如,随着时间的推移,流程发生了变化,现有的做法不再有效。基础设施债 (2.93%):是指如果存在于组织中会显着降低团队交付优质产品的基础设施问题。 例如,使用过时的工具或推迟定期软件或系统更新。缺陷债 (2.79%):是指发现的已知缺陷,但修复被推迟或从未修复。 推迟修复的决定可以在系统中积累大量的 TD。人力债(1.32%):是指与人有关的问题。 例如,缺乏需要额外培训或特定技能和知识。 与人相关的问题要复杂得多,它们涉及直接影响生产力和人们满意度的社会组织因素。
结论:
Deadline、未采用良好做法、缺乏经验和压力是招致 TD 的最可能原因。这些原因很可能是计划不当、缺乏明确定义的流程或无效的项目管理。8 大原因:
规划和管理:同时处理不同的客户和项目、行为不当、领导不力。开发问题:缺乏质量、遗留系统、遗留工件。方法论:未执行测试,任务分配不佳。缺乏知识:缺乏经验、上下文。人:过度自信,不分享知识,缺乏团队沟通。组织:缺乏培训,项目缺乏优先级。外部因素:付款动态、停产的依赖。基础设施:技术、工具、平台选择不足,所需基础设施不可用。

结论:
交付延迟、可维护性低并产生返工需求。 这些影响还会导致长期影响,最有可能造成经济损失。6 大影响:
规划与管理:增加成本,增加投入。外部质量:低质量、低性能、低可维护性。内部质量:代码可读性差,维护量增加。人:客户或用户不满意,缺乏知识。开发问题:代码重用率低,易处理性低。组织:财务损失,公司形象受损。
33 个缓解措施。
它是一个攻击树的形式,包含了五个主要的攻击目标:代码贡献、版本控制系统、构建系统、分发平台和下游用户,每个攻击目标下面有多个攻击向量,即具体的攻击方法,每个攻击向量也有一个或多个与之相关的缓解措施。

选择一个编码风格指南——并坚持使用它。编码风格指南是一套规定代码的格式、命名、缩进等方面的规范,它可以提高代码的可读性和一致性。选择一个编码风格指南并坚持使用它可以帮助开发者和用户更容易地理解和维护代码,以及避免潜在的错误。建议使用现有的编码风格指南或工具,如 PEP8、tidyverse、BlueStyle 等。考虑使用集成开发环境。集成开发环境是一种集合了代码编辑、调试、运行、测试等功能的软件应用,它可以提高开发者的效率和便利性。考虑使用集成开发环境可以帮助开发者更容易地编写和管理代码,以及利用其提供的各种辅助功能,如自动补全、语法高亮、错误检测等。建议使用适合所用语言或领域的集成开发环境,如 PyCharm、RStudio、VS Code 等。尽可能减少复杂性。复杂性是指代码在结构、语义、逻辑等方面的难度或复杂度,它可以影响代码的可读性和可维护性。尽可能减少复杂性可以帮助开发者和用户更容易地理解和修改代码,以及提高代码的效率和可靠性。建议使用简洁和表达力强的代码,避免重复或冗余的代码,利用语言特性或库函数等方法。根据需要重构代码。重构代码是指在不改变代码外部行为的前提下,改善代码内部结构或质量的过程,它可以提高代码的可读性和可维护性。根据需要重构代码可以帮助开发者和用户更容易地组织和扩展代码,以及提高代码的灵活性和可维护性。建议使用模块化和可复用的代码,使用函数、类、模块等结构来封装代码逻辑,遵循单一职责原则、开闭原则等设计原则。防御式编程。防御性编程或防御性设计:主动考虑⽤⼾与代码的意外交互。是指在编写代码时考虑到可能出现的错误或异常情况,并采取相应的措施来处理或避免它们的方法,它可以提高代码的正确性和鲁棒性。防御式编程可以帮助开发者和用户更容易地发现并修复错误,以及提高代码的效率和可靠性。建议使用异常处理、断言、日志、契约等方法。遵循已有的编写单元测试的模式。单元测试是指针对代码中的最小可测试单元,如函数、类、模块等,进行独立的测试,以验证其功能或行为是否正确的方法,它可以提高代码的正确性和可测试性。遵循已有的编写单元测试的模式可以帮助开发者和用户更容易地编写和执行单元测试,以及提高单元测试的质量和一致性。建议使用现有的单元测试框架或工具。在开发周期中创建测试。在开发周期中创建测试是指在编写代码的同时或之前,就开始编写相应的测试,以验证代码是否满足预期或需求的方法,它可以提高代码的正确性和可维护性。在开发周期中创建测试可以帮助开发者和用户更容易地检测并修复错误,以及提高代码的可靠性和可扩展性。建议使用敏捷开发或测试驱动开发等方法。确保足够的测试覆盖率。测试覆盖率是指代码中被执行到或覆盖到的部分占总代码量的比例,它可以反映代码的可测试性和可信度。确保足够的测试覆盖率可以帮助开发者和用户更容易地评估并提高代码的质量和安全性,以及降低出错或漏洞的风险。建议使用现有的测试覆盖率工具或服务。设置端到端和回归测试。端到端测试是指针对整个系统或流程进行完整的模拟用户操作或场景来验证其功能或行为是否正确的方法,它可以提高系统或流程的正确性和完整性。回归测试是指针对已修改或更新过的代码进行重复执行已有的测试来验证其功能或行为是否仍然正确的方法,它可以提高代码的稳定性和兼容性。设置端到端和回归测试可以帮助开发者和用户更容易地保证系统或流程的质量和安全性,以及降低出错或漏洞的风险。建议使用现有的端到端和回归测试工具或服务,如 Selenium、Cypress、TestCafe 等。自动化你的软件测试工作流。自动化你的软件测试工作流是指使用工具或服务来自动执行、管理、报告你的软件测试,而不需要人工干预或监督的方法,它可以提高软件测试的效率和便利性。自动化你的软件测试工作流可以帮助开发者和用户更容易地进行频繁和及时的软件测试,以及提高软件测试的准确性和可追溯性。建议使用现有的自动化软件测试工具或服务,如 GitHub Actions、Travis CI、Codecov 等。 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 贡献者提升技能遇到的几种挑战:
贡献者展示他们的技能,维护者评估 GitHub 上的潜在贡献者。 贡献者分享技能以改善职业前景并展示专业知识。 贡献者发现技能可用于招聘、评估贡献、引导新人加入社区以及寻找专家。
OSS 贡献者有以下几种展示技能的方式: