I'm experimenting with the audience/style I want to aim for on this blog. This post is geared towards a non-technical audience - if you're interested in learning about how tech works but don't have much background in it, read on!
The Internet has opened up a lot of possibilities for collaboration. Most people are familiar with some of these - Wikipedia, collaborative editing with Google Docs, meetings over Skype, and so on. These are all great ways to work together using software that someone else built. Using tools developed for collaboration on code, developers can work together with people they've never met to make software. Yesterday, I made my first contribution to open source software. Cool - what does that mean?
Open source software is software for which the source code is available for anyone to look at. It might be developed by just one person, a small group of people, or even as a collaborative effort by thousands of people around the world. People can look at the code, make changes, and then distribute the changes themselves (under certain licenses) or ask the project owner to include their changes in the original source code.
One of the main tools for developing open source software is Github. People use a version control system called Git to keep track of the changes that they make to their code over time. Have you ever edited a report, and finished with a bunch of files named "Draft-1", "Draft-2", "Draft-3", and so on? You've made some improvements, but want to keep track of what you've done just in case. This kind of history tracking is really useful while programming, and using Git helps do it cluttering up your folders. Github acts as a centralized hub ('repository') for source code & its changes over time. You can keep your code private, or share it with the world. (If you want to know what that looks like, check out my public repositories here. A couple were for homework, and a couple are little projects I've worked on.) The people you're collaborating with - or anyone, in the case of public projects - can make a local copy of your files, make changes, and suggest changes for you to merge into your master copy.
Anyways, I was looking up some syntax for the Markdown language when I came across a small error on this open-source website. Under Blockquotes, the text said to use a less-than symbol, but the example showed a greater-than symbol. Since this was the syntax I needed to know, I figured out that it really should be a greater-than symbol. At the top of the website, there is an "Edit on Github" link. With less than 15 minutes of effort, I was able to copy the website project to my computer, change the wording, and submit a request to the website owner to implement the change. A few hours later, I got a notification that the change had been accepted.
My contribution really wasn't that important, but it illustrates how collaboration can help improve the Web for everyone. The process I used to make a change request is used millions of times a day to improve millions of applications, making the high tech world we live in more useful, easy-to-use, and accurate, one little change at a time.