Over the past couple weeks, while speaking to various individuals in the community about what we are doing with Yukōdit, I have had quite a few people ask: “What is Coding?”
It’s a great question, and I thought a bit about how I could answer such a question in one sentence. It wasn’t easy, but this is what I came up with.
Software development (aka: Coding) is the science (art?) of telling a computer what to do.
Not perfect, I know…but I think it conveys an important message. There is, however, so much detail below that statement that I think we should delve deeper.
Many of you out there may still be wondering:
(a) what is it that a software developer actually does?
(b) why would I want my kid to learn to code?
Let’s start with (a):
Computers are big fat, power-hungry idiots.
A computer has no inherent intelligence. It is incapable of making decisions for itself.
The only capability a computer has is to execute the instructions that a programmer has written for it in the language it understands. These instructions are generally known as an algorithm. 1
Algorithms are sets of instructions to the computer that are written in a computer language.
A computer language is a set of words (called tokens) that a computer can interpret as commands.
As an example:
Imagine a computer programmer wants to write some text on a computer screen, s/he might write a computer program that looks something like this:
PRINT “DO YOU WANT TO PLAY A GAME?”
The computer programmer then gives the list of instructions to the computer (the algorithm) and tells it to execute them.
The computer willingly does so, as it understands that PRINT means “take the text enclosed in quotes following this word and write it on the screen.”
The programmer sits smugly at the keyboard as they imagine that they are Matthew Broderick and/or Ally Sheedy in the 1980s.
Or maybe that’s just me.
From a tiny acorn a mighty oak will grow
Anyway, obviously computers are capable of far more than repeating cool quotations from 80’s movies.
A typical computer language has tens to hundreds of words (tokens) that are used to give commands to the computer. A developer who knows a language will also understand how to combine the words into a syntax that is able to be interpreted by the computer.
The point I am trying to make is that the programmer writes code, gives it to the computer, and the computer does exactly what it is told to do.
No deviations or choices are allowed.
If the computer is wrong, the programmer is wrong. This is a harsh reality to face as a young programmer, and it is especially frustrating those nights at 2AM when a deadline is staring you in the face or an angry customer is on the phone asking you why your software is broken.
The truth is, somewhere along the line, a programmer was wrong.
To be totally honest, though, that is why it is fun!
Why should my kid learn to code?
This is what leads me to (b) – why would I want my children to learn how to code?
As parents, we all want the best for our child. We also love challenging our children and encouraging their creative and technical sides.
Software development is a well-paid, growing and exciting industry in need of talented kids who love to design and create.
Learning to code doesn’t mean that your child will be a software developer by trade…maybe they will, maybe they won’t.
The important thing is that it provides a way for your children to participate fully in the digital world into which they have been born.
Learning to code is one of the most practical gifts that you can give to your children, as it will provide a solid foundation for them to succeed in our digital world.