java开放源码

by Chak Shun Yu

泽顺宇

开放源码的第一周:我是如何参与的,以及我学到的东西 (My first week of open source: how I got involved, and what I’ve learned)

When I started to write this post, I had finished my first serious week of contributing to open source. I mainly contributed to the project Storybook. This post will describe the contributions and interactions that took place this week. It will also focus on the path that led up to this week.

当我开始写这篇文章时,我已经完成了为开源做出贡献的第一周。 我主要为“ 故事书 ”项目做出了贡献。 这篇文章将描述本周所做的贡献和互动。 它还将重点关注通向本周的道路。

I want to talk about the change in mindset and motivation that (finally) got me started. I will show you what I did to get to my first contribution, and I will share what I learned from this week and my experience of everything as a whole.

我想谈谈最终使我起步的思维定势和动力的变化。 我将向您展示我为获得第一笔捐款所做的努力,并将分享我从本周中学到的知识以及我对整个事情的经验。

While I’m aware that one week has not made me an open source expert, the stories I describe will be from my own subjective perspective. Developers trying to get into open source, like me before this week, might find some value in reading the story of someone in very similar shoes.

虽然我知道有一个星期没有让我成为一名开源专家,但我所描述的故事是从我自己的主观角度出发的。 试图在本周之前像我一样进入开源的开发人员,可能会在阅读某位穿着相似鞋的人的故事中发现一些价值。

In this post, I won’t go over the basics about getting into open source. I will not cover how to choose a project to contribute to. Nor will I cover why, how, and what you should contribute to the project. Open Source Guides covers all these topics very well. You should definitely check it out if you’re looking for advice regarding those topics.

在这篇文章中,我不会介绍有关开源的基础知识。 我不会介绍如何选择一个项目来做出贡献。 我也不会介绍为什么,如何以及您应该为该项目做出什么贡献。 开源指南很好地涵盖了所有这些主题。 如果您正在寻找有关这些主题的建议,则一定要检查一下。

动机与心态 (Motivation and Mindset)

While this week has been pretty awesome and enjoyable, the journey up until this point has most definitely not been a walk on a flowery path.

尽管本周非常棒且令人愉快,但到现在为止的旅程绝对不是走在繁花似锦的路上。

Let me provide you with some context about me. I’m currently a second year MSc student in Computer Science at the Delft University of Technology. I would describe myself as a (below) average developer compared to my peers. I didn’t really start programming before I got into my Bachelors. I never found the motivation to do so outside of courses.

让我为您提供一些有关我的背景信息。 我目前是代尔夫特理工大学计算机科学专业的二年级理科学生。 与同行相比,我将自己描述为(低于)平均水平的开发人员。 在进入学士学位之前,我并没有真正开始编程。 我从来没有在课程之外找到这样做的动力。

It has been over a year now since I first heard about the mysterious phenomenon of open-source programming from a colleague. This colleague also described all the benefits, both for personal development and for my career.

自从我第一次听说一位同事关于开源编程的神秘现象以来,已经过去了一年多的时间。 这位同事还描述了个人发展和我的职业生涯带来的所有好处。

My inner developer kicked in and was like “Oh that’s super awesome, I should do that so I can learn a lot and increase my chances for a job in the future!”, but then my inner student kicked in and was like “Why should I burden myself with more obligations than I already have (from university) though?”.

我内心的开发人员加入进来,就像“哦,太棒了,我应该这样做,这样我才能学到很多东西,并增加以后的工作机会!” ,但是后来我的内心学生踢了进去,就像是“为什么我要负担自己的负担 比我(大学) 承担的 更多 ?”

Fast forward a year. While I’m already improving my development skills in alternative ways, I still hadn’t touched open source in any voluntary or serious way. I expect to graduate during the Autumn of this year. Then I will get into the job market which is nothing out of the ordinary.

快进一年了。 尽管我已经以其他方式提高了我的开发技能,但我仍然没有以任何自愿或认真的方式接触开源。 我希望在今年秋天毕业。 然后,我将进入劳动力市场,这与众不同。

