When I was a kid I dreamed of becoming a computer programmer so that I could write computer games, but unfortunately that dream never came about, despite the fact that I did manage to write computer games when I was a kid. Well, come to think of it, while I am not a 'paid' or 'university qualified' computer programmer, I must say that I did end up managing to write computer games, not only in BASIC (Beginners All-purpose Symbolic Instruction Code), but also using game development programs such as the Bards Tale Construction Set and Neverwinter Nights (which came with its own construction set). In fact, I ended up spending so much time developing a very complex world with the Neverwinter Nights construction set that I have pretty much exhausted the last of my desire to write computer games, and so these days, even if I do play some games, it tends to be a short shoot-em up, usually on the Commodore 64 emulator, and usually this game:
Anyway, the reason I mentioned that was because as a kid, to assist me in writing computer games, I wanted to learn how to program in Machine Code, or Assembler as it is more commonly known (though Machine Code and Assembler are slightly different). What I did not understand as kid, but what I have come to understand now after reading this book (for the first time by the way, because as a kid I ended up being too distracted by the games I had on my computer to actually begin learning how to write in machine code) I have come to understand the difficulties of such a task. With what I have learnt from this book, the programs that I wrote when I was a kid would have actually been much easier to write in BASIC than in machine code because the difficulty with machine code is that you are telling the computer, using its own language, what to do, and that is not an easy task. In fact, the thing about BASIC (and other languages such as Java, PHP, C++, et al) is that they are designed so that we humans can tell a computer what to do without resorting to its language (which at its core is a series of 0s and 1s, which represent an on state and an off state).
The next step up is what is called Hexadecimal, which is a numerical set that uses a base of sixteen (as opposed to 10, as we are used to, namely because a computer actually works in sets of 8, as opposed to 10, which is why when you go and purchase memory you end up purchasing them at 8 gig, 16 gig, 32 gig, etc). Anyway, here is a program, in the computer's language, that is used to add the number 4 to the number 2:
So, if that doesn't make any sense to you, then you are in good company because I assure you that that collection of letters and numbers makes no sense to many of the computer scientists and IT gurus out there today. The reason is that, as I have mentioned above, because many of them simply do not use, or even need to use, machine code since much easier languages have already been developed to remove that necessity. These days the only reason that one would resort to the use of machine code is when one needs to do something that these other languages cannot do, and what is then done is that a program is created by the programmer so that if the need to do that again comes about a simple command is then used without having to go back and use machine code once again.