Today, we are going to talk about coding. Specifically, I’ll answer the question: What in the world is coding? We’ll also cover a little of what happens when we code.
Before you read on, though, I want you to right-click in your browser window and choose the “View Page Source” option.
When you do that, you get a view of the web page code. Which is to say that, by peeking behind the curtain, you’ve now seen the language that tells your computer how to make this web page look as good as it does.
The first time I actually looked at the code in a browser window was revelatory for me. Here was the internet in the internet’s own voice! I didn’t understand most of it, but I could pick out snippets of words and phrases that looked familiar. There were a few font names that I recognized, and I understood pixel sizes more or less. The rest of it was alien to me. Here was the language my computer spoke, or so I thought.
If you’re planning on learning to code, it’s worth thinking through the mechanics of coding. Knowing what exactly is happening when you code, what it means when we say someone is coding, what the difference is between coding and programming, what languages you may end up coding in, and how to get started coding, will help you be a better coder.
Computer Coding for Beginners
There’s a lot of hype around coding, so let’s start by clarifying what coding isn’t. I mentioned above that when I first saw the source code of a web page, I thought that I was looking at the language my computer spoke. This is a common way of explaining what code is, but it’s not exactly true.
Your computer doesn’t understand the nuances of language. In fact, the only terms your computer understands very well at all are “Yes” or “No.”
Imagine you are building a bridge with a group of engineers. You’re on one side, they are on the other, and you need to communicate to finish the project. The problem is, your phone has died, and your radio only works one way. All you have to communicate with them is a flashlight. One flash for yes, two for no. It will take a while but, eventually, the bridge will be built.
This is how a computer communicates with people. The language the computer speaks is binary code, a mathematical language of ones and zeros. Just like the flashlight, there are only two options. The computer understands “on” and “off,” and nothing else. So unless you’re typing strings of ones and zeros into your text editor (which you’re not), you’re not really writing code in the computer’s language.
But if the code isn’t written in the computer’s language, what are you doing?
Computer Code is a Language
Think about writing code like this. You don’t speak binary, and the machine can’t come close to understanding human languages. So, for you to tell the computer what to do, you need to design a translator that can act as an intermediary. This is the purpose of code. Code is a form of writing that isn’t binary, that is easy to learn and interpret for humans, but that the computer can still understand.
For most of the programs you’re likely to work on, the code you write is actually a step removed from the binary code that the computer will process. You’ll write in a code that pulls from human language. Programs built into your computer then translate what you’ve written into binary. It’s like if you needed to speak to someone who in Mandarin, you only know English, and the only translator you could find spoke only Mandarin and French. You would need another translator to translate from English to French and then the first translator can translate French to Mandarin, hopefully without meaning getting lost in the process.
What sort of blows my mind about all of this is that it somehow works. We have programs translating programs for a machine that only speaks binary. This is an insanely complicated process, yet here I am typing human words on my binary speaking computer.
There’s a lot more to it, of course, but these are the essential things to know before you start a conversation with your computer through code.
Coding vs. Programming: What’s the Difference?
When I was growing up, my dad and all the people he worked with were computer programmers. This framed how I understood people who wrote code for computers for a long time: They were programmers.
More recently it seemed like there was a shift in either the terminology or the industry. Suddenly, people who wrote for computers were coders. This shift has prompted me to wonder whether there is any difference between what programmers do and what coders do.
Many say that there really isn’t a difference between a coder and a programmer at all. It’s a difference in terminology rather than activity. If anything, in my humble opinion, saying you are a coder is slightly more general than saying you are a programmer. Since to me the word programmer is often associated with computer programming (and computer science) courses at a university. Whereas, coding feels like something everyone can do.
Jonah Bitautas, the product designer behind Cards Against Humanity, makes an interesting point when he argues that there is a real difference and it’s rooted in issues of scale. Essentially, a coder is someone who writes language for computers. A programmer is someone who oversees the writing of a whole program — that is to say, an entire project’s worth of coding.
At the end of the day, there is no formal definition of a coder or a programmer. And so, it’s completely fine to use these terms interchangeably: you can say “I’m a coder” or “I’m a programmer,” and no one will judge you for it. Unless during the rare occasion on Hacker News — the programming news website where seasoned (and opinionated) coders hang out. Sure, they might say something. Just brush it off and keep on moving on.
Types of Coding Languages
When I asked you to open the source code for this web page, it took you to lines of code written in HTML. Short for Hypertext Markup Language, HTML serves as the bones of the Internet. It tells web pages what should be displayed and where and how they’ll fit within a given style sheet. It also tells your browser where to look for content like images and videos that you may want to include in your project, as well as where to find the style sheet you’re working off of.
One thing to be aware of: HTML technically isn’t a “programming language” because it doesn’t use logic based expressions like, let’s say, Python does. HTML is a markup language — but much like the debate of coder vs. programer vs. developer — you’re unlikely to be faulted for calling it a programming language, especially if you are new.
CSS is the stylesheet. If you open up a CSS file, you’ll see a lot of references to font families, colors, and font formatting styles (like bold, underlined, or italics). When your browser loads a page, the HTML tells it “Make this part of the page look like a header. OK?” It also says “Here’s where to look to understand what a header should look like.” This will always be a CSS file.
Ruby vs. Python
We actually already have a baller post on the differences between Ruby and Python, but the short version is that these two programming languages are often used to develop web applications.
Which is to say, they create programs that allow web pages to do things at a high level of interactivity. If you want to, for example, build a bot to create an automatic payment system for your clients, you’ll probably use one of these. They’re great programs to learn to work with because they are extraordinarily versatile and there is a lot of extant code for you on the web to begin playing with this.
How to Learn to Code?
There are a number of parallels between learning to code and learning to speak a new (human) language. The most frustrating similarity is that, as with learning any language, you have to spend time practicing!
Some people who are just natural coders, sure, just as there are people who can speak Italian after listening to a couple of operas. For the vast majority of us, though, learning to code is a process of trial and error. Coding is a skill. It takes time, and it helps to have guidance.
Luckily, there are many affordable online courses for learning to code! If you’re new to coding and don’t know where to start, I suggest Programming For Non-Programmers. This course will give you the vocabulary and perspective necessary to make sense of the coding world.
If you’re ready to dive straight into learning to code, Learn Python. It’s what all the cool kids are doing these days. Python is a great language that you can use to build nearly any website or app you’d ever want to make. Don’t believe it? Google, Uber, Netflix, and many more are just a few companies using Python.
Tight on cash? There are dozens of websites where you can learn to code for free. So now you have no excuses.