In these past months, however, I’ve started to take my future quite seriously. I am already exploring opportunities through career fairs, in-house days, and staying in touch with companies.

但是,在过去的几个月中,我开始认真对待自己的未来。 我已经在通过招聘会,公司内部日并与公司保持联系来探索机会。

While this is great and all, there’s still one thing that I lack: experience. Especially in a established environment (like a company). While a part-time job on the side is an option, the main thing on my mind right now is to focus on my MSc thesis and graduate. Everything else is just kinda of on the side. So, in the end, I don’t really consider a part-time job to be an option for me.

尽管这一切都很棒,但我仍然缺少一件事: 经验。 尤其是在成熟的环境中(例如公司)。 虽然可以选择打零工,但我现在想到的主要事情是专注于我的硕士学位和研究生。 其他一切都只是在一边。 因此,最后,我并没有真正考虑将兼职工作作为我的选择。

During these months, I’ve looked for alternative opportunities to gain experience. I have looked into hobby projects and a small programming side job at the university. Those still aren’t quite what I’m looking for.

在这几个月中,我一直在寻找其他机会来积累经验。 我在大学里研究了业余项目和编程方面的小工作。 那些仍然不是我想要的。

But one day, the thought came across my mind that I could gain the experience that I was looking for through open-source contributions. Provided that I chose the projects carefully to meet my needs. Because, in the end, open-source projects are very similar to companies. The only difference is that the employees are fighting to get work, rather than to avoid it. ?

但是有一天,我想到了一个想法,那就是我可以通过开源贡献获得我一直在寻找的经验。 只要我仔细选择项目即可满足我的需求。 因为最终,开源项目与公司非常相似。 唯一的区别是员工正在努力争取工作,而不是避免工作。 ?

After this week, I’ve noticed how my mindset and motivation has changed compared to last year. I credit this change as the reason that I could get into open source now. The lack of motivation is the reason that I failed before.

在这周之后,我注意到与去年相比,我的思想和动力发生了怎样的变化。 我将此更改归功于我现在可以进入开源的原因。 缺乏动力是我以前失败的原因。

Before, I only thought about it as a way to improve my résumé. This relates to how I initially saw it as an obligation. In the long run, that would never keep me motivated. Even worse, it would never motivate me enough to begin in the first place, which is exactly what was the case during this year.

以前,我只是将其视为提高我的简历的一种方式。 这与我最初将其视为义务的方式有关。 从长远来看,这永远不会激励我。 更糟糕的是,它永远不会激发我足够的动力以至于从头开始,这恰恰是今年的情况。

Now, on one hand I see it as an alternative way to obtain experience in a company-like environment. But more than that, I want to enhance and develop my skills, both in programming and communication.

现在,一方面,我将其视为在类似公司的环境中获得经验的另一种方法。 但是,除此之外,我还想提高和发展编程和沟通方面的技能。

And that’s the main thing that keeps me going right now. I can actually motivate myself to spend time doing open-source programming. Not because then I can apply for that particular job offer. Not because I can then put it on my résumé…but because I actually want to become a better developer myself. It’s all for myself. That is a motivation that will most definitely not suddenly fade out or not be strong enough.

那就是让我现在前进的主要因素。 实际上,我可以激励自己花时间进行开源编程。 不是因为那样我可以申请那个特定的工作机会。 不是因为我可以把它放在简历上而是因为我实际上自己成为一个更好的开发人员。 都是为了我自己。 这绝对不会突然消失或不够强大。

The best practical example of this in practice is the context of my first contribution. On a Thursday (the 19th of April) I was basically working at my uni job the entire day. It was a pretty early morning for my standards, starting at 10:00 which means waking up at 8:00 for me. And we didn’t finish until 18:30, which made it a pretty long day. After coming back home and finishing dinner, it was basically already 20:00. Any other day, I would’ve either fallen asleep on the couch or taken it chill the rest of the evening.

