设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

做一名开源社区的扫地僧 (上)

2012-10-15 14:02| 发布者: 红黑魂| 查看: 4521| 评论: 0|来自: 开源中国

摘要: 不知道怎么为开源软件做贡献?从汇报 Bug 开始吧,或许还有钱赚呢~ 且看 Qian Hong 的经验分享。全文转载开始今年的软件自由日(SFD),我在广州Linux用户组的线下活动上做了一个分享,主题叫做《做一名开源社区的扫 ...

实际上, 保持动力的第二个方法仍然是 "多报bug". 当你报的bug足够多的时候, 可能会发现只要你一段时间不上网, 邮箱里就有很多bug邮件等着你处理, 可能是开发者发布了新补丁等你帮忙测试, 也可能是一组相关联的bug状态发生变化需要重测, 这时候bug reporter的作用就很重要. 如果不回复, 开发者的工作就可能被阻塞, 意识到这一点, 就会加倍感受到自己在社区中的价值.

如果我说保持动力的第三个方法仍然是多报bug, 那我一定会被读者骂死 :) 其实, 在我看来, 保持动力的最终极办法, 就是跟开源项目的其他贡献者成为朋友. 加入一个国际性的开源项目, 可以认识到地球上不同角落的朋友, 也许有的角落你一辈子都没有机会到达, 但是那里有个跟你素未谋面却一样为同一个开源项目做贡献的人, 这是多么神奇的事情! 如果你得到某个老外的帮助, 一定要记住她/他的名字, 虽然老外的名字很难记; 如果你得到别人的鼓励, 也不要忘了鼓励别人, 大牛和菜鸟一样都需要鼓励. 如果你跟世界各地的开源项目贡献者成为朋友, 就会加倍享受到开源的乐趣, 那个时候, 地球人都无法阻止你报bug了...

既然决心报bug, 就千万别浪费一边扫地一边偷学的好机会, 这正是扫地僧的真谛所在. 开源社区里虽然不需要"偷", 但要观察到别人忽略的东西, 学到别人没学到的东西, 也需要 "留心", 所谓的 "偷学" 其实就是分外留心地观察和学习. 只要有心, 报200个bug可以学到很多东西.

  • 如果开发者反复追问bug的细节和日志, 你可以学习积累排错调试的方法思路.
  • 如果开发者关闭了重复的bug, 就应该注意学习搜索方法和积累搜索关键词, 尤其是英文不好的新手.
  • 如果一个bug被开发者确诊为上游的bug, 你也可以顺便了解上游项目.
  • 对于大型项目, 要阅读完所有代码几乎是不可能的, 报bug的过程可以熟悉局部代码并逐渐入门开发:
  • 如果开发者针对bug发布了一个补丁, 可以尝试从这个补丁周围的代码入手阅读和学习, 理解补丁的作用, 暂时忽略无关的代码.
  • 如果你自己报的bug足够多, 可能会发现某些bug涉及的代码似曾相识, 这时候不妨尝试自己动手修改代码, 也许是从协助诊断开始, 也许是从dirty hack开始, 慢慢地就可能从报bug进阶到修bug.

值得强调的是, 如果你的目标是从报bug入门进阶为开发, 那么从一开始就应该订阅开源项目的patch列表和devel列表, 一开始读不懂不要紧, 长期耳濡目染, 量变可能会引起质变, 这也是一种"扫地".

如果你像我当初一样对自己的开发能力没有足够自信, 这种看似曲折的道路可以大大降低入门开发的门槛, 不知不觉增长信心. 如果你还是没信心, 想一想5000美金吧 XD

除了这些能直接学到的东西, 报bug还能带来很多间接的好处.

  • 报bug的过程可以跟开发者熟悉甚至成为朋友, 将来他们能够对你有很多帮助, 有开发方面的问题可以向他们请教.
  • 报bug过程可以锻炼英文!!! 如果你跟我一样, 大学入学英语分班考试考到了最差的班, 那么赶紧去报bug. 当你报了200个bug的时候, 计算机专业英语肯定不是障碍. 我刚开始用英文给开源项目报bug的时候, 很多单词不懂, 一边写bug report一边查, 报一个bug花很多时间, 还战战兢兢生怕自己表达错, 现在虽然英文也不太好, 但至少钱是骗到手了 =) 如果你在一个开源项目里混久了, 那么很容易会认识几个老外朋友, 那时候遇到英语的问题你还可以向老外请教... (用英语请教LOL)

  • 报bug的过程会逐渐改变自己的思维方式. 报10个bug跟报200个bug, 学到的东西不一样, 思考方式也不一样, 前者可能是从用户的角度出发去思考问题, 而后者会迫使你从开源项目团队的角度出发去思考问题, 例如:

  • 怎么做才能提高bug被修复的概率?
  • 怎么节省开发者的时间和自己的时间?
  • 这个项目什么地方最需要改进?
  • 怎么降低新手报bug的门槛?
  • 等等 当你想这些问题的时候, 其实已经逐渐融入项目团队了. 当你融入项目团队了, 可能就会像我一样没事总想骗几个人来帮忙... 所以就有了这篇文章 =)

