In summary, computer just retrieve and store 1's and 0's and do simple operations with them. How are people able to accomplish so much with such simple operations? Because they built layers of languages on top of these operations so that the "higher-level" languages can be used effectively by humans but can be precisely converted into 1's and 0's for a computer.
- Machine Language - All data and operations in a computer just consist of 1's and 0's - the machine language. There is a different binary code for each operation the computer performs, which is 'physically' converted into the desired result, as seen in the previous node.
- Assembly Language is a convenience for humans, so they can use simple code words for the different binary operations. E.g. one can write "ADD" for addition instead of "011". These instructions can be easily converted into binary for a computer to run.
- Medium-level Languages abstract away the actual physical parts of the computer so the programmer can deal with concepts instead of actual machine instructions. This makes it much easier to write and maintain code. This code written is then converted into different machine code to to run on different machines. The most popular medium-level language is C and many higher languages get converted to it.
- High-level Languages take care of even more 'physical' details for you, so you don't need to worry about things like "Memory Management". They are all you need to know to create ordinary programs like a web or phone app, and they are the focus of this module.