很有可能工作中无法开发出自己理想中的软件。 也许你正在一家大型保险公司开发业务系统,其实你更想去google, Apple, Microsoft之类的科技公司,但硬实力不允许啊。
幸运的是,解决这个问题的最佳答案是:参与开源项目。 当前有数以千计的开源项目,大多数很活跃,能提供你想要的各种类型的开发经验。如果你很想开发操作系统,数十个操作系统开源项目可供你选择。如果你想开发音乐软件,动画,机器人,PC单机游戏,大型在线游戏,手机端等,你都至少能找到一个你感兴趣的开源项目。
当然,天下没有免费的午餐,你不得不放弃你的休息时间因为不大可能在工作时间来从事开源上的工作。你在开源项目上付出的努力越多,你迅速成长为一个合格程序员,施展自己抱负的速度就越快。
开源项目为有动力的程序员提供了巨大的机会。首先你能通过阅读源代码,学到其他人在你感兴趣的项目上提供的解决方案。其次你能贡献你的想法和代码-并非所有好的想法都会被接受,但有些可以。第三你会在你感兴趣项目上遇到同样有激情的技术大牛,这些开源友谊可以受益一生。第四假设你是一个有能力的贡献者,这些在开源项目的经验和履历会增强你在现实职场中的竞争力。
开始启动参与一个开源项目是相当容易的。先学习了解开源项目用到的工具(如vsc, IDE, language, ci, etc.)。 大多数开源项目文档方面不会齐全,但问题不大,因为了解项目的最佳方式是阅读源代码。你一开始可以通过完善文档的方式开始参与,或者你从自愿编写单体测试代码开始,也许会觉得这样成就感不强,但为他人编写测试代码你可以学习的更快。写真正好的测试代码,可以找出bug, 提出修复建议,结交朋友。总之通过参与开源项目能实现自己开发一个优秀软件的理想。