当前位置: 首页 > 编程日记 > 正文

开源贡献 计算_如何克服恐惧并为开源做贡献

开源贡献 计算

Are you a new developer? Or maybe even just an old-timer who has been in a company for ten years, working on an in-house project, and now you’re thinking, “Hey, I’ve been in my box a long time. What’s new out there?” I have been like that before, and I had my own fears to conquer during those times.

您是新开发者吗? 也许只是一个在公司工作了十年的老朋友,从事内部项目,现在您在想:“ 嘿,我已经了很长时间了。 那里有什么新东西?” 我以前就是这样,在那段时期我有自己的恐惧要征服。

When I graduated, I had the general direction of my career in mind: web development, games, or both. I loved the Internet and I had the knowledge to go to town on it. At that point in time, naïve me felt invincible knowing HTML/CSS. I also knew some Flash and PHP, so I thought I was a very versatile developer (yes, we had our proud moments).

毕业后,我想到了职业发展的总体方向:网站开发,游戏或两者兼而有之。 我喜欢互联网,而且我有知识可以上网。 在那个时间点上,我天真地了解HTML / CSS。 我也知道一些Flash和PHP,所以我认为我是一个非常多才多艺的开发人员(是的,我们度过了自豪的时光)。

Long story short, I got into some web developer and game dev roles. At some point in time, I was introduced by my good friend Topher to the world of Ruby.

长话短说,我进入了一些Web开发人员和游戏开发人员的角色。 在某个时候,我的好朋友Topher向我介绍了Ruby的世界。

I was new to everything it offered:

我对它所提供的一切都是陌生的:

  • Git (my form of version control with my Flash work was like FINAL-FINAL-V22.zip)

    Git(我使用Flash进行版本控制的形式就像FINAL-FINAL-V22.zip)
  • Command line: sure, had some experience with PHP, but on a Windows machine, it wasn’t much

    命令行:当然,有一定PHP经验,但是在Windows机器上并没有太多
  • Unix

    的Unix

Back then, I had no clue what open source was. I knew PHP was open source, and that it basically meant the source code was there for everyone to see. That was that.

那时,我不知道什么是开源。 我知道PHP是开源的,它的基本含义是所有人都可以看到源代码。 就是那样

输入Github (Enter Github)

In my opinion, Github set the precedent for the boom in open source. Ruby on rails was fairly new back then as well, and when Github was made using Rails, it was the start of my open source journey.

我认为, Github为开源热潮开创了先例。 当时的Ruby on Rails也是相当新的东西,当使用Rails制作Github时,这就是我的开源之旅的开始。

It wasn’t until a year and a half later when I created my “first” open source project. It was actually just a fork of Bob Craven’s work in which I modified some parts for another project.

直到一年半之后,我才创建了我的“第一个”开源项目 。 实际上,这只是Bob Craven的工作的一部分,我在其中修改了另一个项目的某些部分。

Another year later, I created my first issue and pull request. Yes, it took me a year! After this, though, I felt more confident and with encouragement from my boss, who was an open source advocate as well, I contributed more and more to open source.

一年后,我创建了我的第一个期并提出要求 。 是的,花了我一年! 但是,在此之后,我感到更加自信,并且在老板(同时也是开源倡导者)的鼓励下,我为开源做出了越来越多的贡献。

那么我如何克服这种恐惧呢? (So how do I get over that fear?)

First and foremost, ask yourself why you’re afraid of contributing. It’s the first step in overcoming a fear (at least for me!).

首先,问问自己为什么害怕贡献。 这是克服恐惧的第一步(至少对我而言!)。

Here were my own fears in addition to the most common ones I have heard about (that have been to me by students, colleagues, and so on) which may or may not apply to you:

