波士顿动力开源代码
by Hemakshi Sachdev
通过Hemakshi Sachdev
失去动力两年后,我如何开始开源之旅 (How I started my open source journey after being demotivated for two years)
Contributing to open source is very difficult. The people who do are experts with years of experience and we are just beginners — it’s not meant for us.
贡献开源非常困难。 这样做的人都是具有多年经验的专家,而我们只是初学者-这并不适合我们。
Those were the exact words of my friends when I first asked them about what open source and Google Summer of Code were and how we could contribute to them. The inferiority complex inside me (or I should say the superiority I gave to them for being a little more into coding than I was) made me believe their words for two long years. So I had totally abandoned the thought of ever contributing to open source.
当我第一次问他们关于什么是开源和Google Summer of Code以及我们如何为他们做贡献时,这些都是我朋友的确切话。 我内心的自卑感(或者我应该说,我在编码方面的优势要比我给他们带来的优势)使我相信他们的话已经两年了。 因此,我完全放弃了为开源做出贡献的想法。
But today, here I am with 12 PRs submitted successfully and 3 under review to organisations like Mozilla, freeCodeCamp and Gatsbyjs. And guess what? I’m still in college and have almost zero experience working in any organisation or company!
但是今天,我已经成功提交了12个PR,并向Mozilla,freeCodeCamp和Gatsbyjs等组织提交了3个PR。 你猜怎么着? 我仍在上大学,在任何组织或公司工作的经验几乎为零!
So, if you are someone who thinks open source is not meant for you just like I used to, then just STOP!
因此,如果您认为开放源代码不像我以前那样对您有意义,那就停止吧!
How did it all start?
这一切是如何开始的?
关于我的一点背景? (A Little Background About Me ??)
My coding journey started three years back when I learnt how to code in the C Programming Language. Since then, I have learnt C++, Algorithms & Data Structures, and solved hundreds of algorithmic and logical problems on multiple sites like CodeChef, SPOJ, HackerRank & Codeforces.
我的编码之旅始于三年前,当时我学习了如何使用C编程语言进行编码。 从那时起,我学习了C ++,算法和数据结构,并在CodeChef,SPOJ,HackerRank和Codeforces等多个站点上解决了数百种算法和逻辑问题。
Later, I moved on to learn web development from freeCodeCamp. I liked its curriculum and most importantly their projects. But the best thing was their free and open community who were always ready to help you out. A lot of people helped me clear my doubts on the forum or the Gitter chatroom and the responses were always encouraging.
后来,我继续从freeCodeCamp学习Web开发。 我喜欢它的课程,最重要的是他们的项目。 但是最好的事情是他们自由开放的社区,他们随时准备为您提供帮助。 很多人帮助我消除了对论坛或Gitter聊天室的疑虑,并且答复总是令人鼓舞。
I literally felt that I owed the community and always kept looking for people to whom I could provide some help. To be honest, it always felt great whenever I helped someone with their questions and problems on the freeCodeCamp chat room. After a year, the thought of contributing to open source again came in my mind. I discussed my wish to contribute with those same friends, but all I got were those same words as before. I let that thought go away for the second time.
我从字面上感觉到我欠社区,并一直在寻找可以向我提供帮助的人。 老实说,每当我在freeCodeCamp聊天室中帮助某人的问题时,总是感觉很棒。 一年后,我再次想到了为开源做贡献的想法。 我曾与那些相同的朋友讨论过我希望做出贡献的愿望,但是我得到的只是与以前相同的话。 我第二次让那个想法消失了。
自信心和勇气的那一点火花? (That Little Spark Of Self-Belief & Courage?)
After successfully completing my internship and securing a job, I was totally free in my senior year of my undergrad. The thought of Google Summer of Code again stumbled into my mind. As it was probably my last chance of getting into GSoC, and I didn’t want to have any regrets after leaving college and before getting into the real world, I finally said this to myself:
在成功完成实习并找到工作之后,我在大四的时候就完全自由了。 Google Summer of Code的想法再次跌入我的脑海。 因为这可能是我进入GSoC的最后机会,并且我不想在离开大学后进入现实世界后悔,所以我终于对自己说:
Let’s just give it a shot. Worst comes to worst I might fail but at least I will know that I tried! I do not want to let go of an opportunity just because one person said to me that I can’t do it!
让我们试一试。 最糟糕的是我可能会失败,但至少我会知道我尝试过! 我不想仅仅因为一个人对我说我做不到而放弃机会!
I googled everything about open source, what organisations to start with, how to find something to contribute to, every single thing!
我搜索了关于开源的所有信息,从什么组织开始,如何找到有助于发展的东西,每件事!
Finally, I decided to go with Mozilla as it was the most beginner-friendly organisation. As Mozilla is a very large organisation, it has quite a lot of products under it, and again that big question came up: which product should I go with?
最后,我决定选择Mozilla,因为它是最适合初学者的组织。 由于Mozilla是一个非常庞大的组织,因此它拥有很多产品,并且又提出了一个大问题:我应该使用哪种产品?
With the help of their introduction page and learning about my own interests, I went with Firefox DevTools. Why DevTools? Because for me, there’s nothing better than helping other people learn, improve and grow. And the fact that something developed or implemented by me would help others learn was the best feeling I could ever think of.
在他们的简介页的帮助下,并了解了我自己的兴趣,我选择了Firefox DevTools。 为什么选择DevTools? 因为对我而言,没有什么比帮助其他人学习,改善和成长更好的了。 我开发或实施的某种东西可以帮助其他人学习的事实是我所能想到的最好的感觉。
真正的斗争开始了吗? (The Real Struggle Begins ?)
I’ll be honest here, before starting out everything looked intimidating. But once it’s all done you start finding that everything is a piece of cake. The first and most important step is getting and building code. Almost all organisations have a very detailed step-by-step guide for this. I struggled a lot in getting the code. Firefox’s codebase is H U G E! And thanks to the slow internet connection which made it worse. After three days of struggle, I was finally able to get the code and was able to build Firefox locally by carefully following the steps as mentioned in the docs.
老实说,在开始一切之前,我会很吓人。 但是一旦完成,您就会开始发现一切都是小菜一碟。 第一步也是最重要的一步是获取和构建代码。 几乎所有组织都为此提供了非常详细的分步指南。 我在获取代码方面付出了很多努力。 Firefox的代码库很大! 还要感谢缓慢的互联网连接,这使情况变得更糟。 经过三天的努力,我终于能够获得代码,并能够通过认真遵循文档中提到的步骤在本地构建Firefox。
Now that I had got it all working, the next step was to actually get something to work on! I went through all the good-first-bugs
and commented on the ones I found interesting by introducing myself and showing interest in solving the issue. I got myself assigned to one of them.
现在我已经完成所有工作,下一步是实际进行一些工作! 我介绍了自己并表现出对解决问题的兴趣,对所有的“ good-first-bugs
为good-first-bugs
进行了评论,并对自己发现的有趣good-first-bugs
进行了评论。 我让自己分配给其中之一。
Every mentor knows that we are new to open source. Finding that one place where we have to make changes is like finding a needle in a haystack. So they guide us to the code files and sometimes even the line numbers where we have to analyse the issue and make the requested changes. And even if they don’t, you have every right to ask them and they will help you happily.
每个导师都知道我们是开源的新手。 找到一个我们必须进行更改的地方就像在大海捞针中找到一根针。 因此,它们将我们引导至代码文件,有时甚至是行号,我们必须在该文件中分析问题并进行请求的更改。 即使他们没有,您也有权要求他们,他们会很乐意为您提供帮助。
For the next 10 days, all I did was study the code, debug, build, run and analyse…but, I couldn't get to any solution or conclusions! ? Finally, I decided to go with all my analysis and results and ask my mentor for help. Sometimes you have to ask for help because without doing so you cannot move forward! The whole code is new to you and no one is expected to understand it in a couple of days.
在接下来的10天里,我所做的只是研究代码,调试,构建,运行和分析……但是,我无法获得任何解决方案或结论! ? 最后,我决定接受所有分析和结果,并向我的导师寻求帮助。 有时您必须寻求帮助,因为如果不这样做,您将无法前进! 整个代码对您来说是新的,几天之内没人会理解它。
My mentor realized that it was not a good-first-bugs
kind of issue and solved it himself. To be honest, that was a little depressing. But my mentor gave me another issue to solve which was comparatively quite easy and I finally did it after a day or two of analysis! Yes, I was finally able to submit my first patch (PR)! But getting it landed was really not that easy, so many minor mistakes and ESLint errors that were literally frustrating. Finally, after 3 to 4 rounds of reviews, my patch landed! Yay! ?
我的导师意识到这不是一个good-first-bugs
问题,因此自己解决了。 老实说,这有点令人沮丧。 但是我的导师给我解决了另一个相对容易的问题,经过一两天的分析,我终于做到了! 是的,我终于能够提交我的第一个补丁(PR)! 但是,让它真正着陆并不是那么容易,这么多的小错误和ESLint错误确实令人沮丧。 最终,经过3到4轮审核,我的补丁降落了! 好极了! ?
After submitting my first patch, I quickly started looking for more issues to solve. I kept solving a few more good-first-bugs
but soon I realized that I want to solve issues that involved more than just making minor changes and were something more complex. I was also still not sure of my interests and so wanted to explore a few more organisations. So I solved a few issues on Mozilla’s Taskclusters, freeCodeCamp and Gatsbyjs as well. But very soon I realised that Firefox DevTools was the one I enjoyed working with the most ? and continued contributing to it.
提交第一个补丁后,我Swift开始寻找更多要解决的问题。 我一直在解决一些其他good-first-bugs
但是很快我意识到我想解决的问题不仅仅是进行微小的更改,而是更加复杂。 我仍然不确定自己的兴趣,因此想探索更多的组织。 因此,我也解决了Mozilla的Taskclusters,freeCodeCamp和Gatsbyjs的一些问题。 但是很快我意识到Firefox DevTools是我最喜欢的一个工具吗? 并继续为此做出贡献。
This is how the process of contributing to open source looks like:
这就是对开源做出贡献的过程的样子:
- Get an issue to work on. 解决问题。
- Study the codebase and understand what needs to be done. 学习代码库并了解需要做什么。
- Code. Ask questions. Commit. 码。 问问题。 承诺。
- Submit a patch. 提交补丁。
- Resolve review comments and make the patch land. 解决审阅意见并使修补程序着陆。
- Go back to step 1. 返回步骤1。
最后说明 (Final Notes)
To all the people who are reading this, I hope I was able to motivate you and make you realize that you are fit to contribute to open source — because the truth is you are! In fact, it’s not even necessary to know a particular programming language, as you can always help with the documentation or you can report detailed bugs and can always learn things along the way.
对于所有阅读本文的人,我希望我能够激励您,并使您意识到您适合为开源做贡献-因为事实就是您! 实际上,甚至不需要了解特定的编程语言,因为您可以随时提供文档帮助,也可以报告详细的错误并始终学习相关知识。
Yes, I know that we might not be making any big contributions to the codebase or not starting any big open source projects, but these little contributions are also as equally important as the larger ones. And it’s rightly said that little drops of water make a mighty ocean. You never know when your one little contribution may turn out to be so helpful for others and one day you might also end up with this:
是的,我知道我们可能不会对代码库做出任何重大贡献,也可能不会启动任何大型开源项目,但是这些微小贡献也与较大的贡献同样重要。 正确的说就是一小滴水构成了浩瀚的海洋 。 您永远不知道什么时候您的一点贡献对他人就会很有帮助,有一天您可能还会遇到这样的情况:
Yes! I got recognized by Firefox DevTools for one of my contributions.✨ Here’s the tweet.
是! 我为我的贡献之一而被Firefox DevTools认可。✨这是tweet 。
So to all the open source beginners or the ones wanting to start with open source, I just wanna say this: forget what others think and believe and only remember what you want to do. You are capable, and that’s all that matters in the end. Just take that first step fearlessly and the world will guide you further — or I should say the mentors will guide you further. ?
因此,对于所有开放源码初学者或希望从开放源码开始的初学者,我只想说一句话:忘记其他人的想法和信念,只记住您想做的事情。 您有能力,这就是最终的一切。 只要毫不畏惧地迈出第一步,世界将引导您进一步发展-或者我应该说导师将指导您进一步发展。 ?
Lastly, I would love to thank all my mentors and open source maintainers who helped in my journey and will do so in the future. A special thanks to Jan Honza Odvarko and Nicolas Chevobbe for helping me, answering and clarifying all my doubts and questions, and showing so much patience while mentoring me. Thank you so much! ❤️
最后,我要感谢所有我的导师和开源维护者,他们在我的旅途中提供了帮助,并将在以后提供帮助。 特别感谢Jan Honza Odvarko和Nicolas Chevobbe帮助我,回答和澄清了我所有的疑问和问题,并在指导我时表现出了极大的耐心。 非常感谢! ❤️
Anyone who needs help with starting out with either open source or programming, don’t hesitate and drop me a mail at sachdev.hemakshi[at]gmail[dot]com. I love getting emails ?.
任何需要帮助的人,无论是从开源还是编程开始,都不要犹豫,给我发送邮件到sachdev.hemakshi [at] gmail [dot] com。 我喜欢收到电子邮件吗?
Thank you to the freeCodeCamp team for publishing this article. ?
感谢freeCodeCamp团队发布本文。 ?
波士顿动力开源代码