在实践中最好的实际例子是我的第一篇论文。 在星期四(4月19日),我基本上整天都在做大学工作。 从我的标准来看,这是一个相当清晨,从10:00开始,这意味着我在8:00醒来。 我们直到18:30才结束,这真是漫长的一天。 回家吃完饭后,基本上已经是20:00了。 无论如何,我要么会在沙发上睡着,要么会在余下的夜晚变得寒冷。

That evening, however, a certain Github issue reached my mailbox. (I will discuss later why and how it got there ?). It caught my attention because it felt like something I could solve. I basically rushed to my laptop, and left a message on the issue that I would be willing to give it a try.

但是,那天晚上, 某个Github问题到达了我的邮箱。 (我将在后面讨论为什么以及如何到达那里?)。 它引起了我的注意,因为感觉就像我可以解决。 我基本上冲到笔记本电脑上,并在此问题上留言,我愿意尝试一下。

I spent a few hours working on it, before eventually hitting my friend up to play some games as usual. Even when I think back about it now, I’m still extremely surprised that I was willing to do more programming after such a long day for my standards. Again, I credit all this to the above stated change in mindset and motivation.

我花了几个小时来研究它,然后最终像平常一样找我的朋友玩一些游戏。 即使我现在回想一下,我仍然很惊讶我愿意为这样的标准花上漫长的一天之后再做更多的编程。 同样,我将所有这些归功于上述心态和动力的改变。

我的项目选择 (My Choice of Projects)

As I said before, the Open Source Guides already covers a lot of the initial steps for getting into Open Source programming. They even include how to find a project to contribute to. Therefore, this section will be dedicated to my choices in projects, my preferences, and how it affected my choices.

如前所述,《 开放源代码指南》已经涵盖了进入开放源代码编程的许多初始步骤。 他们甚至还包括如何找到一个可以贡献的项目。 因此,本节将专门介绍我在项目中的选择,我的偏好以及它如何影响我的选择。

At the moment, my main interest and the field that I’m focusing on improving the most in is web development. Especially React — it’s the library that I’ve come to love and feel most comfortable with. So naturally, I wanted to find projects that were related to web development. For me, the project being written (partially) in JavaScript was a must, while involving or being related to React was a plus.

目前,我的主要兴趣和我最关注改进的领域是Web开发。 特别是React-这是我喜欢并且最喜欢的库。 因此,我自然希望找到与Web开发相关的项目。 对我而言,必须(部分)使用JavaScript编写该项目,而涉及React或与之相关则是一个加分。

On top of that, I wanted the project to be a slightly- to decently-established project in the community. I wanted to mimic the experience of working in a company-like environment. And being able to say that you worked on -insert widely used library or project in the community- definitely sounds cool in any conversation or interview ?.

最重要的是,我希望该项目在社区中是一个稍微成熟的项目。 我想模仿在类似公司的环境中工作的经验。 而且可以说您从事过-在社区中插入广泛使用的库或项目-在任何对话或访谈中听起来都很棒。

The full list of projects that I looked into consisted of projects found through searching “React” on Github and ones that I knew or had heard of: React, Redux, MobX, React-Router, Next.js, styled-components, Storybook, Spectrum, and more…

我研究过的项目的完整列表包括通过在Github上搜索“ React”找到的项目以及我知道或听说过的项目: React , Redux , MobX , React-Router , Next.js , 样式组件 , Storybook , 频谱等

In the end, I stuck to styled-components, Storybook, and Spectrum. Mainly because the other projects felt relatively abstract and more difficult to understand. These projects were very new-contributor friendly. Plus they are still widely used in the community.

最后,我坚持使用样式组件,Storybook和Spe​​ctrum。 主要是因为其他项目感觉相对抽象并且难以理解。 这些项目对新贡献者非常友好。 另外,它们仍在社区中广泛使用。

Over that one week, and between these 3 projects, all but one of my contributions were towards Storybook. My first contribution was towards Storybook, and I really liked the flow of it. At that time there happened to be more issues that I felt I was capable of tackling, so I continued with it!

在那一周的时间里,在这三个项目之间,除我之外,我所有的贡献之一都是对Storybook的贡献。 我对Storybook的第一个贡献是,我真的很喜欢它的流程。 那时碰巧还有更多我觉得可以解决的问题,所以我继续解决!