除了我所听到的最常见的恐惧(学生,同事等对我的恐惧)之外,还有一些我自己的恐惧,这些恐惧可能对您也可能不起作用:

  • What if my contribution is not accepted?

    如果我的捐款不被接受怎么办?
  • What if I write crap code that nobody likes?

    如果我编写没人喜欢的废话代码怎么办?
  • Will people judge me for the code I write?

    人们会根据我编写的代码来判断我吗?
  • I can’t understand any of their code! :(

    我不明白他们的任何代码! :(
  • I don’t know how to code / I’m just a newbie.

    我不知道如何编码/我只是一个新手。
  • I don’t know where to start!

    我不知道从哪里开始!

After listing these fears down, address them one by one or at least try to find solutions to how you can address them. As such, I can list some solutions to these and hopefully help some of you to get over that hump and start contributing.

在消除这些恐惧之后,一一解决,或者至少尝试找到解决方法。 因此,我可以列出一些解决方案,希望能帮助你们中的一些人克服困难并开始做出贡献。

如果我的捐款不被接受怎么办? (What if my contribution is not accepted?)

To be honest, this is not that huge of a fear for me, but more of an inconvenience. There’s that little part of me that dies when my work is rejected (who doesn’t?), but that’s just the way it is. We just have to learn to accept that sometimes. A pull request may not be accepted because of code quality, duplication, and so on. And it’s OK. I can’t stress that enough.

坦白说,这对我来说并不是太大的恐惧,而是给您带来的不便。 当我的工作被拒绝(谁没有被拒绝)时,我只有一小部分人死亡,但这就是事实。 有时候我们只需要学会接受。 由于代码质量,重复等原因,可能不接受请求请求。 没关系 。 我不能太强调。

In my early years of contributing, I had a few rejections and it was a bit disheartening. Take note though, some actually don’t reject you outright since with some projects, maintainers are overwhelmed by pull requests or some issues are already solved but not yet released.

在我早期的贡献中,我遭到了一些拒绝 ,这令人沮丧。 但是请注意, 实际上有些人并不会直接拒绝您,因为在某些项目中, 维护人员会被请求请求淹没,或者某些问题已经解决但尚未发布 。

My advice is to just move along and look for other options. You can’t dwell on a pull request forever! Try to get something from it. In the rejection I had, I learned to do fewer commits paired with smaller pull requests, and not one epic feature in one go.

我的建议是继续前进并寻找其他选择。 您不能永远停留在请求请求上! 尝试从中得到一些东西。 在我的拒绝中,我学会了更少的提交和更小的拉取请求,一次也不做任何史诗功能。

如果我编写没人喜欢的代码怎么办? (What if I write code that nobody likes?)

I don’t think anyone dislikes code, especially something that was supposed to help a project. Sure, there are some projects that will require a higher quality of code than others, but in the end, contributions are what powers them — so hopefully no one will call your code ?.

我认为没有人不喜欢代码,尤其是那些本来可以帮助项目的代码。 当然,有些项目需要比其他项目更高的代码质量,但是最终,贡献才是推动它们发展的动力-因此希望没人能称呼您的代码?

In most open source projects, people will comment and offer constructive advice on how to improve your contribution. Learn from them and follow their advice. Refactor. Most importantly, ask the maintainers how you can fix it and/or point you in the right direction. You’d be surprised how easily they will provide you with the tools that you need!

在大多数开源项目中,人们将就如何提高您的贡献发表评论并提供建设性建议。 向他们学习并遵循他们的建议。 重构。 最重要的是,询问维护人员如何修复它和/或为您指明正确的方向。 您会惊讶于它们为您提供所需工具的便捷程度!

人们会根据我编写的代码来判断我吗? (Will people judge me for the code I write?)

In my experience, most people don’t judge you for your code (at least the hundreds of developers I have encountered have not). Now, the thing to keep in mind is that whenever you write code you are not sure about, ask for someone else’s opinion, or ask a more senior developer to review it for you. If you don’t know anyone that fits the bill, then let the maintainers know in your pull request description that you probably have some not-so-good code and ask for their opinion.

根据我的经验,大多数人不会根据您的代码来判断您(至少我遇到的数百名开发人员没有)。 现在,要记住的事情是,每当您编写代码时,您都不会确定,征询别人的意见,或者请更高级的开发人员为您审阅代码。 如果您不认识合适的人,请在维护请求的描述中告知维护者您可能有一些不太好的代码,并征求他们的意见。

I think it’s just best to be open on these kinds of things, and if they have the time, they will surely let you know and help you out. The best way to get a good response though is to not just ask “How do I make this better?” Not everyone has the time to help everyone else out, so it would save a lot of time for you (and for the maintainer!), if you first research how to make your code better and then ask for help. More like, “Hi, I’m still new here, but here’s what I have done, and some links to sources on why I did it this way. I think it is still not good enough, and was wondering if you have any opinions or if you could point me in the right direction.” That sort of thing.

我认为最好是对这些事情保持开放,如果有时间的话,他们一定会告诉您并帮助您。 不过,获得良好回应的最好方法是不只是问“如何使它变得更好?” 并非每个人都有时间帮助其他人,因此,如果您首先研究如何使代码变得更好, 然后寻求帮助,则可以为您(以及维护者!)节省大量时间。 更像是,“嗨,我在这里还很新,但这是我所做的,还有一些有关我为什么这样做的消息来源的链接。 我认为这还不够好,并且想知道您是否有任何意见或是否可以向我指出正确的方向。” 诸如此类的事情。

我不懂他们的任何代码! (I don’t understand any of their code!)

This still bugs me sometimes. This is mostly true on many huge open source projects like Rails, React, and others like that. Usually, the only way to understand is to encounter a problem / bug and reproduce it on your end. All I can really say is that you don’t have to understand everything, but at least know how things work as a bare minimum.

有时候,这仍然困扰着我。 在许多大型开源项目中,例如Rails,React和其他类似项目,这都是正确的。 通常,了解的唯一方法是遇到问题/错误并最终复制它。 我真正能说的是,您不必了解所有内容 ,但至少要了解事情的最低限度。

I once had a student while I was mentoring who asked me about this. He wanted to really push himself and I suggested that one challenge (that I myself haven’t finished!) is to create a pull request to Rails or whatever project he was fond of. A week later, he was beaming when he mentioned he got his first pull request merged. It was a pull request to the Japanese version of the Rails guide. I was a very proud mentor that day.

在指导期间,我曾经有一个学生问这个问题。 他想真正推动自己,我建议一个挑战(我自己还没有完成!)是向Rails或他喜欢的任何项目创建请求请求。 一周后,当他提到他合并了他的第一个拉取请求时,他很高兴。 这是对日语版Rails指南的要求。 那天我是一个非常自豪的导师。

He didn’t understand Rails fully yet, but he REALLY wanted to contribute to it. So instead of looking at Rails itself, he helped out in another way by fixing translations so non-English speakers / readers could understand it better.

他还没有完全了解Rails,但他确实想为此做出贡献。 因此,他没有看Rails本身,而是通过修复翻译以另一种方式提供了帮助,以便说非英语的人/读者可以更好地理解它。

This brings me to another point which actually addresses another fear…

这把我带到了另一个可以解决另一个恐惧的地方……

我不知道如何编码/我只是新手 (I don’t know how to code / I am just a newbie)

We all have to start somewhere. All the experts, maintainers, and famous developers you know all started as a newbie. The key thing here is that they managed to improve themselves and didn’t let being a new developer block them from doing something great.

我们都必须从某个地方开始。 您认识的所有专家,维护人员和著名开发人员都是从新手开始的。 这里的关键是他们设法提高自己,并且不让自己成为一名新开发人员来阻止他们做大事。

Now, I know a LOT of people who don’t even have a Computer Science background, who know a lot more than I do (and I have a CS degree!). Not knowing how to code should not be a source of fear, since you can contribute without coding.

现在,我认识了很多甚至没有计算机科学背景的人,他们比我了解得多(我拥有CS学位!)。 不知道如何编码不应引起恐惧,因为您无需编码即可做出贡献。

Bear in mind, contributing does not only mean making pull requests! It can be participating in a discussion about a feature, pointing out errors, or even filing bugs (be sure to follow their contributing procedures!)

请记住, 贡献不仅意味着提出请求 ! 它可以参与有关功能的讨论,指出错误,甚至可以提交错误(请务必 遵循 其 参与 程序 !)

Most of the time, a project will need translators or proof readers. If you fancy doing those tasks, go look for a project you like and support them. I am an avid fan of Elixir, and while I haven’t written production Elixir code, I volunteered to help maintain the style guide. Of course, I asked the maintainer first, but it was also my way of training myself to Elixir syntax and project management of sorts. I didn’t have to be an Elixir expert, I mostly managed the issues and double checked the submitted pull requests.

大多数时候,一个项目将需要翻译或校对者。 如果您愿意执行这些任务,请去寻找您喜欢的项目并提供支持。 我是Elixir的狂热爱好者,虽然我还没有编写生产Elixir的代码,但我自愿帮助维护样式指南 。 当然,我首先问维护者,但这也是我训练自己掌握Elixir语法和各种项目管理的方式。 我不必成为Elixir专家,我主要负责管理问题并仔细检查了提交的请求请求。

大! 我可以从哪里开始? (Great! Where can I start?!)

Again, Github is a good place to start. If you have a project you support, try to look there first. Otherwise, if you feel like you can conquer anything, look at the trending repositories in Github or even Explore Gitlab.

同样,Github是一个不错的起点。 如果您有一个支持的项目,请尝试先看看那里。 否则,如果您觉得自己可以征服一切,请查看Github中甚至是探索Gitlab中的热门存储库 。

Now go forth and spread the open source love!

现在继续传播开源之爱!

Update: I have also made an article about making your first pull request (and getting it merged) as a supplement to this. Check it out here.

更新:我还写了一篇有关提出您的第一个拉取请求(并将其合并)的文章,作为对此的补充。 在这里查看 。

翻译自: https://www.freecodecamp.org/news/how-to-get-over-your-fear-of-contributing-to-open-source-6160e4cdf0d3/

开源贡献 计算

相关文章:

Android学习笔记进阶十一图片动画播放(AnimationDrawable)

大家平时见到的最多的可能就是Frame动画了,Android中当然也少不了它。它的使用更加简单,只需要创建一个 AnimationDrawabledF对象来表示Frame动画,然后通过addFrame 方法把每一帧要显示的内容添加进去,并设置播放间隔时间&#xf…

JS 把url的参数解析成对象

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文: 实现思路:请看log和打印结果 // url参数解析 function getUrlkey(url) {var params {};var urls url.split("?"); console.log(1_分割url:,…

Objective-C代码的文件扩展名

转载于:https://www.cnblogs.com/123qw/p/4375299.html

公司成立两周年感言_对我的副项目成立一周年的一些反思

公司成立两周年感言by Will Abramson威尔艾布拉姆森(Will Abramson) 对我的副项目成立一周年的一些反思 (Some reflections on my side project’s first anniversary) My side project turns one this month. It has been a real learning roller coaster.我的副业这个月变成…

2017.4.18 静态代码分析工具sonarqube+sonar-runner的安装配置及使用

配置成功后的代码分析页面: 可以看到对复杂度、语法使用、重复度等等都做了分析,具体到了每一个方法和每一句代码。 四种使用方式: sonarqube sonar-runnersonarqube mavensonarqube eclipsesonarqube IDE IntelliJ使用方式1 &#xff1a…

c中结构体的4种定义

1、常规的标准方式&#xff1a; 1 #include <stdio.h> 2 3 struct student{ 4 int age; 5 float score; 6 char sex; 7 }; 8 9 int main(int argc, char **argv) 10 { 11 struct student studenta { 12 30, 13 79.5, 14 …

js 时间戳与日期处理集合

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 一&#xff1a;获取当前日期 使用方式&#xff1a;console.log(util.formatTime()) 打印结果&#xff1a;2018/04/24 11:06:45 // 获取当前日期 function formatTime() {var date…

超赞网站推荐_字体(更多)超赞-标志性发明

超赞网站推荐by Pubudu Dodangoda通过Pubudu Dodangoda 字体(更多)超赞-标志性发明 (Font (More) Awesome — an iconic invention) Whether you are building a website, a mobile app, or even a standalone app, there are few things you can never escape. The proper us…

JAVA中的垃圾回收机制以及其在android开发中的作用

http://blog.csdn.net/xieqibao/article/details/6707519 这篇文章概述了JAVA中运行时数据的结构&#xff0c;以及垃圾回收机制的作用。在后半部分&#xff0c;描述了如何检测和定位ANDROID程序是否内存溢出。转载于:https://www.cnblogs.com/u3shadow/p/4379336.html

微信小程序把后台传过来的数组坐标展示在地图上

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 功能实现&#xff1a; 1. 根据后台传递过来的数据&#xff0c;包括地址名字&#xff0c;经纬度坐标等都展示在map组件上&#xff1b; 2. 点击相应地址实现用户当前位置导航至点击的…

Flask-login Question

1 未登录访问鉴权页面如何处理&#xff1f; 如果未登录访问了一个作了 login_required 限制的 view&#xff0c;那么 Flask-Login 会默认 flash一条消息&#xff0c;并且将重定向到login_view&#xff0c;如果你没有指定login_view&#xff0c;那么 Flask-Login 将会抛出一个 4…

愉快的舞会c++_如何在5分钟内建立一个令人愉快的加载屏幕

愉快的舞会cFirst, here is what we will build. Set your timer!首先&#xff0c;这是我们将要建立的。 设置您的计时器&#xff01; Does this look familiar?这看起来很熟悉吗&#xff1f; If yes, that’s because you’ve seen this somewhere — Slack!如果是&#xf…

有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题(转)...

经常可以在一些讨论组里看到下面的提问&#xff1a;“谁知道下面C语句给n赋什么值&#xff1f;”m 1; n mm;最近有位不相识的朋友发email给我&#xff0c;问为什么在某个C系统里&#xff0c;下面表达式打印出两个4&#xff0c;而不是4和5&#xff1a;a 4; cout << a &…

HDU 3001

题目中说明每个城市至少要走一次&#xff0c;至多走2次&#xff0c;因此要用到三进制压缩&#xff0c;然后就是状态转移方程了。 这道题就处理三进制的地方麻烦一点。同时注意&#xff0c;在选择最小长度时&#xff0c;一定是要每一个点都经过至少一次的&#xff0c;即是状态的…

微信小程序 侧滑效果实现

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 先看效果图&#xff1a; 源码&#xff1a; <view wx:if{{if_show}} class{{show_centent?"show":"hide"}} /> <button bindtapbtn>展示 or 隐藏&l…

im和音视频开发哪个更好_如何阅读成为更好的开发者的方式

im和音视频开发哪个更好by nolan grace通过诺兰格雷斯 如何阅读成为更好的开发者的方式 (How to read your way to becoming a better developer) If you want to get better at programming, there are two things you need to do:如果您想提高编程水平&#xff0c;则需要做两…

MVC3学习 四 EF删除操作

由于EF的框架是4.1的&#xff0c;所以现在如果想更新部分字段的话&#xff0c;只能从数据库中查出一次数据&#xff08;不用查的方法还没找到&#xff0c;需要继续研究&#xff09;&#xff0c;不能像5.1的版本可以不用查。 更新的Action需要用到[HttpGet]和[HttpPost]&#xf…

ThinkPHP5.0中Redis的使用和封装(原创)

Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射.它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非常不错. ThinkPhP5.0自带了Redis扩展,在使用之前先下载php_redis.dll 网址 http://windows.p…

【微信小程序之画布】四:手指触摸绘波浪线

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 功能&#xff1a;根据手指触摸绘画一条直线路径--> 起点为手指开始触摸时的坐标&#xff0c;终点为手指触摸结束时的坐标 效果图&#xff1a; 上代码&#xff1a; <canvas clas…

saas的计费数据库设计_如何构建和扩展SaaS计费解决方案

saas的计费数据库设计您需要的最低可行产品 (What you need for a Minimum Viable Product) When you are building your Software as a Service (Saas) Minimum Viable Product (MVP), there is a lot of work that needs to be done. It can be difficult to balance this wo…

关于一对多,多对多的多表查询的控制

一、一对多 以班级Classes和学生Student为例&#xff1a;回忆sql语句://内链接,两种方式效果一样,查询的是两边都有的数据SELECT c.*,s.* FROM classes c,student s WHERE s.cidc.cid;SELECT c.cname,s.sname FROM classes c INNER JOIN student s ON s.cidc.cid;//左外连接&am…

JavaScript对象,方括号和算法

by Dmitri Grabov德米特里格拉波夫(Dmitri Grabov) JavaScript对象&#xff0c;方括号和算法 (JavaScript Objects, Square Brackets and Algorithms) One of the most powerful aspects of JavaScript is being able to dynamically refer to properties of objects. In this…

《Java 8 实战》(二)—— Lambda

Lambda表达式可以理解为简洁地表示可传递的匿名函数的一种方式&#xff1a;它没有名称&#xff0c;但它有参数列表/函数主体/返回类型&#xff0c;可能还有一个可以抛出的异常列表。 Lambda表达式由参数/箭头和主体组成&#xff1a; (Apple a1, Apple a2) -> a1.getWeight(…

c++回调函数 callback

&#xff08;1&#xff09;Callback方式Callback的本质是设置一个函数指针进去&#xff0c;然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码&#xff0c;我们在Download完成时需要触发一个通知外面的事件&#xff1a;…

【微信小程序之画布】终:手指触摸画板实现

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 先看效果图&#xff1a; wxml <!--pages/shouxieban/shouxieban.wxml--> <view class"container"><view>手写板&#xff08;请在下方区域手写内容&…

Android开发中应避免的重大错误

by Varun Barad由Varun Barad Android开发中应避免的重大错误 (Critical mistakes to avoid in Android development) As many pioneers and leaders in different fields have paraphrased:正如许多不同领域的开拓者和领导人所说&#xff1a; In any endeavor, it is import…

机房收费系统(VB.NET)——超具体的报表制作过程

之前做机房收费系统用的报表是GridReport&#xff0c;这次VB.NET重构中用到了VisualStudio自带的报表控件。刚開始当然对这块功能非常不熟悉&#xff0c;只是探究了一段时间后还是把它做出来了。 以下把在VisualStudio&#xff08;我用的是VisualStudio2013&#xff0c;假设与您…

微信小程序实现画布自适应各种手机尺寸

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 解决的问题&#xff1a; 画布&#xff0c;动画等js里面的操作&#xff0c;默认是px而不是rpx, 无法根据手机屏幕自适应 达到的效果&#xff1a; 让画布&#xff0c;动画在不同分辨…

网易新闻首页实现

http://www.2cto.com/kf/201409/330299.html IOS后台运行机制详解&#xff08;二&#xff09; http://blog.csdn.net/enuola/article/details/9148691转载于:https://www.cnblogs.com/itlover2013/p/4403061.html

阿联酋gitex_航空公司网站不在乎您的隐私后续行动:阿联酋航空以以下方式回应我的文章:...

阿联酋gitexby Konark Modi通过Konark Modi 航空公司网站不在乎您的隐私后续行动&#xff1a;阿联酋航空对我的文章进行了全面否认 (Airline websites don’t care about your privacy follow-up: Emirates responds to my article with full-on denial) Yesterday, The Regis…