关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 程序人生 »一年内每天向开源贡献代码所发生的事情

    一年内每天向开源贡献代码所发生的事情

    2015-03-06 00:00:00 出处:王垠的博客
    分享

    最近我在GitHub连续冲刺了365天,我想写篇博客,记录下为什么开始每天提交,以及它对我的生活带来了什么变化。

    我对贡献代码的要求比较简单:

    每次贡献必须有意义,必须有实际影响。我可以提交只有空格的修复,但是它们不应该被算作有影响的提交。 它必须是开源的。

    早在2013年夏天我就开始了,略早于John Resig,他写了关于每天提交代码的博客,但是我的第一次尝试失败了。正是他的文章鼓舞了我,告诉我不是一个人在战斗。

    我和John有着同样的理由:我热爱业余项目(side project),但是我不乐意为了完成它们而投入整个周末。有时候,我在周末投入一整夜,但是这帮助不大:去做业余项目的时间跨度太大了,我经常想不起来在做什么以及项目的下一个想法是什么。我总要用很长时间才能重新回到项目上。另外,我不想在周末的两天里完全忙于业余项目,因为我想花些时间和朋友在一起,以缓解一直坐在电脑前面的紧张状况。

    我开始每天贡献代码的其它原因是,我认为这很可能将提高我的技能。

    好的方面

    改善我的业余时间管理

    我的业余时间整个计划发生了变化。往好了讲,我开始计划和管理我的业余时间了。在此之前,我没有真正考虑过工作之外的时间。在完成白天工作之后,我突然(震惊,震惊!)有了一些业余时间却不知道做什么。

    技能提高

    每天忙于代码,我没有看到每天的工作真正地提高了我的技能。由于我在学Erlang,用Scheme编写了我的第一个程序,我在简历里增加了新语言。我仍然在写Erlang。

    我还学到了,较大型开源项目是如何运作和组织的,以及开源对于公司意味着什么(我甚至可以说,对于每家公司意味着什么,但这需要另一篇博文了)。我不是说,开发不包含任何开源组件的产品就不赚钱,据我看来,每个项目都拥有大量的开源组件,盈利并在长期从更好的代码上获益,这是有可能的事情。

    另外,我在数不胜数的知识点上提高了我的知识和技能,列举一些:解析和词法分析、分布式计算、架构、安全、项目(代码规范)之间快速切换、理解代码以及代码review。我也提高了软技能:沟通、团队精神、解决冲突、指导和处理高难度/突发情况下的问题。

    一份新的工作

    刚开始时,我有很多自己的小型业余项目,十分有趣,但是到了某个阶段,我感到不开心了,没人fork,貌似没人使用。我是唯一的开发者,我没有伙伴可以讨论解决方案或得到review的途径,而这是提高代码和技能的最佳途径。

    我决定向较大型的项目提交代码,既然我从0.4版本就在使用node,是一名日常npm用户,我就向npm提交了一个补丁。Isaac Schlueter审查了我的一个PR,真不错,这让我为npm提交了更多的代码。

    npm registry使用CouchDB做数据库,但是我不知道如何使用。我开始把CouchDB文档翻译成德语,这样我就学会了如何使用CouchDB和如何帮助项目。有一天,我想托管我自己的私有registry,当时我的硬盘里有CouchDB源代码,我不确定为什么registry没有引导。当通读代码时,我看到CouchDB有一个JavaScript MVC app,它不是官方发布的。这一天我开始向CouchDB贡献代码,而npm的PR有一堆,我不想再提交了:我不想让花时间查看的审核人感到太难。我向CouchDB贡献了更多的代码,因为他们真是不错的人们。

    有时候,npm有一些与Node.js直接相关的bug和问题,因此我也向Node.js项目提交代码。

    加入所有这些项目,得到review,与其他很多不同的贡献者协作,阅读其他人写的大量代码,审核补丁,和用户交流,解决他们的问题,实实在在地加强了我的技能。

    在2014年,我足够幸运,得到了一份工作,我因为致力于开源项目CouchDB而获得了回报。

    交新朋友

    经过在开源技术社区的工作,我结识了大量新朋友。我遇到很多忙于同样工作的协作者,还有人在使用我参与的项目。他们大多比我聪明,至少对于我参与的项目来说,我可以说,他们都是非常优秀、思维开放的人。

    他们就是我在发送了最初PR之后、还提交了更多补丁的理由。我认为,任何人没有兴趣把业余时间(甚至工作时间)投入到一个充满敌意的、糟糕的环境里。

    坏的方面

    每天贡献代码并真正坚持下来,不会一直都顺利。我想,大部分让人郁闷的事情都是那些对开源产品有着古怪期望的人们,他们免费用着人们在业余时间维护的产品。

    npm里的这个issue是个例子,我过去和Domenic一起在业余时间做了大量工作,Domenic也花了大量时间去维护npm:

    结论

    每天向开源软件贡献代码的决定,改变了我生活的很多方面。我现在有偿参与着开源,在很多项目中交了很多朋友,这提高了我的技能。

    我乐于看到公司支持他们的员工向开源软件贡献代码—他们99.99%都依靠开源软件,比如,他们的开发工具,直接应用的产品,甚至两者兼而有之。令人悲哀的是,对于大部分员工来说,在工作时间参与开源软件是相当难的,不是每个人都有足够的特权能够每天花费业余时间里的1小时参与到开源软件里。

    像Kyle Simpson和Mathias Lafeldt这些人开始了类似的项目,貌似也改变了他们的生活,还有他们看待世界的方式,我对未来充满着渴望。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    哈弗H6经典版重庆车展吸睛,8.19万起售,性价比王者来袭!

    vivo海外新机Y400 Pro与X200 FE曝光,定位中高端市场,上市在即

    苹果iOS26将推液态玻璃设计,或为20周年iPhone特别版预热

    红魔电竞平板3Pro来袭,9英寸小屏能否成为游戏新宠?

    荣耀布局机器人,能否在AI终端生态之战中抢占先机?

    美的空调免费清洗服务受热捧,用户:专业又省心,点赞!

    英特尔酷睿9 270H性能首秀:单线程跑分领先i5-14500HX 14%

    HOTWAV R9 Plus三防平板来袭,20080mAh大电池续航无忧!

    小米耳机管理大变革!蓝牙设置页一统江湖

    TCL QM5K系列QD-Mini LED电视发布:HVA面板,分区数高达314

    IT头条

    华为Pura80系列新机预热,余承东力赞其复杂光线下的视频拍摄实力

    01:28

    阿里千问3开源首战告捷:全球下载破千万,国产AI模型崛起新高度!

    01:22

    DeepSeek R1小版本试升级:网友实测编程能力已达到国际一线水平

    23:15

    NVIDIA 与 Dell 合作,大规模交付 Blackwell AI 系统

    20:52

    Cerebras 以最快的 Llama 4 Maverick 性能引领 LLM 推理竞赛

    20:51

    技术分享

    PHP中的随机性——你觉得自己幸运吗?

    搞定Ubuntu Linux下WPA无线上网

    Java使用内存映射实现大文件的上传

    MySQL安全性指南

    MySQL两项性能的基本测试浅谈

    教您使用UniqueIdentifier选取SQL Server主键

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。