Imagine your friend is driving to the movies, and you're riding passenger. You have the directions pulled up, and you’re telling the driver what to do. For example:
“OK, turn right in two blocks.”
“Now, get onto the highway.”
“Take the next exit off the highway, and you’re there.”
The driver follows your directions and does the things you instruct. For example, accelerating or slowing down the car, or turning right or left. You two depend on each other and share a special relationship. What value are driving directions without a driver, and what good is driving with nowhere to go?
This is a lot like coding. As a coder (AKA software engineer AKA computer programmer) you are the one with the directions. You know what things to do. For example, if you’re creating a new app maybe uploading a photo and posting a status are what need to be done.
Your computer is the driver in our story. It doesn’t know what to do much like your friend driving doesn’t know what directions are on your phone. But once given instructions it does the things you tell it to.
You may be asking yourself why this separation is even necessary. If we already know what needs to be done, why bother giving instructions and not just do it ourselves? This is a fair question. I think a fair response is to ask if you know anybody that can run 80mph, or do 1 billion tasks per second. I can’t, but a car or computer easily can. In short, computers can do extremely powerful things that people cannot, but computers don’t know what to do (and that’s good, because imagine a world where computers decide for themselves what to do—could be pretty scary.) So we tell computers what to do through our instructions: code.
Last but not least, what the hell are coding languages? Maybe you’ve heard about coding languages (AKA programming languages) as a buzzword, or from watching the Matrix. Going back to our story, when it’s time to give a new driving direction to your friend, you speak up and tell them (or at least hopefully, because otherwise you’re bad at giving directions lol.) Maybe you gave your directions in English, or Spanish, or Sign Language, or a series of grunts and tongue clicks. The language is not as important as the directions themselves. The point is that you are communicating your instructions through a language. Coding is the same way. There are a bunch of languages to choose from, and sometimes certain languages are better suited to the type of instructions you want to give.
In a nutshell, that’s all coding is! A common misconception is that coding requires complex mathematical knowledge, or a deep interest in science. This couldn’t be farther from the truth. Coding can be as simple or complex as you want it to be, and that usually depends on what you’re trying to do. If you’re trying to solve a complex math problem, then sure your code will be doing some complex math stuff. But unless you’re working for NASA, not everything is going to be heavy math or rocket science. In reality, most things aren’t that.
Now you understand at a high level what coding is, but you may still be wondering why any of this matters? I briefly explore why coding matters, and the crazy benefits of learning to code in part 2 of this series here.