转载自:http://blog.jobbole.com/16792/
如果你想参与到开源项目中去,却又不知道从何入手,这里提供一些参考方法或许能给你提供一些帮助,哪怕你对你目前的技术还缺乏自信都不要紧。
开源软件已经改变了IT,甚至整个世界,正是因为有了你们,乐于奉献在开源事业中。不幸的是,很多人把参与到开源项目中想象成一个难以跨越的障碍一样,因此而退缩。我通常听到人们说他们很想参与到开源项目中来,但是因为以下的3个原因而打消了念头。
1. 我还不足够优秀
2. 我没有足够的是时间
3. 我不知道什么样的项目适合我
寻求机会参与到开源项目中去,你应该知道的三个基本原则:
1. 项目需要各种能力层次的专业人才。
2. 哪怕是微不足道的贡献也比没有好。
3. 从你正在使用的项目作为参与到开源的第一步
我从开源项目中所观察到最要命的想法是那些新人总认为要成为某种类型的天才程序员才能参与到开源中去,其实根本就不是这回事。当然,某些项目中的成员看起来就像摇滚明星,没错,他们确确实实是一个极具天赋的程序员,然而,我们中的绝大部分不是的。我们仅仅是那些只要把任务完成的人。有时我们做的付出的不需太多,有时我们需要花大把的时间,有时它就是编程,而有时它不是。
0. 加入邮件列表:对于大多数项目,邮件列表仍然是项目开发沟通主要的渠道。在一个规模比较大的项目中通常有很多邮件列表可以选择,例如:PostgreSQL项目就有不少于12个面向用户的邮件列表和6个面向开发者的。我建议你关注最主要的几个面向用户邮件列表以及核心的开发者列表。
1. 关注博客:博客一般由核心开发者维护,通常博客中包含项在未来版本的一些信息。如何获取这些信息呢?通常一个星级站点有包括来自很多相关项目的新闻或者博客词条,如果有一个星级站点,如:http://planet.gnome.org或者http://planet.mysql.com,那么你要做的仅仅是用Google搜索”planet
<项目名>”。
2. 加入到IRC频道:许多开源项目都有专门的互联网中继聊天(IRC)频道,用来为开发者和用户讨论开发问题。仔细查找项目站点中IRC频道叫什么。
3. 代码诊断:Bug通常很难报告出来,诊断快速处置bug有助于节省开发人员的时间。如果用户提出报告:“当我操作XX功能时,系统无法工作”,你得花些时间解决这些问题。还是不是会重复出现?例如该类问题是否只是发生在某种浏览器不兼容?只在发行版有这样的问题还是其它的原因。
4. 关闭已修复的bug: 通常bug在代码库中修复了,但是在问题追踪系统中还没更新。清理掉这些杂乱的东西虽然耗时,但是对整个项目来说是值得的。
5. 测试beta版或者候选版本:任何项目设计用于运行在多个平台时就有可能存在各种兼容性问题。当一个beta版或者候选版发布时,项目带头人希望能在不同的人和不同的平台上得到测试反馈结果,你就可以是其中之一。
6. 修复bug:修复bug通常是贡献者开始接触代码的地方,非常简单,在问题追踪系统中找到感兴趣的bug,把bug修复,如果合适的话为代码的修复撰写文档。
7. 写测试:绝大多数项目都有测试套件用来测试代码,很难想象测试套件中不能附加更多的测试在其上。使用测试覆盖工具诸如基于c的gcov、基于Perl的Devel::Cover,用来标识源代码没法通过测试套件测试到的范围,然后添加一个套件覆盖它。
8. 理性对待编译警告:许多基于C项目的构建过程中经常会出现很多古怪的编译警告,这些警告通常不是错误,但是看起来像,太多的警告让编译器听起来就像在发假警报,仔细检查代码是否的确隐藏有bug。
9. 附上注释:当你在深入研究代码时,你可能发现有疑惑的地方,如果感到疑惑,这对你来是一个机会,比别人也可能碰到同样的问题,给他们贴上注释提交补丁。
10. 创建例子:一般项目都没有太多入门的例子,不管是web API、普通程序库、或者是GUI应用如Gimp、还是命令行工具,比起长篇的文档,一个恰当的例子能够更清晰更快速解释软件的使用方式。
11. 问题回答:参与到社区最好的方式是帮助别人。回答问题,尤其是那些初次涉及的,这对于一个项目的成长很关键,即使你回答只是简单地”RTFM”(read the fxxk manual),每个人都要行动起来,项目如果要变得强大起来的话每个人需要动员起来。
12. 写博客:如果你有博客,写下你使用项目的一些经验,记录你碰到的问题及解决的方法。你可以通过两种方式来提供帮助,一个是记住你身边帮助过你的人,另一个是记录下你将来可能会碰到的问题。
13. 改进网站:很多程序员在图形设计方面显得非常糟糕,尤其是那些不能从设计部门得到帮助的项目网站。如果你有网页设计方面的技能,不妨改进下网站,网站作为项目的招牌,是值得花时间的。或许项目界面需要彻底改造,抑或仅仅是一个logo,这些是社区缺乏的技能,如果我能提供一些图形设计上的帮助,我会非常喜欢的。
有太多的方式参与到开源项目中,哪怕是我们写一个新产品的特性的历史回顾。每个使用开源项目的人都可以把技术带到社区和帮助开源成为IT产业中重要的一部分。
英文原文:Andy Lester 编译:伯乐在线
–刘志军
分享到:
相关推荐
此时,你可能会参与开源项目,制定技术标准,推动行业进步。 最后,无论处于哪个阶段,持续学习和实践是成长的关键。阅读专业书籍,参加线上课程,关注行业动态,参与社区讨论,都是提升自身能力的有效途径。记住,...
总结来说,《House MD "Pain Management"》是一款以开源方式开发的游戏,它借助开源软件的力量,吸引了众多爱好者共同参与开发,致力于创造一个与电视剧情节紧密相连的交互式体验。尽管目前游戏还在进行中,但随着...
对于希望跳槽到大公司的程序员来说,参与开源项目或模仿优秀互联网项目都是提升个人项目经验和作品集的有效途径。 总的来说,程序员的职业发展之路不是一帆风顺的,它需要刻苦努力,也需要一定的天赋和运气。认清...
因此,聪明的IT人会养成定期学习新知识的习惯,比如参加在线课程、阅读技术文档、参与开源项目等,以保持自身的竞争力。勤奋和积累是他们在职业道路上持续进步的引擎。 总的来说,无论是在编程、设计、分析还是其他...
通过分析和学习这个开源项目,Java开发者可以深入理解客户端应用程序的设计原则,提高编程技巧,同时也可以了解在线教育平台的实现细节。如果你对编程教育感兴趣,或者想提升自己的Java开发能力,zcoder-GeniusEdu...
Python是一种广泛应用于各种领域的高级编程语言,尤其在数据科学、机器学习、Web...同时,不断练习和解决问题是提升编程技能的关键,因此,除了教材学习,还建议参与开源项目、完成编程挑战或解决实际问题来加深理解。
开源软件,是信息技术领域的一种重要理念,它提倡代码的开放共享,鼓励社区参与和协作开发。"Oz Detector"遵循这一原则,意味着任何人都可以查看、修改和分发其源代码,这为软件的持续优化和创新提供了无限可能。...
6. **参与贡献**:如果项目是开源的,可以考虑向项目贡献代码,通过解决项目中的问题或添加新功能,进一步提升自己的技术水平。 7. **学习新技术**:如果项目涉及了你不熟悉的领域,那么这是一个学习新知识的好机会...
"保持斯塔克的遗产"意味着该项目旨在继承托尼·斯塔克的创新精神和技术成就,可能是一个开源项目,旨在让开发者社区参与到人工智能技术的发展中,以此纪念和延续斯塔克的科技理念。 **标签解析:** "Java"标签表明...
通过解压并分析这些文件,我们可以深入了解项目的结构、使用的编程语言、依赖的库和框架,以及开发者的编码风格和项目管理方式。 总结知识点: 1. 项目命名:项目代号"MrBrain295"可能代表开发者或团队的智慧和...
而在如今的IT领域,这被翻译为阅读最新的技术文档、参与在线课程、研究开源项目等多种形式。这种终身学习和适应不断变化的技术环境的态度,对于一名IT从业者而言,是实现个人成长和职业发展的关键。 在教育领域,...
这个项目是由著名的游戏爱好者和编程天才塞思·布林(Seth Bling)发起的,它涉及到一个名为MarIO的游戏模拟,利用了遗传算法(Genetic Algorithm)和Lua语言来实现。这个更新不仅展示了编程技术的巧妙应用,还揭示...
4. **开源精神**:强调了Linux项目背后所秉持的开源理念,这也是它能够快速发展的关键因素之一。 5. **Linux社区的成长**:随着越来越多的开发者加入到Linux项目中来,社区文化也随之形成和发展。 6. **商业化尝试**...
- **个人规划**:建立清晰的职业目标,不断积累实践经验,并通过参与开源项目等方式提升自己的技能水平,有助于在竞争激烈的软件行业中脱颖而出。 ### 知识点四:软件创业故事 **标题**:“UMLChina——我不经意的...
Linux 作为一种开源的操作系统,不仅为用户提供了免费的使用选择,更重要的是,它还为开发者提供了一个广阔的平台,使得全世界的程序员都能够参与到系统的改进和完善中来。通过持续的技术创新和社会各界的支持,...