致谢 开源开发者的贡献

by Luciano Strika

通过卢西亚诺·斯特里卡(Luciano Strika)

对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点 (How contributing to open source made me a better developer — and how you can do it, too)

So you’ve been learning how to code. You are studying Algorithms and Data Structures. You are getting up to date on the latest Frameworks and their quirks. You can already smell some code smells, or even design solutions to real problems.

因此,您一直在学习如何编码。 您正在研究算法和数据结构。 您正在了解最新的框架及其怪异之处。 您已经可以闻到一些代码的味道,甚至可以设计出针对实际问题的解决方案。

But you haven’t worked in the Software industry yet. Or you’re in your first job and see how everyone’s awesome and full of experience. Yet you feel like you’re the noobest of noobs. Impostor’s syndrome is a thing, and we’ve all been there.

但是您还没有在软件行业工作过。 或者,您在第一份工作中,看到每个人都很棒并且经验丰富。 但是,您感觉自己是菜鸟中的白痴。 冒名顶替综合症是一回事,我们都去过那里。

There’s a way to get experience working in real codebases, nailing down the skills a book won’t teach you.

有一种方法可以获取在实际代码库中工作的经验,确定一本书无法教给您的技能。

These are some of the things we can experience through Open Source:

这些是我们可以通过开源体验的一些东西:

  • Reading other people’s code阅读别人的密码
  • Understanding complex systems, one piece at a time一次了解一件复杂的系统
  • Using versioning software (like git) in a proper way, with clear commit messages, atomic commits, and all those good, juicy practices.以正确的方式使用版本控制软件(如git),并提供清晰的提交消息,原子提交以及所有这些好的多汁做法。

If you’ve read this post’s title, you know where this is going. As a Medium reader, you’ve read many times that contributing to Open Source is awesome. It will teach you a lot, and may even get you noticed by some Big-N recruiter or something. I won’t say all those things are guaranteed, but I can definitely vouch for the first two.

如果您已经阅读了该帖子的标题,那么您将知道前进的方向。 作为中型读者,您已经读过很多遍了,对开源做出的贡献真是棒极了。 它会教给您很多知识,甚至可能会让某些Big-N招聘人员注意到您。 我不会说所有这些东西都是可以保证的,但是我绝对可以保证前两个条件。

我的故事 (My story)

Let me tell you a story. When I started my first job, the repositories overwhelmed me. They had thousands of lines of code, they had conventions or lack of them, and the clashing styles. I had only worked on small college assignments. These assignments had 10000 lines tops, written by people I knew, over the span of a month.

让我告诉你一个故事。 当我开始第一份工作时,存储库使我不知所措。 他们有成千上万行代码,有或没有约定,以及样式冲突。 我只从事小型大学任务。 这些作业在一个月的时间里有10000行顶部,由我认识的人写。

I had never seen what a repository could fester into (or thrive into, if well maintained, but this is the industry we’re talking about here) after a couple of years of chaos and git reset - -hard‘s.

在经历了几年混乱和git reset - -hard的混乱之后,我从未见过存储库会恶化(或兴旺发展,如果维护得当的话,但这是我们在这里谈论的行业)。

Learning to navigate that codebase was a skill in and of itself, which I gained after months of practice. But then when I started browsing GitHub, looking for a place to crash (or push), I started seeing how other repositories where organized.

学习导航该代码库本身就是一项技能,这是我在几个月的练习后获得的。 但是,当我开始浏览GitHub,寻找崩溃(或推送)的地方时,我开始看到其他存储库的组织方式。

Now, I am by no means an expert. My experience on GitHub so far has mostly been that of what, in some circles, would be called a lurker. I read the code, see what code does, read the issues, and think ‘geez, I wish I had any idea where to start’.

现在,我绝不是专家。 到目前为止,我在GitHub上的经验主要是在某些圈子中被称为潜伏者。 我阅读了代码,看看代码做了什么,阅读了这些问题,然后想到“老兄,我希望我有从哪里开始的任何想法”。

But then something awesome happened: some guy on Reddit posted a small project he had been working on. Not that many lines of code, mostly in Python (my favorite language), and maintained mostly by himself, with the help of a couple more people. I saw my chance and caught it. Studied the code, saw that some of the Python scripts worked perfectly, but they were a bit ugly: bad practices, repetition, really basic stuff the kind of person that actually gets things done may not stop to think about while coding the first draft, but comes to bite you in the leg afterward. So I set out to refactor.

