Programs and how they operate within hardware:

To keep things simple: Hardware only understands 0's and 1's, otherwise known as Machine Code. Next comes assembly language which has a direct 1:1 relation to machine code, making it possible for all the higher level languages to exist thereafter in the hierarchy. 

Next come the High-level languages which are compiled.
C++, Java, etc. These are written and readable by humans, though machine code is as well - just it would take exponentially more time to do so(thats why we have a hierachy of abstraction to be more efficient). However, in order for them to run with the hardware, the program first needs to be compiled into machine code. Thus, with compiled languages - you write it, then compile it, and finally run it. Compiling == translation.

Finally, we have the highest level of abstraction: Interpreted lanaguages, i.e. Python. You do not compile python code, rather, the python executable(which has been compiled already - the file you install when installing python) interprets your code in real time, line by line and executes whatever functions written.That's why it is called interepeted. Your code is interpreted by an executable and the respective machine code executed thereafter.

Think of the python exe as a human translator. You give a command in Polish(python code), the translator hears you and interprets what you said, then translates it to the foriegn audience(hardware) for them to understand and execute your command. This means that any python script you write can run on any type of machine so long as the python exe is installed. This is why python is so universally hailed and why it is the future of the work place.

Python is interpreted line by line. The simplest example would be this - you cannot use a variable that hasn't been initialized yet:

	var1 + var2
	var1 = 5
	var2 = 10

won't work because both variables are being initialized after the operation.

	var1 = 5
	var2 = 10
	var1 + var2

will work because you have initialized both variables before the operation.

Throughout this tutorial, I will be giving short sentence explanations, provide psuedocode examples for simplicity, and engage the student through interactive code examples.


Quick Notes:
#this number sign in python means a commented out block of code. All comments are skipped over by the interpreter. They can be used as short notes in long programs.
The psuedocode is to make the examples as short as possible but also showcase what is being explained effectively. 

