This is a very short guide to programming. What is programming? it asks and tries to answer.
Who is the guide for? I suppose the answer is myself. Not myself now, but me when I first broached the subject of computing, long ago in the early 1990’s.
My own background studiously avoided the technical, which was an intellectual black hole. For Christmas 1979, or maybe it was 1980, I got an Amstrad 464. That is factually a computer, but for me it was a tape machine that played games. How it worked was a mystery to me, as was any technology. Television was more or less magic, for example how the picture appeared on the screen. The Amstrad 464 was a sort of television that played games.
When I became curious about computers in the early 1990’s — and I cannot remember why this was — I still had the 464. As I remember, I started to try and learn about computing as follows. I bought a few issues of ‘Byte’ magazine, which seemed to be an authoritative voice; I took out a book about BASIC programming from the local library; and I bought a cheap (but very good) book on the same subject. Byte taught me that computing was full of impenetrable jargon and incomprehensible acronyms, but nevertheless with a couple of books about BASIC programming and an Amstrad 464 and its BASIC interpreter, I was at least on my way.
Now, back then computers were not what they are today. Computers were not part of everyday life. Is there anyone now in a similar position to the one I was in then?
I do not know, but me back then is a clue to the target audience for this guide. You know nothing at all about computers, at least at the level of programming them, but you would like to know what programming is and what computers are.
This is absolutely not a guide for how to program. You learn how to program by writing code and actually writing programs. Writing code is knowing to how to write the line of code you are writing now and getting it to run. Writing code is always in the now. It is never theory. Planning code, yes, but not writing it. Write it, run it. That is the ideal, but often the code won’t run, or you don’t know something you need to know to make it run. A guide on how to program needs to give you the whole picture, and what you don’t know you look up.
But before you can learn to program it is at least useful to know what a program is and what a computer is (aside from being a magic box flashing images at you as you touch it). To understand what a program is is not to know how to code. Therefore the code examples in this guide are written at first in simplified ‘made up’ languages and even when I discuss real programming languages I have left out most of the gory details. For example, although boxing and unboxing is an essential topic for a programmer, I have deemed it utterly irrelevant for understanding what a program is. All code examples have been made as simple as possible and are intended to be read in the text, not run in a code editor.
In a nutshell, this is a programming book for someone who has never programmed but who is at least a little interested in what programming is.
Please note that this wip series (‘What Is Programming?’) is now closed. The content has been moved to book form where the text has been edited and finalised.
The book ‘Computer Programming – A Guide for the Perplexed’ can be downloaded here.