做出我的第一贡献 (Making My First Contribution)

So I’ve already talked about the context of my first contribution. I haven’t talked about the technical details of the Pull Request (PR), however. Or how I got to the PR in the first place, which will be the focus of this section.

因此,我已经谈到了我的第一笔捐助的背景。 但是,我还没有讨论Pull Request(PR)的技术细节。 或者首先是我如何到达PR,这将是本节的重点。

The best thing that I did to increase my knowledge and understanding of all the projects was watching all the repositories that I was interested in. This is also the biggest recommendation that I can give to people that are new, like I am, to any open-source project. This spammed my mailbox with any activity in the projects, be it the creation of an issue or PR, or any comment in it.

为了增加我对所有项目的知识和了解,我所做的最好的事情就是观看我感兴趣的所有存储库 。这也是我可以向任何像我这样的新人提供的最大建议源项目。 这使我的邮箱中充斥着项目中的任何活动,无论是创建问题或PR还是其中的任何评论。

Then, whenever I had some free time on my hands, I would go through all the emails. I would process the ones that I could understand. Someone made a PR and the title doesn’t sound like complete magic? Let me take a look at what they did and how. Oh, there’s a active discussion going on in this issue and it doesn’t sound overwhelming? Let’s follow that conversation as well!

然后,每当我有空闲时间时,我都会浏览所有电子邮件。 我会处理我能理解的内容。 有人进行了PR,标题听起来不像是完全的魔术? 让我看看他们做了什么以及如何做。 哦,在这个问题上正在进行积极的讨论,听起来不算太多吗? 让我们也跟随该对话!

The pattern here is that I tried to extract as much information and knowledge about the project by exposing myself to what others were doing. Watching the repository guaranteed that any information I was consuming would be recent.

这里的模式是,我通过让自己暴露于他人的工作来尝试提取有关该项目的尽可能多的信息和知识。 观看存储库可确保我正在使用的任何信息都是最新的。

The current problem or implementation that I was learning about was useful for the project at that point. Of course, there were scenarios where, no matter how hard I tried, I just couldn’t see myself participating meaningfully. Although this can feel very demotivating, it’s also completely normal if you think about it carefully.

当时我正在学习的当前问题或实现对于该项目很有用。 当然,在某些情况下,无论我多么努力,我都无法看到自己有意义地参与其中。 尽管这可能会令人非常沮丧,但如果仔细考虑,这也是完全正常的。

In the beginning, I was archiving a lot of emails, because I just lacked the knowledge to understand the issue. Instead, I focused on the ones I could and the ones that I wasn’t sure about whether I could. No matter what the result was, I would just try to go through them and understand.

一开始,我要归档很多电子邮件,因为我只是不了解该问题。 相反,我专注于那些我可以做到的和我不确定是否可以做到的事情。 不管结果如何,我都将尝试遍历它们并理解。

If I couldn’t, then I would know where my limitations were and still learned about the project in some way or another. If I could, then I extended my knowledge on the project as well, and I could potentially contribute to solving the issue. Of course, especially if the project was very active, it was very hard to keep up with all the emails. I just tried as much as I could afford, hoping it would help me in the long run — which it did!

如果我做不到,那么我会知道我的局限在哪里,并且仍然以某种方式了解了该项目。 如果可以的话,我也会在该项目上扩展我的知识,并且有可能为解决该问题做出贡献。 当然,尤其是如果项目非常活跃,很难跟上所有电子邮件。 我只是尽我所能尝试了一下,希望从长远来看对我有帮助-确实如此!

At some point, someone opened an issue. The issue described some problems with the Storybook CLI during the installation process. It turned out that Storybook prefers to use yarn. However, not everybody uses yarn, and npm is still significantly used in the field.

在某个时候,有人提出了一个问题。 该问题描述了在安装过程中Storybook CLI的一些问题。 事实证明,Storybook更喜欢使用纱线。 但是,并不是每个人都使用纱线,npm在该领域中仍得到大量使用。

