我的开源之旅
初次踏入开源世界,难免会感到畏惧。像Hacktoberfest这样的线上活动旨在鼓励和帮助新手提交一些简单的 PR,从而让你对开源有所了解。但一旦你体验过开源,就会渴望真正为某个项目做出有意义的贡献。 而这正是挑战的开始。我第一次参加 Hacktoberfest 是在 2018 年。收到各种奖品固然令人兴奋,但那也只是我接触开源世界的开始。我渴望为更多项目做贡献,但大多数时候,项目的复杂性和代码库的庞大让我望而却步,几乎总是放弃任何进展的想法。 这种情况持续了整整两年!直到有人逼我,我才不得不开始行动。我目前正在攻读硕士学位,即将毕业,之前只接触过 C++ 和 Qt 框架,做过一些小型趣味项目和桌面应用程序。我懂一些Python,但仅限于大学日常学习所需的基本知识。我从未深入学习过它,也没有通过项目实践过。 软件架构课上我接到一个作业,要求我为开源项目做贡献,可以是修复bug、提出功能请求或解决代码问题。我们都知道,这些都不容易。我开始寻找相关的项目,这时我才意识到我的选择非常有限,因为我只会C++,而且主要都是在LeetCode上做题。 (嘘,新手们!这条信息是给你们的: 对于所有在语言选择上遇到瓶颈的人,我强烈建议你们走出自己最喜欢的语言的舒适区,去学习一门新的语言。不要自己扼杀自己的翅膀。) 这个认知让我深受震撼。学习其他语言不仅能拓宽我们的视野和领域,还能让我们变得更加多元化。如果你还在犹豫该选择哪种语言,不妨试试JavaScript?我已经开始学习JavaScript了(当然 是从最著名的FreeCodeCamp开始的)。它几乎无处不在,前端、后端、桌面、移动设备,到处都是!甚至现在连物联网设备也用上了。(什么?!) 总之,我在KeepassXC 的GitHub 代码库里看到了一个功能请求,希望能够根据用户选择的颜色来调整应用的界面颜色。我接受了这个请求并开始着手开发,取得了一些进展,然后询问了反馈意见。得到的回复是,我的方向是对的,但由于这只是一个实验性功能,可能永远不会被合并。虽然维护者很客气,鼓励我继续尝试和学习,但我还有任务要完成。所以,我的开发工作就此搁浅了。



接下来,我浏览了另一个代码库,查看其中的项目,意识到如果我精通 JavaScript,就不会遇到这么多困难。过了一段时间,我偶然发现了IssueHub。
我搜索了 C++ 和“beginner”标签,不知怎么的又找到了一个项目。 这次我做了更多研究。我查看了他们如何处理标记为“beginner”的问题,浏览了讨论内容,阅读了 CONTRIBUTING.md 文件,查看了他们的 CodingStyleGuide.md 文件,然后决定选择一个符合要求的问题。
我希望这次我的修改能被合并到项目中,这样我的作业就能有所成果了。不过,不管有没有作业,我都想对所有新人说,先从小问题入手,大胆尝试。随着你们不断开发和学习代码,你们终会为自己想做的项目做出有价值的贡献。这需要付出努力和耐心。但话说回来,哪件事不需要呢?