报bug能学到很多东西, 可惜很多东西记录不下来, 记下来的也可能会失真. 这也正常, 如果读一读别人的分享就能学到这些东西, 那又何必亲力亲为去扫地? 如果真的报了200个bug, 一定会充分掌握扫地僧骗钱大法, 申请GSoC成功的概率一定会很大. GSoC的学生需要在申请时说明自己想要为项目做什么贡献, 尽管GSoC的合作项目会提供一些可选的任务, 但更鼓励学生提出自己的idea. 如果你对项目很了解, 就容易提出自己的idea, 不会跟其他学生撞车. 如果你对项目很了解, 就会对不同任务的难度心里有数, 申请成功后也容易实现目标. 其实大多数被拒绝的学生, 不是idea太难不现实, 就是idea太容易骗钱意图太明显. 骗钱可以, 但不要太明显 ;-)

其实, <<做一名开源社区的扫地僧(上)>>, 到这里就可以结束了. 也许有人会困惑, 这才刚讲完扫地, 还没开始讲骗钱, 怎么就结束了? 有这样的困惑, 正是纸上谈兵的后果. 如果真的按照扫地僧打怪升级的道路去做, 会发现对自己帮助最大的人, 其实是开源项目中的前辈, 而这篇文章最大的作用无非是引诱多几个人去尝试, 真正的价值不大, 属于读过就可以忘掉的类型.

开源项目的前辈, 有的就是GSoC的潜在导师. 骗钱事宜, 都是导师说了算, 所以最重要的还是赶紧找个项目去跟潜在的导师混熟 ;-)

正经地说, 这篇文章希望探讨的问题不仅仅是骗钱, 而是这么一个老大难的问题: 应届毕业生找工作难! 没有工作经验, 所以找不到工作; 找不到工作, 所以没有工作经验.

其实对于未来码农来说, 解决这个问题的办法很简单, 只要愿意在开源项目中找一份扫地的活干, 花个大半年的时间报一两百个bug, 就能积累一定的经验, 这个时候去找测试岗位的实习 [广告1], 肯定很受欢迎, 而有了开源项目经历和靠谱的实习, 肯定不怕找不到工作. 在开源项目中扫地扫久了, 还能逐渐进阶入门开发, 如果成功参加过GSoC, 就更不愁找不到工作了.

当然, 参与开源项目实践, 也不能包治百病. 比如, 参与开源项目不能代替学习计算机基础和算法基础, 不能代替阅读好书. 不过, 多实践对于明白需要学什么会很有帮助, 实践遇到瓶颈的时候也会更容易发现自己读书不够. 再比如, 参与开源项目也不能代替企业的实习经历, 实际上两者都能学到很多东西, 但两者互不可替代. 不过, 如果有开源项目的实践经历, 对于寻找更好的实习机会肯定大有帮助.

希望这篇文章对在读本科新生或者研究生新生有帮助, 尤其是对开源感兴趣却不知如何入手的同学, 或者对开发感兴趣却经验不足的同学. 开发能力很强的同学请不要被这篇文章误导, 你应该向 google-opensource.blogspot.com 中记录的优秀案例看齐, 争取成为下一个优秀案例, 扫地的路径不一定适合你, 我这种骗钱的技俩也不应该是你追求的层次 ;-)

GSoC每年报名申请的时间是4月份, 现在开始扫地距离GSoC2013还有半年的时间, 其实很充裕. 对于接近毕业面临就业压力的学生, 现在开始扫地合不合适我就不知道了 :P

我有一个小小的愿望, 希望以后国内的大学生争先恐后给开源项目报bug, 通过报bug入门参与开源项目, 紧接着成功申请GSoC, 并且在骗完钱之后仍然继续给开源项目做贡献 ;-) 希望将来本科生参与开源项目就像现在的本科生参加数学建模竞赛, ACM竞赛, XXX软件开发比赛一样多. 想一想哪个比赛有5000美金, 就知道谁吸引力大了 XD

