A Beginner’s Guide to Open Source

Basics of Writing Software

Your browser needs to be JavaScript capable to view this video

Try reloading this page, or reviewing your browser settings

This video segment describes and distinguishes source code versus machine code. These are important for understanding later material.


  • Source code
  • compiler
  • machine code

About this video

Karl Beecher
First online
03 December 2018
Online ISBN
Copyright information
© Karl Beecher 2019

Video Transcript

Karl Beecher: Before we start talking about Open Source Software per se, let’s make sure you have to speed with some basic programming ideas that you’ll need to know. Now if you already know how to program or if you’re already familiar with the whole process of writing software, then you can safely skip this first segment and just jump straight to the next one. Otherwise, let’s go ahead and learn a few new terms. Now when programmers write software, they create a set of instructions for the computer in a human readable English-like language such Java, Python, or Visual Basic. Instructions in this form are called source code. However, computers don’t actually understand source code. They only understand machine code, which is a binary language, you know, those infamous strands of ones and zeroes.

We could write instructions directly as machine code, but humans find binary extremely difficult and inconvenient to work with, which is why we have source code in the first place. So to enable computers to understand our instructions, source code, first, has to be transformed into machine code. This could be done automatically in a process called compilation. By using a special program called a compiler. Your source code instructions are turned into machine code. At the end of the process, you have two things. The original source code and I call it machine code program. So put simply, a programmer writes source code and then compiles it into machine code program for the computer to execute. Now, why is all this important? That’s because the availability of source code is essential to Open Source Software.

When you as a user have only a program’s machine code, it’s practically infeasible for you to alter that program’s behavior or even to discern precisely what that program is doing. Having all these abilities is what Open Source Software is all about. And that depends on the availability of source code. And you might imagine that a program’s source code is always readily available, but in the next segment we’ll see how that’s not necessarily the case. And we’ll learn why there’s even a need for Open Source Software movement at all.