To cover for these cases, the CLI would run the yarn — version command to check whether yarn was installed. If so, it would use it as the package manger of choice to install dependencies. The issue arose, however, when developers had both package managers installed, but mainly used npm. Storybook would then use the old version of yarn. This resulted in the issues reported by the current user.

为了解决这些情况,CLI将运行yarn-version命令以检查是否安装了yarn。 如果是这样,它将使用它作为安装依赖项的首选软件包管理器。 但是,当开发人员同时安装了两个程序包管理器但主要使用npm时,就会出现此问题。 然后,Storybook将使用旧版本的yarn。 这导致了当前用户报告的问题。

This sounded like something that I understood and felt capable of fixing! So what did I do then? I started of with politely asking whether it was okay for me to tackle this issue.

这听起来像是我理解并能够修复的东西! 那我该怎么办呢? 我首先礼貌地问我是否可以解决这个问题。

There are several reasons that I explicitly asked this, rather than just doing it.

我明确提出这个问题的原因有很多,而不仅仅是这样做。

  1. It signals than somebody is working on the issue, which is great for the maintainers.

    暗示着有人正在着手解决此问题,这对于维护人员而言非常有用。

  2. It clarifies that you are working on it and that you claimed the issue. This is especially useful in highly active projects.

    它表明正在处理它,并且已声明了该问题。 这在高度活跃的项目中特别有用。

  3. It makes sure that you’re not taking someone else’s issue. For various reasons, someone could be already working on it, and I personally hate taking away someone’s issue.这样可以确保您不会遇到别人的问题。 由于各种原因,可能已经有人在进行此工作,而我个人不喜欢解决某人的问题。
  4. It will make sure that you’re not going to waste your time and effort on something that’s outdated, unnecessary, unwanted, or already done. If any of these are true, a maintainer will most likely let you know.这将确保您不会浪费时间和精力在过时,不必要,不需要或已经完成的事情上。 如果其中任何一个是正确的,维护人员很可能会让您知道。
  5. It never hurts to be polite and communicate ?.礼貌和沟通永远不会伤害您。

After receiving a green light from a maintainer and the user that reported the issue, I went and applied a fix described in the issue. The fix itself wasn’t particularly mind blowing. Instead of checking for an installed version of yarn, it would check for the presence of a yarn.lock file instead. After some discussion on making the check slightly more elaborate and processing that feedback, they approved my changes. My PR was merged! ?

在收到维护者和报告问题的用户的绿灯后,我去了并应用了该问题中所述的修复程序。 解决方法本身并不是特别令人讨厌。 与其检查安装的纱线版本,不如检查是否存在yarn.lock文件。 在对使支票做得更加详细和处理该反馈进行了一些讨论之后,他们批准了我的更改。 我的公关被合并了! ?

Did I feel super accomplished after this? You would expect so, but I actually felt way less excited about it than expected. Don’t get me wrong, it did feel satisfying to have my changes merged. It just didn’t feel like it was a super complex problem that I solved.

此后我感到超级有成就吗? 您会期望如此,但实际上我对此感到不及预期那样激动。 不要误会我的意思,将更改合并在一起确实让人感到满意。 只是感觉不像是我解决了一个非常复杂的问题。

The real feeling of accomplishment and excitement actually came way later at unexpected moments. At multiple points in time, people would report certain problems that they had with Storybook. For me, those seemed completely unrelated to my changes. However, in at least 4 different issues, my fix was mentioned by a maintainer because it helped solve the issue at hand.

真正的成就感和兴奋感实际上是在后来的意外时刻消失的。 在多个时间点,人们会报告他们在Storybook上遇到的某些问题。 对我来说,这些似乎与我的改变完全无关。 但是,在至少4个不同的问题中,维护人员提到了我的修复程序,因为它有助于解决当前的问题。

WHAT!? I ACTUALLY HELPED PEOPLE!? ? My small fix that felt like it was nothing actually helped people with their problems. The feeling of accomplishment and excitement that I had at that moment was indescribable. It exceeded any feeling that I could’ve had from solving a super complex problem of some kind. I still hold it very dear.

