Ukraine flag 我们与在乌克兰的朋友和同事站在一起。要支持乌克兰度过难关,请访问此页面

导师制 - 面向受指导者


申请流程

申请通过各项目网站提交,例如 Google Summer of Codeexternal link - Jaeger 分布式追踪平台LFX Mentorshipexternal link - Jaeger 分布式追踪平台

提案

Jaeger 导师制项目收到了大量申请(每个项目最多 150 份),因此我们要求申请人提交一份项目提案,以便我们找到最合适的候选人。即使某个特定项目的指导方针不要求提交提案,也请将其包含在其他申请文件中,例如求职信(PDF 文档优于超链接)。

我们希望提案涵盖以下主题:

  • 关于你
    • 你为什么对这个特定项目感兴趣?
    • 你有哪些相关的经验或技能将有助于你取得成功?
    • (可选)你有什么开源经验?请提供一些值得注意的拉取请求链接。
    • 在导师期内,你将有多少时间投入?
  • 关于项目
    • 你如何理解这个项目需要完成什么?
    • 你预见哪些技术挑战,你建议如何解决它们?
    • 你打算如何开展项目(路线图、里程碑、时间表)?

这并不意味着提案越长越好。关键在于质量,以及展示哪个候选人更好地理解问题并能有效地解决问题。你不需要解释 Jaeger 是什么以及如何运作。相反,请专注于项目的具体问题,并思考挑战和解决方案。

公平竞争

为了确保所有申请者的评估过程公平一致,我们无法在提交截止日期前提供关于提案的个人反馈。向部分申请者提供反馈而其他申请者不提供,会造成机会不均等。所有提案将在截止日期后由遴选委员会进行全面考量。我们鼓励所有感兴趣的个人提交他们最好的作品。

如果您需要提出关于项目的具体问题/澄清,请在跟踪问题的评论中提出,以便所有申请者都能看到。

训练营

为了更好地理解项目并提出合理的解决方案,熟悉 Jaeger 及其代码库总是有帮助的。我们强烈建议您参加训练营

评估标准

我们没有确切的评估清单,但以下标准具有高影响力:

  • 候选人在 Jaeger 中合并了几个 PR,这表明:
    • 他们对代码库的理解,
    • 他们对我们开发工作流程的理解,
    • 他们的编码和解决问题的能力。
  • 高质量的提案,展示了:
    • 对问题的良好理解,
    • 进行了技术尽职调查,
    • 解决问题的可行方法。
  • 有证据表明之前完成了高质量的开发任务,例如在其他开源项目中。

导师制

恭喜您被选为 Jaeger 受指导者!开始项目时可能会感到困难重重,因此这里有一些指导方针可以帮助您入门。

入职清单

保持进度日志

由于导师制是远程的,确保您取得稳定进展并及时向导师汇报的最佳方式是定期更新进度日志。

  • 在学期开始时,复制此Google 文档模板external link - Jaeger 分布式追踪平台并分享给您的导师(允许评论)。
  • 在每周开始时,为该周创建一个部分,列出您想要实现的目标。
  • 在每天结束时,在相应的目标下添加带有日期的日志条目,简要总结您所做的工作。
    • 这可能只是一句话,例如“阅读了 XYZ 文档 {链接}”。
    • 理想情况下,记录一些关于您所做工作如何影响您未来计划的结论/决定。
    • 如果某天您未能进行项目工作,也要记录下来,以保持透明度。

为什么日志很重要

  • 日志让您的导师了解您的进展,并允许他们进行方向修正。
  • 如果您无法撰写一周的目标,这表明存在误解,您的导师需要与您一起澄清要求和方法。
  • 许多项目需要研究/分析如何最好地解决特定问题。写下您的发现有助于您组织自己的理解,并及时获得导师的反馈。请记住,导师可能也不熟悉该特定领域,他们依靠您研究、综合并呈现影响项目的信息。
  • 清晰的写作是软件工程师最重要的技能之一。您可能认为编码技能更重要,但随着您资历的增长,写作是您沟通想法并与团队/社区达成一致的方式。利用这次指导机会磨练您的写作技能。
  • 将导师制项目视为一份工作,肩负着取得进展和实现目标的责任。

提示

  • 提出问题!一个好的经验法则是,如果您花费一个多小时仍无法在文档或代码中找到答案,请毫不犹豫地向您的导师寻求指导。您也可以在 #jaegerexternal link - Jaeger 分布式追踪平台 和 #jaeger-mentorships Slack 频道中提问。
  • 在进行相对重大的更改之前,请写下您的计划、原因以及潜在的挑战或未知因素。考虑将其作为 Jaeger 中的新问题external link - Jaeger 分布式追踪平台记录下来。
  • 一次处理小范围的可交付成果,逐步进行小改进。将一个大任务分解成小块有助于使看似艰巨的任务变得可管理。这也有助于减轻审阅者的认知负担!😀
  • 在处理问题的同时,由于不确定最终方法是否奏效,将问题分解可能颇具挑战性。一个基本的概念验证可以为最终结果提供保障,有助于突出需要单独解决的子问题,同时还给您机会探索各种替代解决方案并确定最佳选项。
  • 欢迎您加入每月 Jaeger 视频通话
  • 编写单元测试,如果适用,在本地运行实时集成测试。测试可以向您自己保证所编写的代码有效,向代码阅读者记录预期行为,并防止未来贡献导致回归。
  • 鼓励您审阅其他人的 PR(例如来自您的其他受指导者),并提供友善和建设性的反馈。这是学习良好编码实践的好方法,同时也有助于您熟悉代码库。
  • 欢迎提出改进建议!例如,如果您在开发工作流程中遇到了很多摩擦,我们是否可以通过更好的文档或自动化来改善开发者体验?