What's the Deal with Engineers and Github?
If you’ve spent any time around software engineers in the past 5 years you’re sure to have heard the word “Github”. What is Github, what are software engineers doing on Github, and what’s all the excitement about? For a non-tech person, is there any value to Github? (spoiler: there is!) At its core, Github is a place for programmers to store their code, and to collaborate on code together. We’ll go into that in more detail below, but first, what Github is not:
Github is not a social network for programmers
There’s a common misconception online that Github is a social network like LinkedIn or Facebook, except for programmers. This is really missing the point of Github, which is to be a tool that enables software development. Saying Github is a social network is like saying an art studio is a social network. Sure, you can be social there, but the main point of an art studio is to create art, and many artists will work alone in their studio. Github is similar - it’s a place for developers to work on code. While there are some social-esque features, like following open-source projects and developers, Github lacks even basic social network features like being able to send a message to another user.
Ok, so what is Github?
Github is a place where developers can store the code for programs they’re working on, and collaborate on that code with other developers. It provides a free place to keep all the versions of code and easily see all the history of every change made. Git, which Github uses behind the scenes (and where it gets its name), keeps track of every change to every line of code in a project, and makes it easy for developers to make changes to the codebase with confidence. For a programmer working on their own, Github is a powerful tool that makes it easier to keep track of their code, and is even better at coordinating code changes across a team of developers. Github makes it possible for hundreds or even thousands of developers to work on the same codebase without completely clobbering each others’ changes and maintaining a high bar for code quality. We won’t go into detail about how this works in this article since there’s a lot of great articles about that already if you want to learn more.
Github itself was founded in 2007 and grew rapidly, to the point that today it’s a nearly ubiquitous tool among software engineers. Originally, Github made it free to host public open-source projects, while charging for private code repositories. In 2018 Github was sold to Microsoft, and has also now made private code repositories free as well, while charging instead for some extra features for teams and companies. Today, nearly every organization that publishes code publicly uses Github, from companies like Google and Facebook and even national governments!
What’s Open Source?
Github really took off due to its early embrace of open source software. Open source just means that the code for a piece of software is openly available for everyone to view, and is often free to use as well. Open source software benefits from having thousands of developers all over the world working to make the software better and as a result, popular open-source projects tend to be far higher quality than anything a single engineer can build on their own. Using open source code is like going to the store and picking up a bag of flour in order to make a pizza, vs trying to grow the wheat yourself and then mill it into flour for your pizza. Making your own flour from scratch takes a huge amount of time, and the result is probably not even going to do as good as what you can buy in the store. The same is true of open-source code, with the added benefit that it’s also completely free!
In open source, too, Github shines. Github initially got huge traction by making it easy and free for developers all over the world to share their open-source code and contribute to code posted by others. Nearly every open source project in existence has a Github page, which in turn means Github is indispensable in the daily work of software engineers, if for nothing else than to find high quality open source projects to incorporate into their work. Often the best way to evaluate the quality of an open source project is to look at the project’s Github page to get a sense of how much activity there is and see how many stars the project has (stars are the equivalent of “likes” for a project on Github).
Of course, the collaboration tools that made Github ubiquitous for open-source projects are just as useful for private companies, and a large portion of private companies use Github for their code management as well.
I’m not a developer, why should I care about Github?
If you’re not a software engineer yourself but you work on a product with software engineers, it’s still useful to get comfortable with Github. Github is ground zero for all code changes as apps and software products are built. It’s helpful for both engineers and product people to offer feedback on new features as they’re added, when making changes is still relatively easy. The longer into the development cycle a feature needs to go before it can get feedback from product and managers, the more expensive it becomes to change.
Github has been a revolution in the software development world since it was launched in 2008, and shows no signs of going away anytime soon. Modern software development is nearly synonymous with Github, so it’s a great tool to learn!