什么!? 我实际上是在帮助人们!? ? 我的小修正似乎没有任何帮助,实际上可以帮助人们解决问题。 我当时的成就感和兴奋感是无法形容的。 解决某种超级复杂的问题超出了我的感觉。 我仍然认为它很亲爱。

其余时间 (The Rest of the Week)

After that moment, I felt even more motivation to keep working on issues and stuff in the project. As long as it was something that could help the users of Storybook, I was more than happy to have a go at it.

在那一刻之后,我有更大的动力去继续从事项目中的问题和工作。 只要它可以为Storybook的用户提供帮助,我就很乐意尝试它。

I paid more and more attention to the different activities in the repository. Whenever I found something I could do, I would politely ask whether it was okay for me to solve, and then make an attempt at solving it.

我越来越注意存储库中的不同活动。 每当我发现可以做的事情时,我都会礼貌地问我是否可以解决,然后尝试解决。

In my first week, I had opened 4 PR’s to Storybook, and all of them were accepted and merged! If you’re interested in the details on those PR’s, go ahead and check out the GitHub tracker.

在我的第一周,我为Storybook开了4个PR,所有人都被接受并合并了! 如果您对这些PR的详细信息感兴趣,请继续并查看GitHub tracker 。

I also want to go back briefly and further discuss the point that I made regarding watching the repositories and following all the activities in them. You might wonder whether it will pay off or be worth it for the required effort and time (which I agree is significant).

我还想简短地回过头来,进一步讨论我关于观察存储库并关注存储库中的所有活动的观点。 您可能想知道,在所需的努力和时间(我同意这很重要)方面,它是否会有所回报或值得?

For me, the answer was a decisive yes, and this is why. My second PR had to do with a section of the codebase that I didn’t know and had never yet looked at. This, of course, was true for every part of the project as I was a new contributor. While I could find my way through the CLI code, this time it involved the actual Storybook application, which for me was on another level.

对我来说,答案是决定性的,这就是原因。 我的第二个PR与我不知道并且从未看过的部分代码库有关。 当然,对于项目的每个部分来说都是如此,因为我是新的贡献者。 虽然可以通过CLI代码找到自己的方式,但是这次它涉及实际的Storybook应用程序,对我而言,它是另一个层次。

The main reason I was able to address the problem and work with the code anyway was because I went through the changes of someone else’s PR that touched upon that same part of the codebase. The style of my changes, if you compare it to the changes of that PR, were therefore very similar. But in the end, I still got the job done, and that’s all that mattered for me (and the project)!

无论如何,我能够解决问题并使用代码的主要原因是因为我经历了涉及代码库同一部分的其他人的PR的更改。 因此,如果将其与该PR的更改进行比较,我的更改样式非常相似。 但是最后,我仍然完成了工作,这对我(以及项目)都至关重要!

But if I never took the time and effort to go through as much activity from the project as I could, including the work of others, I’m pretty sure I would’ve never been able to solve the issue (so quickly). So yes, if you’re serious about wanting to contribute to the project, then it’s definitely worth your time and effort.

但是,如果我从不花时间和精力去完成项目中尽可能多的活动,包括其他人的工作,那么我很确定我永远无法(这么快)解决问题。 所以,是的,如果您真的想为该项目做贡献,那么绝对值得您花费时间和精力。

我学到的是 (What I Learned)

To be honest, I haven’t really (yet) learned as much or improved as much in my programming this week as I expected. But don’t get me wrong — I’ve definitely learned some technical things, especially regarding how a significant project looks in practice.

老实说,我在本周的编程中学到的东西还远远没有达到我的预期。 但是请不要误会我的意思-我确实学到了一些技术知识,尤其是关于一个重要项目在实践中的外观。

Rather, I’ve learned a lot about working together with others. I’ve learned about communicating my thoughts and changes to the maintainers that had to review my changes. I’ve learned how to phrase my thoughts to get my ideas across.

相反,我已经学到了很多与他人合作的知识。 我已经了解了如何将我的想法和变更传达给必须审查我的变更的维护人员。 我已经学会了如何表达自己的想法以传达我的想法。