我还有一个大一点的愿望, 希望将来我们可以在国内举办比GSoC更大规模的夏令营, 鼓励和支持更多的学生为开源项目做贡献. 每年1000多名参加GSoC的学生中, 印度学生和美国学生是最多的, 都有200人上下, 而中国学生只有50人左右. 如果有更多中国学生愿意走"扫地僧路线", 我相信人数翻一翻两翻完全不是问题. 但是如果大家真的争先恐后都去申请GSoC了, 肯定也没办法全部申请成功, 毕竟机会有限. 我希望我们能够举办一个"本土化类GSoC", 提供更多的机会, 当然这需要钱. 其实现在很多学校都喜欢举办ACM/数模等的院赛和校内赛, 是否以后也可以多举办一些院级或校级的"报bug扫地夏令营"呢?

有人会问, 如果扫地捉bug的人多了, 僧多bug少怎么办? 我只能说, 我非常期待没bug可报的那一天 ;-) 其实很多开源项目每年"制造"的bug远不只200个, 比如Wine项目, 从2011年到2012年就增长了3500个bug. 粗略估计, 凡是ohloh.net上活跃贡献人数排名前1000的项目, 每年都能制造成百上千个bug:https://www.ohloh.net/p?page=100&sort=active_committers 如果你不信, 你给我钱我找给你看 XD 活跃的开源项目其实是一直在发展中的, 简直可以说是批量生bug, 所以bug是永远捉不完的...

从捉bug入门进阶开发, 不是新鲜事, 我只是跟随前人的脚步走, 应该感谢扫地的前人. 刘未鹏写过一篇文章, 叫做 <<怎样花两年时间面试一个人>>, 我的扫地僧计划有很大程度上受到了这篇文章的启发, 所以我还应该谢谢刘未鹏 ^_^ <<做一名开源社区的扫地僧>>, 其实就是从学生的角度出发, 对 <<怎样花两年时间面试一个人>> 的理论进行实践. 有(上)自然有(下), <<扫地僧(下)>>也大致预谋好了, 但现在仍不能剧透, 否则一旦失败就变成搞笑剧了 冏 其实, 最完美的结果是, 这篇文章的学生读者, 将来写出成百上千各种版本的 <<扫地僧(下)>>.

虽然文章的标题叫做扫地僧, 可是文章的内容其实是"山寨扫地僧", 为了呼应金庸原著中的绝世扫地僧, 在结尾向大家介绍Wine社区的扫地高僧 Anastasius Focht, 十一年来他分析了成百上千个bug, 他的bug report就是Wine的调试教材...http://goo.gl/TxIvZ

最后, 感谢我的GSoC导师Aric Stewart, 在Wine的开发中给我很多帮助. Aric Stewart是日本人, 我们都希望中日和平友好. 我相信开源不分种族性别信仰和国界. 感谢 Dan Kegal, Bruno Jesus, Austin English, André Hentschel 等帮助和鼓励过我的开发者, 尽管他们看不懂中文 :-\ 感谢Google Open Source Team, 8年来为培养开源社区新人做了很多贡献, 特别要感谢 Carol Smith, GSoC的成功举办离不开她.

亲爱的读者, 如果你读到这里才想起自己已经不是学生, 猛然意识到GSoC骗钱已经与你无关, 那我只能说非常抱歉, 骗你读了这么久... 如果你想报复社会, 就转载这篇文章吧...

小调查: CrossOver (Wine的商业版) 将专门为中文用户提供中文技术支持以及特别优惠. 如果你有时间, 请花3分钟做一份关于 Wine / CrossOver 的调查, 一共只有6个问题, 非常感谢!http://goo.gl/aEfE4

Qian Hong fracting AT gmail DOT com 2012-10-12

[注1] 要了解技术性的内容, 可以看一下我的 "分享Wine调试经验" 系列, 比如:https://groups.google.com/forum/?fromgroups=#!topic/gzlug/dGet0BGOikQ [广告1] 代Kexin姐发个广告: 红帽北京长期招内核测试实习生, 欢迎在校学生投简历, google一下就可以找到相关信息. 如果感兴趣但担心自己达不到要求, 我建议从扫地开始 ;-) 如果扫地扫够了准备出山, 也可以发信问我要Kexin的联系方式.

全文转载自邮件列表

想通过手机客户端访问开源中国:请点这里


酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部