但是随后发生了一件令人敬畏的事情:Reddit上的某个人发布了他一直在从事的一个小项目。 并没有太多的代码行,主要是Python(我最喜欢的语言),并且在更多人的帮助下,大部分都是由他自己维护的。 我看到了机会并抓住了它。 研究了代码,发现某些Python脚本可以很好地工作,但是它们有点丑陋:不良做法,重复,非常基础的东西可能真正完成工作的人在编写初稿时可能不会停止思考,但之后会咬你的腿。 所以我着手重构。

(By the way, that project was cheat.sh, an interactive, web cheat-sheet for developers. Here’s the GitHub project. It’s been an awesome project to contribute to, and I’d recommend you to check it out.)

(顺便说一句,该项目是cheat.sh ,这是一个面向开发人员的交互式Web备忘单。这是G itHub项目。这是一个很棒的项目,值得推荐,我建议您检查一下。)

教程 (A tutorial)

Along with this article, I made a tutorial so you can brush up on your git. I will assume we’re using a GitHub repo, as that’s what most of you may end up doing in your jobs. For this tutorial, I’ve set up a small example repository so you can follow along. Instructions are also present in the README.md file.

与本文一起,我编写了一个教程,以便您可以复习git。 我会假设我们正在使用GitHub存储库,因为这可能是大多数人最终在工作中所做的事情。 在本教程中,我建立了一个小的示例存储库,以便您可以继续。 README.md文件中也包含说明。

Here’s what you’ll have to do on this small assignment:

这是您在这项小任务上要做的:

  • Visit the repository’s link, and hit the fork button. This will create a copy of the project’s history up until this point under your own profile.

    访问存储库的链接,然后单击fork按钮。 这将在您自己的个人资料下创建该项目历史的副本,直到此刻为止。

  • Make a local directory in your computer在您的计算机中建立本地目录
  • Add both my project, and the one you created, as remote repositories. In order to do this, open your terminal in the directory you’ve created and use the following command:将我的项目和您创建的项目都添加为远程存储库。 为此,请在创建的目录中打开终端,然后使用以下命令:
git remote add *name* *link*

It’s customary for the name of my project’s link to be ‘upstream’, and yours to be ‘origin’.

通常,我的项目链接的名称为“ 上游 ”,而您的链接的名称为“ 起源 ”。

  • Pull my project:

    我的项目:

git pull origin master
  • Add your name to the contributors list in the README.md using your favourite text editor (I like Vim, for instance). Don’t forget to save your changes!使用您喜欢的文本编辑器(例如,我喜欢Vim)将您的名字添加到README.md的贡献者列表中。 不要忘记保存您的更改!
  • commit the changes:

    提交更改:

git add . && git commit -m ‘Your awesome message to me here’
  • Go to your Github account, visit your copy of the project and hit ‘pull request’, choosing to merge your master branch with mine.

    转到您的Github帐户,访问该项目的副本并点击“ pull request ”,选择将您的主分支与我的合并。

I promise I will accept requests as soon as I can, probably on the same day… And that’s it! No different to how it would have worked if you were making a big contribution!

我保证我会尽快(可能在同一天)接受请求。就是这样! 如果您做出了巨大的贡献,它的工作原理没有什么不同!

呼吁采取行动 (Call to action)

Now you have no excuse, go find a project you actually like or care about and add some lines to it! It doesn’t matter if your changes are small, as long as you’re helping and learning through them. My first contribution was correcting a typo in a README.

现在,您没有任何借口,找到您真正喜欢或关心的项目,并在其中添加一些行! 只要您正在帮助并从中学习,更改的大小就无关紧要。 我的第一个贡献是纠正自述文件中的错字。

I am trying new things this year, and writing on Medium has been on my bucket list for a while now.

我今年正在尝试新事物,而在Medium上写东西已经有一段时间了。

This was my first ever article, and I will be glad if you give me any feedback or opinions on anything you’ve read.

这是我的第一篇文章,如果您对所读内容有任何反馈或意见,我将感到高兴。

Also as I am new to Open Source software, please tell me if there’s anything important you feel I’ve missed. Finally, if you’ve already made Open Source contributions, I’d like to hear some stories and opinions. What are the best projects to contribute to, and the ones you’ve liked the most/least? It would be nice if we could compile a list for beginners.

另外,由于我是开源软件的新手,请告诉我您是否错过了重要的事情。 最后,如果您已经做出了开源贡献,那么我想听听一些故事和观点。 什么是最好的项目,哪些是您最喜欢/最不喜欢的项目? 如果我们可以为初学者编写一个列表,那将是很好的。

Thanks for reading this far, I’ll see you soon!

多谢您阅读本文,我很快就会再见!

Follow me for more articles about programming and Data Science, and check out my latest (probably better) articles.

关注我以获取更多有关编程和数据科学的文章,并查看我的最新文章(可能更好)。

翻译自: https://www.freecodecamp.org/news/how-contributing-to-open-source-made-me-a-better-developer-and-how-you-can-do-the-same-89929cd9f497/

