Everyone Should Learn To Code
Coding 101Written by Jack Sutherland
If you're not a coder, at some point you've probably seen computer code and thought to yourself "How does anyone understand that robot hieroglyphic-looking gobbledygook!"
As a programmer with nearly 20 years of professional experience in a variety of work environments, I believe it's a common misconception that computer code is akin to rocket science. That is, something that only the ultra-nerdy and wildly analytical mind can tackle. As coders, this superstition works to our advantage. Having co-workers not understand what you do, often means you have more autonomy, less micro-managing, and the ability to set your own hours. When clients and co-workers don't understand how long programming tasks should take, you get to determine how much time you need to do your work.
If you work in technology, this misconception also leads people to mistake you as some sort of computer savant, capable of fixing any and every computer problem. The truth is we often only know a very small subset of a computer's infrastructure or coding. One of my favorite t-shirts I bought after seeing the rapper (and slightly nerdy, comedic genius) Lil Dicky wear it, appropriately states "No I Will Not Fix Your Computer". It's amusing because I get asked this ALL THE TIME, and I often have no clue what's wrong with the person's computer.
If more people took the time to learn a little bit of code, they'd better understand that me being able to build a website, has nothing to do with why you're getting that blue screen of death. So here's a few reasons why despite your level of familiarity with those gobbledygook-hieroglyphics, you CAN and SHOULD learn to code!
Programming Syntax Is Designed to Be Easily Read and Understood
If you can read sentences in paragraphs, you can read code.
If you've seen the 1990's sci-fi movie hit, the Matrix, you should remember those indiscernible, random characters falling down the screen... It makes for interesting storytelling, however this is NOT what computer code looks like.
In school or in documentaries you may have seen old footage of computer code written as a series of 1's and 0's, or punch cards with punched and unpunched circles... This IS what computer code looks like. It is called machine language, a binary set of instructions, represented in groups of boolean 1/0, on/off or true/false symbols, that a computer can read as data or an operation to act on. This language is extremely difficult and tedious to read and understand. But here's the hack... Coders NEVER write or read machine language. I don't know the exact number, but I'd bet only about 0.01% of all professional coders you meet have worked directly with machine language.
To make programming easier and more efficient, programming languages exist in layers with something called a compiler between each language. The compilers job is to convert the language of one layer into the language of another automatically. Coders write code on the top layer, which is very easy for English-reading humans to understand, the compiler converts that to another language called assembly language, and eventually that is converted to machine language that the computer can understand. It's like a unilingual English speaker, talking to a unilingual Spanish speaker, with an interpreter (the compiler) translating. And this all happens within seconds so the coder can run his code immediately while writing it to see if it's doing what he/she intended it to do.
Anyone Can Read Code—Provided You Speak English
For reasons I won't go into in depth on in this article, high level languages that coders write is based on the English language. For example, in HTML 2 paragraphs of text with a line break in between would be represented with a <p> for the paragraphs, and a <br> for the line break. Like this...
<p>Hi, my name is Jack.</p>
<p>No I will not fix your computer!</p>
That HTML markup would produce this on a webpage...
Hi, my name is Jack.
No I will not fix your computer!
For English speakers it's pretty easy to remember that "p" stands for paragraph and "br" break. And for most other Indo-European languages the word for paragraph also begins with "p", however, the word(s) for "line break" usually do not have a "br" in them, making this more difficult. And the characters in East-Asian languages obviously have nothing like a "p" or "br".
But even if the English equivalent isn't familiar to you, learning to understand...
<p>Hi, my name is Jack.</p>
<p>No I will not fix your computer!</p>
is much easier than learning to understand...
0110 1100 0011 0101
1100 0011 0110 0101
0110 0110 0011 1001
0101 1001 1100 1010
Code Syntax Is as Logical as Everyday Life
High-level programming languages use logic that is similar to the logic humans use in every day life. For example, you make conditional decisions all throughout the day. Like deciding what to eat for lunch. You can choose to have a sensible salad that is a little boring, but will provide nutrients and energy throughout the afternoon. Or you can eat pizza, which is delicious in the moment, but may put you in a food coma a few hours later. Using conditional logic is an integral part of programming languages as well.
Conditionals are usually represented by the words "if", "then" and "else". So IF I eat salad THEN I have energy, ELSE IF I eat pizza THEN I'm in a food-coma.
var myLunch = null;
var myVitality = null;
if (myLunch == "salad")
myVitality = "energy";
else if (myLunch == "pizza")
myVitality = "food coma";
myVitality = "hungry";
Imagine a drop down field on a web page form, where you select the type of food you want to eat. And when you select a food, it tells you how you'll feel.
Knowing How to Code Gives You an Edge in Life
Let's face it, we live in a world of technology! Individuals who choose to live "off the grid" are few and far between. One of my favorite books of the past 10 years is Yuval Noah Hurari's Homo Deus, which provides an insightful and thought-provoking examination into the future of humanity, and that future is on a collision course with technology. It's a New York Times #1 best seller, and at the top of many notable reading lists, in large part due to its theories on how technology will dominate our lives in the future.
But that's already happening today! We work 40 hours a week staring at computers, we get our news, organize our lives, educate our children and entertain our minds with computers on our desks, in our pockets and mounted on our living room walls. Studies suggest that on average adults spend 34 years of their life looking at computer screens, and that's not even including the machines we constantly interact with to improve our hearing, monitor our living spaces, the list goes on an on!
Since we are constantly surrounded by technology, knowing a little bit of code creates opportunities to enhance these experiences. Whether it's to get ahead financially or to be more efficient at your hobbies and activities, knowing code enables you to do all of it better. Aside from my 9-5 I've created custom websites, e-commerce apps, mobile apps, marketing web pages, etc, to promote, sell and maximize my personal endeavors (my band, my side-hustles, non-profits, etc) as well as for family and friends.
"But isn't that what WordPress and Shopify are for? So I don't have to code?"
And I often use website and app builders as well when an out-of-the box solution is all I need. There's no reason to reinvent the wheel, if a wheel is all you need. But sometimes you want a wheel with custom rims! Those rims are what make you stand out from everybody else on the road, who are also riding around on wheels... Or everyone else in town who are also using WordPress. Every single time I've used a website builder, I've also used my coding knowledge to customize and enhance them beyond their core functionality. WordPress, Shopify, and most of these online tools, give you the ability to either edit the product's source code or add modules with custom code. Doing so allows you to do things that make your website or application stand out.
You will also eventually need to do something on your website, app or e-commerce store, that the tool doesn't do out of the box. And if you don't know how to code, your only option will be to live without it, or pay somebody like me hundreds or thousands to do it for you. If you're comfortable with that please contact me via this form ;)
My kids also write code to hack their games and school assignments (within ethical limits of course). Many gaming apps even provide users options to enhance their game via code snippets. I wasn't introduced to code until I was in high-school. Kids nowadays are exposed to it before elementary school, without even being taught it in school.
Knowing how to code right now gives you an advantage. But not knowing it in the future will cause you to be left behind.
Interested in Learning to Code?
Here are a few excellent book recommendations for beginning coders or anyone interested in code, from Amazon's best sellers.
There Is a Shortage of Developers
For the near 20 years that I've worked as a coder, programmer and web developer, there has always been a shortage of talent. And actually, through the first 10 years of my career I jumped around from company to company, constantly chasing a higher salary, because no matter where I landed, there was always somebody else offering me more. Most jobs do not offer significant pay increases. But new jobs in high demand do! It's very common for entry level developers to double or triple their salaries in about 5 years by hopping from company to company.
This shortage also makes you valuable. It's sad to say, but when your company needs you and knows they'd have a hard time replacing you, they tend to treat you better. Some even bend over backwards to keep you. I worked for one company where the owner did not treat his employees well. This eventually resulted in me and a couple others taking other jobs, coincidentally at the same time. The owner knowing he was going to have a very hard time replacing us, and worried that if anyone else left he may not be able to recover, literally told the remaining developers "Please do not leave. Name your salary, and I will pay it". And that's exactly what happened. Those that remained asked for and wound up being paid considerably more than the market demanded. True story!
The lack of talent is only amplified when you look at racial and gender diversity. Men (specifically white men) outnumber women in tech jobs across the entire country. And while gender discrimination may be responsible in some pockets, as someone who's managed and hired development teams, there's just not many woman developers applying.
Without even getting into the "hire for diversity" vs "hire the best talent" debate (like in the hilarious HBO IT show Silicon Valley, see below), regardless of your gender or race, merely applying for a job as a programmer often makes you one of the most qualified... Because not many are applying!
Due to the demand shortage, as well as the naturally remote nature of computer code, there's also an increasing number of work environments allowing developers to create their own schedules and work remote. I've accepted job offers from 3 separate companies that allowed me to work fully remote, and others that were part-time remote. And the fun part was that I lived in Charlotte, NC, while these companies were in California and New Orleans. So on the rare occasion that they did need me to come into the office, it was an all expense paid trip to San Francisco or New Orleans! I once even asked to come into the office more often, just because doing so was so much fun.
As I mentioned before, the shortage and lack of people willing to learn to code also means you have autonomy. If you work for an agency or a company with a small tech department, clients, managers and co-workers usually do not question your work because they do not understand it. They need you to explain it to them, but how you did it is totally up to you. For the sake of producing quality work, many development teams look for ways to peer-review each other's code within the development team. But the ability to make your work your "baby" is very rewarding.
This means hour estimations are also under your control. Not to say workloads can't get hectic, but when you're asked how long something will take, you can ask for however much time you need, often without question, because nobody else understands how long it should take.
Code is Creative and Fun!
No, seriously... It is! Don't knock it until you've tried it. As a kid school bored me. Even if the subject was interesting, I hated anything that resembling a school assignment. But programming was fun, like playing a game or puzzle. Once you get the hang of it, coding can be like sitting down to play a game of chess, or figuring out a crossword puzzle. Except when you finish you don't just win and shut it down, it actually produces something you're proud of.
Whether it's some sort of data model, an app that provides you utility, or a webpage, creating it not only exercises the analytical side of your brain, but also requires creative decisions about its appearance and presentation. Graphics and front-end code are an art form. Which is why most development teams have front-end developers, back-end developers and designers. Technology creates a space for the analytical and creative to mesh together in fun, interesting, and challenging ways.
Top 5 Coding Books for Beginners
Want to know what programmers are reading right now, that can help you get started as a coder? Here an Amazon's Best Seller list from instructors and mentors at the Devmountain coding bootcamp at Strayer University.
- The Self-Taught Programmer: The Definitive Guide to Programming Professionally
Arguably THE best programming book for beginners learning to program, as well as self-taught programmers looking to expand and polish their skills to a professional level.
- Make Your Own Neural Network
The best book to introduce readers to the concept of AI and neural networks with clear, easy to follow examples in Python.
- Managing Humans: Biting and Humorous Tales of a Software Engineering Manager
A blend of memoir and guide, author Michael Lopp gives readers a tour through what it’s like to work in Silicon Valley.
- The Pragmatic Programmer: From Journeyman to Master
A popular University Coursebook and best seller since 1999.
But it's not just for kids! Whether you’re 10 or 110, this book is a fun way to start learning how to code.
Did I Convince You?
Did I just say there's a decent paying career, with autonomy, where you can often work wherever you want, whenever you want, for as little or as long as you want? YES! And I'm dead serious. This is not some pyramid scheme or make money fast scam. It's a job that is infiltrating every aspect of our lives, and we do not have enough people to do it. Bootcamps are being created, to get people developer jobs with little more than a 3-6 month crash course. And companies are hiring from them because there's so little talent, and the talent with experience that does exist is too expensive.
If you learn to code and decide it's not what you want to do with your life, you will still have learned a skillset that you can use to make money via side-hustles, or to gain an advantage in whatever endeavors you do go after.
In the coming months I'll be writing more about coding tips, tricks, hacks, and side-hustles. It could literally be life changing content. So subscribe today to make sure you don't miss it!
About The Author
Blog Editor & Chief
In addition to blogging, I'm all about Music, Web Development, and Digital Marketing. I'm currently gigging with my band Exit 85. You can reach me there at exiteightyfive.com, or on my personal website: jacksutherland.com.