如何在GitHub上成名

  • Post author:
  • Post category:其他


GitHub holds perhaps the largest collection of open source software on the planet. It’s an ecosystem of collaboration, learning, and integration for developers and organizations alike. You can write software, contribute to other software, or use free and open software in other projects and products. It’s an incredible tool that powers the world of programming, and promotes access and collaboration to produce open source software for everyone.

GitHub可能拥有全球最大的开源软件集合。 对于开发人员和组织而言,这是一个协作,学习和集成的生态系统。 您可以编写软件,为其他软件做贡献或在其他项目和产品中使用免费和开放的软件。 这是一个令人难以置信的工具,它可以推动编程世界发展,并促进访问和协作,从而为所有人提供开源软件。

Using GitHub as a developer, to either further your career or increase your influence in a genre of open source is a bit different. Getting well known on GitHub isn’t straight forward, and requires a intricate understanding of what drives the use of open source packages, and what sets the most popular packages apart from the rest. I will discuss the best and worst ways to use GitHub as a developer, and how you might just create the next trending library or package on the site. No guarantees, but hopefully you will be inspired and guided in the right direction.

使用GitHub作为开发人员,可以进一步发展您的职业或增加您在开放源代码类型中的影响力,这有点不同。 在GitHub上获得知名度并不是直截了当的,它需要对导致开源程序包使用的驱动因素以及使其他程序与众不同的最受欢迎程序包有一个全面的了解。 我将讨论使用GitHub作为开发人员的最佳和最差方法,以及如何在网站上创建下一个趋势库或软件包。 没有保证,但是希望您会在正确的方向上受到启发和引导。

生态系统

(

An Ecosystem

)

GitHub is quite an open and unrestricted platform. You can create repositories and pretty much use them for whatever you want. There’s even a lot of people using GitHub for computer science lesson plans. There’s also applications that integrate with repositories on GitHub, like

Git Books

. GitHub functions as an ecosystem of code encapsulated in repositories, in a similar way that social media sites function as an ecosystem of text, pictures, and interactions.

GitHub是一个开放且不受限制的平台。 您可以创建存储库,几乎可以将它们用于任何您想要的内容。 甚至还有很多人将GitHub用于计算机科学课程计划。 还有与GitHub上的存储库集成的应用程序,例如

Git Books

。 GitHub充当封装在存储库中的代码生态系统,类似于社交媒体网站充当文本,图片和交互的生态系统。

Any person or group of people using GitHub can usually be divided into two categories: consumers and producers. Consumers mainly use GitHub to use and integrate software on the site into their own applications. Producers write code for the intent of others consuming the code in repos that they publish on the site. While some people can certainly embody both categories, they usually lean toward one that’s a more common use pattern for them.

使用GitHub的任何人或一群人通常可以分为两类:消费者和生产者。 消费者主要使用GitHub在站点上使用软件并将其集成到自己的应用程序中。 生产者编写代码的目的是为了让其他人使用他们在站点上发布的存储库中的代码。 虽然某些人当然可以同时体现这两种类别,但他们通常倾向于一种对他们来说更常见的使用方式。

Understanding what kind of libraries and packages become highly used is tricky. The site contains types of packages that will more easily gain popularity, and types that likely won’t ever be used. The difference though, is not what you might think. Packages with rare use cases, but production quality code and interfacing, can readily become more popular than a package with a common use case, yet poor quality code. That will be discussed more later.

了解哪种类型的库和软件包变得越来越流行是很棘手的。 该站点包含将更容易获得流行的软件包类型,以及可能永远不会使用的软件包类型。 但是,区别并不是您可能会想到的。 具有罕见用例但生产质量代码和接口的软件包可能比具有普通用例但质量差的代码的软件包更受欢迎。 稍后将对此进行讨论。

Another vital part of packages on GitHub is a packaging system. Most programming languages, come with some build or installation system for managing open source or third party packages. Any popular package, regardless of how intuitive or useful it may be, must be easily integrated into other projects. If there’s a large learning curve or barrier just to get to the point you can use a package, it’s likely not going to get very far at all.