致谢 开源开发者的贡献

致谢 开源开发者的贡献_对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点...相关推荐

  1. elixir开发的项目_我对Elixir的介绍:学习另一种编程语言如何使您成为更好的开发人员...

    elixir开发的项目 by Nikolas O'Donnell 由Nikolas O'Donnell 我对Elixir的介绍:学习另一种编程语言如何使您成为更好的开发人员 (My intro to ...

  2. 业余软件开发_我需要在业余时间编码才能成为一名优秀的开发人员

    业余软件开发 "You need to code in your spare time to be a good developer" - I've been hearing th ...

  3. python开源项目贡献_为开源项目做出第一笔贡献

    python开源项目贡献 一个常见的误解是,为开源做出贡献是困难的. 您可能会想:"有时候我什至不了解自己的代码:我应该如何理解别人的代码?" 放松. 直到去年,我还是这么想. 阅 ...

  4. 你不该错过的2020中国开源年报,填开源开发者问卷,成为国内开源的见证者

    点击上方"开源社"关注我们 | 作者:王伟 | 编辑:黄欣宜 | 设计:冯艺怡 | 责编:王玥敏 卷首语 一年一度的中国开源年报再度启动- 中国开源年报由开源社发起.旨在从多种维度 ...

  5. 开源的商业意义_为开源项目提供资金具有良好的商业意义

    开源的商业意义 在商业中,投资期望回报. 那么,开源软件的投资回报率是多少? 人们并不总是很清楚,为什么像Divio这样的公司(需要获利的企业)会愿意捐赠给开源社区和项目. 捐钱并不是人们对商业计划的 ...

  6. wpf开源ui引用步骤_吸引开源社区的5个步骤

    wpf开源ui引用步骤 受欢迎的聊天服务HipChat的母公司Atlassian成立于2002年, 当时只有两个人. 十三年后,我们遍及全球的1300多人. 这种增长迫使我们需要围绕一个联系点组织我们 ...

  7. 开源远程访问服务器工具_为什么开源需要可访问性标准

    开源远程访问服务器工具 随着开源软件用户群的不断增长,开发人员有责任使所有潜在用户(包括残疾人)都可以访问其软件. 虽然专门设计用于提供可访问性的程序已存在于开源软件的开发领域中,但大多数应用程序几乎 ...

  8. 采用开源技术的好处_采用开源的6个技巧

    采用开源技术的好处 开源代码以较低的成本推动了更多开发人员的协作创新,这就是联邦机构采用"开源优先"模式的原因. 实际上,总务管理局(General Services Admini ...

  9. 开源搜索引擎 种子搜索_使用开源搜索引擎自定义您的互联网

    开源搜索引擎 种子搜索 很久以前,互联网很小,只有几个人可以将它们编入索引,这些人收集了所有网站的名称和位置,并按页面或印刷书籍中的主题列出了它们. 随着万维网网络的发展,"网络响动&quo ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动计数个数(rolling count)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额计数个数
  2. 2019全球AI人才分布图:美国占44%,中国人才净流入
  3. python 列表常用操作(二)
  4. ajax里面可以alert吗,除非我使用alert(),否则Ajax请求不会工作
  5. 记一次简单的sql优化
  6. 魅族8.0系统手机最完美激活xposed框架的步骤
  7. Android开发之Is Library篇
  8. jQuery插件FontSizer实现自定义动态调整网页文字大小
  9. XSS-Game level 9
  10. VB 读写TXT文本文件函数
  11. 关于svn服务部署方案
  12. Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐
  13. appenders_Log4j Appenders教程
  14. 基于协同过滤,NMF和Baseline的推荐算法
  15. vue+django2.0.2-rest-framework 生鲜项目(五)
  16. easyui 中iframe嵌套页面,提示弹窗遮罩的解决方法,parent.$.messager.alert和parent.$.messager.confirm...
  17. MATPOWER工具本质原理解析
  18. 专访全面智能CTO陈章:想法只有在技术落地的那一刻才有撬动地球的能力
  19. 文件比较软件修改比较文件时间戳方法
  20. 搜狗输入法候选窗口不跟随光标

热门文章

  1. serlvet 九大内置对象
  2. 把view或者div绘制 canvas ,导出图片功能实现完整源码附效果图(兼容H5和小程序)
  3. HTML引用公共组件
  4. js多维数组渲染HTML js for循环渲染页面
  5. Java面试题总结-Day4
  6. Thorntail 2.2.0提供从WildFly Swarm自动迁移的特性
  7. 带monkey的测流量!
  8. 阿里云ECS架设***过程总结
  9. 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
  10. 改变myeclipse北京颜色