If you've been hanging around newsrooms or journalism classrooms lately, you've probably heard the word GitHub. It might sound a little scary and mysterious, but even the most traditional pen-and-notebook journalists should know about this super helpful tool (to say nothing of aspiring newsroom programmers).
So, what, exactly, is GitHub? Why do you need to get it?
GitHub is a social coding site. Designed for the purpose of democratic and collaborative coding, GitHub allows multiple people to work on the same code at the same time.
You can host your own code (called a repository), fork others' code and suggest changes (more on that below), and accept changes and merges into your own code.
Have you ever seen Octocat (GitHub's unique cat/octopus mascot) badge on someone's portfolio? That's GitHub. Clicking on that will lead you to someone's GitHub profile, where you can explore all of their publicly hosted code and as well as other projects they've played around with.
But beginners should take note: GitHub isn't Git. And knowing the difference is crucial to developing a more productive workflow. Git is revision control software, originally developed by the Linux community. GitHub is a web-based hosting service that takes Git's software and pairs it with an easy-to-use interface that requires almost no previous coding experience to use.
Get familiar with code
GitHub is an ideal platform for beginning coders because the site is easy to use and version control can act as a safety net as you try new new things. And if you can't quite figure out where you've gone wrong, the site provides users with plenty of avenues for easy troubleshooting on new projects.
David Eads of the Chicago Tribune Newsapps team says you can think of GitHub like a filing cabinet. After a project is published, it's easy for others to go back and examine the code, learn from it and make it better. Moreover, GitHub's Gist feature is a quick way to jot down bits of code you want to remember or show to someone for another opinion.
And don't forget, GitHub is called a social network for a reason. Newcomers can watch code as projects take shape or troubleshoot with more experienced users. Groups like OpenHatch aim to answer coding questions and maintain a set of projects on GitHub that are helpful for beginning programmers.
Beyond GitHub's operational utility, it serves as yet another way journalists and programmers can work together and create innovative projects.
"In a lot of cases, journalists and programmers need to figure out how to hang out in each other's worlds better," Eads said. As more journalists embrace GitHub as a way to improve stories, they'll develop a new kind of news community, centered around collaboration and code – truly a news nerd's nirvana.
Before diving into GitHub, get a leg up by understanding its litany of technical terms. You'll also want to download Git and the GitHub native app for either Mac or Windows. GitHub explains every step on their website.
- Commits — This is simply a change you make to a piece of code, or a set of related changes made on multiple files.
- Forking — Forking is simply the copying of an existing code repository at a specific point so you can add to it as you see fit. The original code still exists for the creator, but your fork may spin off into a lively new project. This means that any project publicly hosted in GitHub can be edited by anyone. For example, if you find a typo in the ProPub Nerd Guide you can change it.
- Pull requests — Pull requests let users know what changes you may have pushed to a particular repository. Once you send a pull request, other users can review your changes and incorporate them into their repositories.
Journalism projects and resources to get you started
Getting on GitHub will open a world of new projects and applications you can repurpose for your own reporting. "Anything cool you can find on the internet you can probably also find on GitHub," said Zach Wise, a faculty collaborator at the Lab. Adds Knight Lab student fellow Tyler Fisher added, "If an open-source project isn't on GitHub, there's a bit of a concern at this point."
To get started look at these projects and resources for the burgeoning code curious journalist. Several news apps team filled with coding all-stars have compiled guides that define their particular style and manifesto when it comes to creating interactive projects. There are also a bevy of cool projects that can help you trick out your slideshow style, build a better website or flesh out your coding skills.
- NPR Apps Guide
- ProPublica Nerd Guides
- The Chicago Tribune TribApps Guide
- Twitter Bootstrap — A front-end framework from the people at Twitter. Bootstrap makes it easier to design a sleek and responsive website without the busywork.
So go on, get GitHub and get started.