GitHub上软件包的另一个重要部分是打包系统。 大多数编程语言都带有一些用于管理开源或第三方软件包的构建或安装系统。 任何流行的软件包,无论其直观性或实用性如何,都必须轻松集成到其他项目中。 如果有一个很大的学习曲线或障碍,只是为了到达可以使用软件包的地步,那么它可能根本不会走得太远。

Packaging is not the only component that can make a package easy to integrate though. Some packages, instead focus on tools rather than bundles of code. A great example of such a package is

ripgrep

. Ripgrep is a CLI tool that allows you to search files and directories for a regular expression pattern. Except, it aims to do so at an extremely fast speed, much faster then the typical

grep

that you probably already use. Ripgrep is written in rust, a cross-platform, natively compiled programming language. Normally, it’s a little difficult to ship cross platform binaries, as you either need to download a compiler to compile it from source, or ship a binary for each platform. With

rust

, that’s a little easier with

crates

system, that manages installing binaries as CLI tools on it’s own. You can in theory install ripgrep with just two terminal commands.

但是,包装并不是使包装易于集成的唯一组件。 某些软件包则专注于工具而不是代码捆绑。

ripgrep

是一个很好的例子。 Ripgrep是一个CLI工具,可让您在文件和目录中搜索正则表达式模式。 除此之外,它旨在以极快的速度执行此操作,该速度比您可能已经使用的典型

grep

快得多。 Ripgrep用rust(一种跨平台,本机编译的编程语言)编写。 通常,跨平台二进制文件的交付会有些困难,因为您需要下载编译器以从源代码进行编译,或者为每个平台交付二进制文件。 使用

rust

,使用

板条箱

系统要容易一些,它自己管理二进制文件作为CLI工具的安装。 理论上,您可以仅使用两个终端命令来安装ripgrep。

需求

(

The Demand

)

Demand functions as a critical component of gaining notoriety on GitHub. A project or package can generally gain an initial amount of popularity for just being unique, interesting, or “cool”. This encompasses both completely esoteric projects, as well as projects that are functional but largely for leisure purposes. One example is on of

my own endeavors

, a language that compiles to an SVG graphic. My primary inspiration for this was my love of both art and programming. It initially gained some traction and popularity. Yet, the language was only written to make lines and filled line shapes. This may be fun for someone learning to code, but lacks the more sophisticated features of the SVG spec for stuff like transformations and animations. Thus, it never gained over a few hundred stars on the site.

需求是在GitHub上声名狼藉的重要组成部分。 一个项目或程序包通常仅因其独特性,趣味性或“酷性”而可以初步获得普及。 这既包括完全深奥的项目,也包括功能齐全但主要用于休闲目的的项目。

我自己的

一个例子就是将这种语言编译为SVG图形。 我的主要灵感来自于我对艺术和编程的热爱。 最初它获得了一定的吸引力和人气。 但是,该语言仅用于制作线条和填充线条形状。 对于学习编码的人来说,这可能很有趣,但是缺少诸如转换和动画之类的SVG规范的更复杂的功能。 因此,它从未在站点上获得超过几百颗星。

Projects that gain in the thousands or tens of thousands of stars and users need a production applicable purpose, or a large developer community. The former category contains projects are more full featured software that often run on their own, such as databases like

Redis

, or search engines like

Elastic

. Such projects generally function as an independent component of a technology stack a company or organization uses, and does not require other packages to run. The ladder category contains projects that cannot directly be used in a production setting, but allow creation of full featured software that could be. Programming languages, machine learning or data science libraries, quality assurance and testing packages, all have large developer communities using their projects every single day. Many programming languages even hold yearly conferences where developers come and present their use cases for their work they have done with the language.

获得成千上万颗星和用户的项目需要适用于生产的目的,或者需要庞大的开发者社区。 前一类包含的项目是功能更全的软件,这些软件通常可以自己运行,例如

Redis之

