[博客翻译]503天全职投身开源项目:经验和教训分享


原文地址:https://mathspp.com/blog/503-days-working-full-time-on-foss-lessons-learned


在GitHub上的在线存在带来机遇

在正式投入一个全职开源项目之前,我发现了一个有趣的事实:通过非传统途径寻找工作机会变得越来越容易,尤其是在互联网时代。如果你在找工作,提交简历或者填写表格确实能收到回应,但这次并非我找到Textualize工作的常规方式。我要告诉你的是,我在Twitter上的活跃互动如何帮助我获得这个职位——这就像你的在线活动成为你的个人招牌一样。

在Twitter上建立联系

我在X/Twitter上积极分享Python相关的内容,与Will这样的创建者偶尔互动。几个月来,我们之间的交流虽然零散,但我评论他的帖子,他也关注我的推文。他似乎喜欢我分享的Python技巧和文章链接。经过几次偶然的Twitter互动和视频通话后,Will主动询问我是否愿意加入Textualize团队。

尽管当时我说过未来可能会和他一起工作,那并不是为了求职,而更像是五年后的展望。然而几个月后,Will的邀请真的出现在了我的邮件中!这个过程让我明白,你在社交媒体上的活跃和公开工作成果能为你的职业道路打开新的大门。

把自我放在一边

在我加入Textualize前,我一直自诩是团队里最优秀的Python开发者,因为我是唯一的Python开发者。然而,这种优越感带来的问题是,没有人能挑战我,也没有人能教我新东西。在这里,我渴望与技术高手共事,于是选择了Textualize,它能满足我继续学习的愿望。

接受代码审查的反馈

加入Textualize后,我深刻体会到接受他人批评的重要性。每次提交pull请求都会被标记为需要改进,包括Will对早期提议的建议。这些不只是关于功能实现或修复错误,更是关于我所写的代码本身。起初,我对这种严格的审查感到不安,但我知道这是提升技能的机会。我也学会了快速适应反馈,推荐大家都应积极提问,即使看起来基础。

学会提问和包容

在代码审查中,我学到的一个重要原则是,当质疑别人为何选择不同的方法时,应该假设他们有合理的理由。此外,无论问题多么简单,都不要犹豫提出。这不仅能帮助自己学习,也有助于避免误解和增进团队合作。

与用户和贡献者的互动

作为一款热门开源项目,用户既是恩赐也是挑战。他们无疑提供了支持,但处理他们的需求和问题却耗费大量时间和精力。我总结了一些经验:

创建贡献指南

尽管没人会立即阅读,但有一个明确的文档总是好的,它可以帮助节省时间并提供方向。记得给出清晰的指导,尤其是对于bug报告,附上运行示例和必要的命令,这对解决问题大有裨益。

清晰的bug报告要求

确保用户清楚地表述问题,并提供可复现的示例。有时,简洁明了比冗长复杂更重要。

善意的沟通

每个人都有自己的故事,理解和尊重差异有助于避免不必要的冲突。如果遇到不友好的情况,尽量保持冷静,用建设性的方式沟通。

快速回复用户

及时响应外部用户的询问和问题至关重要,哪怕只是说一声“感谢您的报告,我会查看”。

外部Pull请求管理

管理外部贡献者提交的Pull请求也是一个挑战。使用模板和检查清单能够减少沟通成本,确保代码质量和遵循项目规范。

透明的关联问题

每个PR都应该与相关的issue关联,这样可以讨论未充分讨论的需求,避免直接实施未经深思熟虑的功能。

贡献者友好态度

记住,每一个出于善意做出贡献的人都值得尊重,即使他们可能在某些方面有所欠缺。

总结

在Textualize的503天,我学到了很多关于编程、软件工程和开源社区的知识。虽然离开这个职位让我有些失落,但我不后悔为了追求成长而离开之前的岗位。现在,我将利用我的知识和经验来帮助你们,无论是Python培训还是其他项目。敬请期待我的书籍和在线教学资源!