In a way, this was the experience that I was looking for. Looking back onto this week, it has been super helpful. I’ve learned a lot, finally did something that I wanted to do for a long time, and, most important of all, I had fun!

在某种程度上,这就是我一直在寻找的经验。 回顾本周,它非常有帮助。 我学到了很多东西,终于做了很长一段时间想做的事情,最重要的是, 我玩得很开心!

向前走 (Going Forward)

Going forward after this week and beyond, I will just do as I’ve done during this first week: keep an eye out on issues and conversations, and help wherever and whenever I can.

在本周及以后继续前进,我将像在第一周中所做的那样:关注问题和对话,并在任何可能的地方提供帮助。

As time progresses, I hope be able to also contribute to more complex problems. Ideally, it would be super awesome for me to be able to contribute to something larger, like an additional feature or add-on to Storybook. Nonetheless, I enjoy what I’m doing, and will definitely stick around and continuing doing so.

随着时间的推移,我希望能够为更复杂的问题做出贡献。 理想情况下,能够为更大的功能(例如附加功能或Storybook的附加功能)做出贡献对我来说真是太棒了。 但是,我喜欢自己在做的事情,并且一定会坚持并继续这样做。

As a matter of fact, I’ve stuck around so long that at the time that I’m finishing this post (~5 weeks after I started writing this) I was invited by the owner of Storybook to join the GitHub organization! ? I’m super grateful for this opportunity. I will definitely to try my best to make myself more and more useful to the project! ?

事实上,我已经坚持了很长时间,以至于我完成这篇文章的时间(开始撰写本文后约5个星期),我是受Storybook的所有者邀请加入GitHub组织的! ? 我非常感谢这次机会。 我一定会尽力使自己对这个项目越来越有用! ?

TLDR: (TLDR:)

  • Think about what you want to accomplish with open source. If it’s not a long-term motivation, it will be hard to 1) get started and 2) keep going.考虑一下您想用开源完成的工作。 如果不是长期动机,则很难1)开始使用2)继续前进。
  • Watch all the activity from repositories that you’re interested in and try to spend time going through them. It will considerably increase your knowledge on the project and help you contribute.观看您感兴趣的存储库中的所有活动,并尝试花费时间浏览它们。 这将大大增加您对项目的了解并帮助您做出贡献。
  • Stay polite and have fun! ??保持礼貌,玩得开心! ??

Thank you for reading. If you enjoyed my story, consider clapping for it a bit, sharing it with other people, or following me either here or on Twitter (or both ?). I will try my best to deliver similar content in the future!

感谢您的阅读。 如果您喜欢我的故事,可以考虑拍一下,与他人分享,或者在这里或在Twitter上关注我(或同时在两者上?)。 我将尽力在将来提供类似的内容!

If you have any feedback, either writing or content-wise, feel free to contact me in any of the described ways. I’m open to any feedback that will improve the quality and usefulness of my potential future content!

如果您有任何反馈,无论是书面反馈还是内容反馈,请随时以上述任何一种方式与我联系。 我乐意接受任何可以提高我未来潜在内容的质量和实用性的反馈!

Special thanks to Maurício Aniche and Martijn Steenbergen for helping me out with this post through proofreading and feedback! Also to Norbert de Langen (Storybook’s maintainer), for inviting me to the GitHub org and trying his best to involve me in the project!

特别感谢MaurícioAniche和Martijn Steenbergen通过校对和反馈为我提供帮助! 还要感谢Norbert de Langen (Storybook的维护者),他邀请我加入GitHub组织,并尽我最大的努力使我参与该项目!

翻译自: https://www.freecodecamp.org/news/the-path-of-my-first-week-of-open-source-contributions-87823aaeb872/

java开放源码