类的数据库或

Elastic之

类的搜索引擎。 此类项目通常充当公司或组织使用的技术堆栈的独立组件,并且不需要其他程序包即可运行。 阶梯类别包含无法直接在生产环境中使用的项目,但允许创建可能使用的全功能软件。 编程语言,机器学习或数据科学库,质量保证和测试包,每天都有大型开发人员社区在使用他们的项目。 许多编程语言甚至每年召开一次开发者大会,并介绍他们使用该语言所做的工作的用例。

In order for you or your project to become famous on GitHub, you need to think what solves a problem or provides a solution that many people could use.

为了使您或您的项目在GitHub上成名,您需要考虑解决问题的方法或提供许多人可以使用的解决方案。

现实点

(

Be Realistic

)

You also have to be realistic in your project ideas, in terms of how long they will take to finish and if you even have the time to finish them. This is the main problem with “side” projects. People generally starts projects they can never finish. It’s unlikely you will have the time or patience to make your own operating system. If you choose to make your own project on GitHub, start small like with a library that simplifies some task, and move up and broader after you finish that.

您还必须在项目构想上要切合实际,要完成它们需要花费多长时间,甚至没有时间来完成它们。 这是“附带”项目的主要问题。 人们通常开始无法完成的项目。 您不太可能有时间或耐心来制作自己的操作系统。 如果您选择在GitHub上创建自己的项目,请从一个简单的库开始,如简化某些任务的库,并在完成后向上扩展。

贡献与创造

(

Contribution vs Creation

)

One thing to consider in your time coding and developing on GitHub is whether or not you should contribute to existing projects, or create your own. It’s very likely regardless of which one you decide, you will end up doing some of both. It’s important to keep in mind a few tips here though, because you ultimately want to use your time wisely in a way that benefits you in the future:

在GitHub上进行编码和开发时,需要考虑的一件事是,您应该为现有项目做出贡献还是创建自己的项目。 无论您决定选择哪一个,都很可能会同时做这两者。 不过,请务必在此牢记一些提示,因为您最终希望以一种使您将来受益的方式明智地利用自己的时间:

  • Don’t contribute to very small projects, unless you believe they have high potential to garner a large community. Early contributions to projects may be entirely rewritten or taken out later on due to project maturity or design changes.

    除非您认为小型项目具有吸引大型社区的巨大潜力,否则请勿为小型项目做出贡献。 由于项目成熟度或设计变更,早期对项目的贡献可能会完全重写或在以后取消。

  • Don’t make line spacing or formatting improvements unless a project specifically calls for it. Such contributions may be rejected in larger projects as an attempt to get your name added to the contributor list while not contributing anything functionally to the project.

    除非项目特别要求,否则请勿进行行距或格式方面的改进。 这样的贡献可能会在较大的项目中被拒绝,因为它试图将您的姓名添加到贡献者列表中,而不在功能上对项目做出任何贡献。

  • Do make contributions that relate to code quality or code safety. These types of changes help improve the product functionally or make it more adverse to serious bugs like crashes or memory leaks.

    做出与代码质量或代码安全性有关的贡献。 这些类型的更改有助于改进产品的功能,或者使其更能应对严重的错误,例如崩溃或内存泄漏。

  • For large contributions to mature projects, try to get a sense of whether or not your contribution would be accepted or not. Significantly altering the design of an older project is unlikely to be approved or accepted. This is why smaller changes and improvements are generally preferred.

    对于对成熟项目的大量贡献,请尝试了解您的贡献是否会被接受。 重大更改旧项目的设计不太可能获得批准或接受。 这就是为什么通常首选较小的更改和改进的原因。

Beyond that, think carefully about your contributions, spend your time wisely, and you probably have a good chance at gaining some fame on GitHub.

除此之外,请仔细考虑您的贡献,明智地花费时间,您很可能有很好的机会在GitHub上赢得声誉。

翻译自:

https://medium.com/@jweinst1/how-to-become-famous-on-github-82e4aa18a3ea