“Code”, or “source code”, is a term used in plain language to talk about the texts that programmers write and read in programming languages. There exist thousands of programming languages, but only a dozen of them are popular beyond a few hundred users of the language. Some of them are used by hundreds of thousands of people. In a manner of speaking, computers also “read” these same languages and they can execute the instructions explained in code. Executing, or running, code which is first written by people and then later, and many times over, executed very efficiently by computer hardware seems to be the point of software. It takes time to learn a language. Like a normal language, if you already know one language learning the next one may take around two weeks to become a fluttering novice and around ten years to reach utter fluency as a master of the language.
If you do not know what these programming languages are like at all, then you might think that some kind of message is being transmitted in some kind of “coded” fashion. And as a result you would also conclude that reading this code requires a “decoding” of some kind, like some kind of secret which must be unlocked. The word “code” seems to suggest that programming is some kind of alienating experience. That conclusion is wrong, and that image of programmers working on secrets, tediously writing and reading numerical code, is harmful. That image, however, is constantly projected by the mainstream media and the entertainment industry.
Understanding what programmers really do is important, because what software does is influencing our daily lives in increasing scope and intensity. In fact, it is today quite hard to make a list of things we do and experience which are not influenced by some sort of software. Since programmers write all this software, they are accountable and we all must engage in conversation with them. Understanding what “code” is and what “coding” entails, paves the way for a good conversation.
The word “code” does not in the least mean the message is intentionally garbled
This choice of terminology was to indicate that for computers to consume and interpret software, they have to associate numbers with actions. Today’s computer hardware can simply not process anything but numbers. Hence they are called “digital computers”; they are in a way counting extremely quickly on their abundantly many fingers. When we talk about “the computer”, namely the core thing without any of its peripheral input and output devices, that is all it can do.
To make computers process the instructions we want to give them, these instructions must be numbers. For example, the instruction code could be that, for a specific model of computer hardware,
1 means to copy a number to elsewhere, and
2 means to multiply two numbers,
3 means to jump ahead to another instruction, etc. Since digital computer hardware is (accidentally) binary -a transistor switch is either on (
1) or off (
0)- the codes do look like
3. The entire set of codes is called the computer’s “instruction set”. Computers have dozens to hundreds of instructions in their instruction set, depending on their particular model.