java开放源码_开放源码的第一周:我是如何参与的,以及我学到的东西相关推荐

  1. Java学习第七天 ———— 第一周学习汇总(粗略)

    Java学习第七天 ---- 第一周学习汇总 第一章Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大 ...

  2. 为什么至少三个哨兵_入职第一周,组长让我把部门redis服务搞成哨兵模式...慌-龙跃十二...

    少点代码,多点头发 本文已经被GitHub收录,欢迎大家踊跃star 和 issues. 入职第一周,我被坑了 最近刚入职新公司,本来想着这刚来新公司,一般都是熟悉熟悉公司同事,看看组内工程文档,找几 ...

  3. java 编程联系_《JAVA程序设计》结对编程联系_四则运算(第一周:阶段总结)...

    结对对象与其博客链接 需求分析 (一)功能需求 1.自动生成题目(本周已完成) 可生成包含不同运算符个数的题目 2.题目运算(判题)(这周先做了真分数,运算和后缀计算打算下周做) 实现中缀表达式转为后 ...

  4. python123第一周作业答案程序题_[python爬虫]第一周作业_顾静

    第一次作业 第一题 a = 10,b = 3 计算下面c的值及输出数据类型 1.c = a/b - a 2.c = a/b * a 3.c = 0.1 * a//b - a 4.c = a//b + ...

  5. NOIP信息学奥赛_普及组第一课--我是谁

    目录 NO.01A NOIP的基础知识 ?‍?我们的 NOIp ?我们会收获什么 ?老师的话 ?关于NOIP ?课程安排 NO.01B 基本编译环境和演示 ?什么是编程? ?DEV-C++的安装与介绍 ...

  6. JAVA从零开始自学历程(第一周)

    前言: 本人25,之前从事工程方面工作,没有任何计算机基础.现已下定决心进军IT业,因产品的核心部分为研发,而研发的核心角色在我看来为后端研发,因此选择JAVA语言作为进军IT业的开始.此为前文,以后 ...

  7. Web前端从入门到精通(第一周)

    Web前端从入门到精通(第一周) HTML+CSS系列之导学 1.拨云见日:HTML.CSS.切图流程.PC企业布局.PC游戏站布局 2.溯本求源:扩展HTML.扩展CSS.HTML5新语法.CSS3 ...

  8. 20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结

    20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: http://www.cnblogs.com/ ...

  9. Java学习第一周(2.20~2.24)

    前情:要想看懂源码,Java基础不能丢,在学习Java基础时不能掉以轻心,不然经年累月小问题也会变成大问题. 一.day01:学习的内容包括环境安装.JDK&JRE.如何在命令提示符窗口执行J ...

最新文章

  1. 物联网11种通信协议
  2. SAP MM 公司间退货STO流程后勤部分简述
  3. iptables实现字符串匹配
  4. Apache将整合Google Wave功能
  5. 设计出python_Python: 实际项目中抽象出的小项目设计
  6. 透视映射和射影映射的关系 Perspective and Projectivity
  7. [BOOST] BOOST::Format
  8. ps 替换文字_这可能是PS最难用的功能!解决PS字体列表硬伤的利器FonTags
  9. Linux fstab配置文件详解
  10. 迪艾姆python培训视频
  11. iMeta | 南医大余光创组ggtree最新文章-系统发育树存储与可视化的数据结构
  12. win7桌面仿linux桌面,windows10开启 linux子系统桌面,巨详细,值得一藏-win7桌面主题...
  13. 电机与拖动matlab仿...,电机与拖动基础及MATLAB仿真习题答案(第四章)
  14. gatk过滤_vcf文件过滤
  15. 阳光事业必须在阳光下进行
  16. FreeNAS 简介
  17. 大话西游java正版_大话西游网易正版电脑版
  18. C++习题:6-1 CCircle And CCylinder
  19. 7-28 实验3_11_鸡兔同笼吗? (100 分)
  20. PHP简易商城(一)概述

热门文章

  1. 使用Properties连接数据库
  2. throws throw 自定义异常
  3. String类常用方法(看一眼就懂)
  4. 按钮垂直居中_带下拉按钮的动态图表
  5. 小程序订阅消息 订阅消息开发
  6. 安装 ssh 的公开密匙到 iPhone 上
  7. X5同层播放器应用实践
  8. 区分BundleVersion和BundleShortVersionString
  9. oracle数据库导入导出
  10. BM提供支持云的量子计算平台,以加速创新