A computer program, otherwise known as software,
is made up of ones and zeros.
This is known as binary and it is the only thing the computer understands.
So how do we get from an idea to the finished software?
Writing the binary yourself would be slow, tedious, and take way too long.
Instead we'll use something called source code.
Source code is the instructions to the computer that is meant to be human readable...
...with a little practice that is.
Source code can be written in one of many different programming languages.
These are the main ones in use today.
Here's a very simple program written in a programming language called C++.
This program simply displays the words "Hello World" to the computer screen.
In order for the computer to actually run the program
the source code must be turned into binary.
This process is called compiling.
Once we have our ones and zero the computer can then run the program.
If there are any mistakes in the source code
such as a misspelled word or missing punctuation mark
the compile will fail and you won't be able to run the software.
Simple programs can be written by one developer in a reasonable amount of time.
However, professional software may involve hundreds of developers
and take a matter of years to complete.
A large software project like this, would be split up into hundreds or even thousands of files.
Being able to collaborate is essential for their success.
One concept that allows them to do so is called revision control.
Here's how it works.
All the source code for the software is stored on a server.
Each developer stores a copy of these files on their machine.
They can then make changes to one or more files
and then submit those changes to the server when they are ready.
The server stores a detailed list of what files were changed,
what those changes were,
and who submitted it.
If at any time the program gets into a bad state
the developers can undo the changes until the program is working correctly again.
Software developers try hard, but there are always a few problems with the code.
We call these problems bugs.
Even after a piece of software is released to the public
the software developers must continue to fix bugs and further improve the software.
This is why software has updates or new versions that come out periodically.
Software can be created in two different ways
the most common is proprietary.
The software is owned by a person or company and sold to make money.
The source code is not released to the public
only the finished product is.
Anyone wanting to change the software will have a difficult time without the source code.
The second approach is called open source.
This usually means the program is free and that anyone can get access to the source code.
You might be surprised that many of the programs you already use are also open source.
Many times the developers are volunteers who are passionate about the software they are creating.
Often times they don't even get paid.
The software may be free, but keep in mind
that donations are rarely turned away.