My 365 days on GitHub

(Click on the public account above to quickly follow)


English: robinson_k, compilation: Laba porridge


GitHub is 10 years old, and the official also made a special page for thanksgiving . A few days ago, "Linux enthusiasts" also pushed this news .


One commented, "Why should we participate in the celebration of the 10th anniversary?". As a programmer, if you have never been on GitHub, it really has nothing to do with him.


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


This old article recommended today is Robert Kowalski who has been sprinting on GitHub for 365 consecutive days, and is also contributing to open source every day. So he wrote an article documenting why he contributed and how it changed him. Thanks for the laba porridge translation.




I recently sprinted 365 days straight on GitHub, and I wanted to write a blog about why I started committing every day, and how it changed my life.


640?wxfrom=5&wx_lazy=1


My requirements for contributing code are relatively simple:


  • Every contribution must be meaningful and must have real impact. I can commit whitespace-only fixes, but they shouldn't be counted as impactful commits.

  • It has to be open source.


I started back in the summer of 2013, slightly before John Resig (note: this is the father of jQuery) who blogged about committing code every day, but my first attempt failed. It was his article that inspired me to tell me that I was not alone in the fight.


I have the same reasons as John: I love side projects, but I don't want to devote an entire weekend just to get them done. Sometimes I devote a whole night to the weekend, but it doesn't help much: the time span to do a side project is so big that I often can't remember what I'm doing and what the next idea for the project is. It always takes me a long time to get back on the project. Also, I don't want to be completely busy with side projects for two days on the weekend, because I want to spend some time with friends to relieve the tension of sitting in front of the computer all the time.


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


好的方面


改善我的业余时间管理


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


技能提高


每天忙于代码,我没有看到每天的工作真正地提高了我的技能。由于我在学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:

640?


结论


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


I'd love to see companies supporting their employees to contribute code to open source software - 99.99% of whom rely on open source software, for example, for their development tools, out-of-the-box products, or even both. Sadly, it is quite difficult for most employees to participate in open source software during work time, and not everyone is privileged enough to spend an hour a day in their spare time participating in open source software.


People like Kyle Simpson and Mathias Lafeldt have started similar projects that seem to have changed their lives, and the way they see the world, and I have a longing for the future.


— END —



Did you gain anything after reading this article? Please forward and share with more people

Pay attention to "the things about programmers" and improve your programming skills

640?wx_fmt=png

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325964018&siteId=291194637