Learning how to code is something I’ve thought about doing for some time but always found an excuse for putting it off. Then the pandemic happened, flipping my schedule upside-down. If I was serious about wanting to learn, then this was the perfect opportunity. It was time for my next 30-day challenge.
So why did I choose to spend a full month learning how to code? While some people are motivated to learn programming to “get rich”, there are other reasons why I or anyone else would want to learn how to code. Some popular reasons include:
But I chose to learn how to code for a different reason. I wanted to improve my ability to think logically. And at its core, that’s all programming really is: learning how to think logically. A program is designed to check whether something is true or false; there is no subjectivity. Either your program works as intended, or it doesn’t.
I also wanted to learn a skill that would benefit me in other areas of my life. If learning how to code could rewire my brain to think more logically, then it could probably improve my ability to solve problems outside of the digital world.
“Approach learning without preconceived notions, prior judgment, or a fixed viewpoint. See things exactly as they are-just as a child would.”
— Andy Hunt
Learning how to code has been something that has interested me for the better part of a year, but I kept putting it off. Every time I thought now was a good time to start, the voices in my head would feed me a new excuse. The excuses varied in reasoning, but they all pointed back to one thing: me.
What got me to finally take action was acknowledging the voices in my head for what they actually were: mere excuses. I took some time to confront each one until I had no choice but to get started. Here’s how I did it, so you don’t have to make the same mistake.
Although I have a degree in mechanical engineering, every time I saw a line of code, I thought I might as well be reading something in Chinese. I just couldn’t make heads or tails of what I was looking at. I felt even more guilty since I thought of myself as “the engineer who didn’t know how to program.”
It wasn’t until I paused to ask why I thought programming looked too difficult to learn that made me realize my true concern. I already knew that the logic would take some time to figure out, but what actually overwhelmed me was not knowing the syntax.
The syntax, or specific set of rules and characters, are the building blocks for learning any new skill. You can’t expect to know how to write an essay until you first learn the alphabet. And you can’t solve algebraic equations until you know the meaning of its basic operations: addition, subtraction, multiplication, and division.
I felt overwhelmed because I had never been exposed to the language of code before. I didn’t know what a script tag did or what a div tag represented. It looked difficult because I hadn’t pushed through the first learning curve: familiarizing myself with the syntax.
Thankfully, Google is a developer’s best friend when it comes to learning syntax. Instead of spending weeks, months, or even years trying to memorize the rules and special cases of multiple programming languages, I just needed to learn enough to know the right questions to ask Google.
There are about 700 notable programming languages in existence, both in current use and historical. While some languages are more popular than others, it’s overwhelming to a beginner who doesn’t know the popularity and capability of each one. You could easily spend hours watching YouTube videos and reading blog posts to figure out what is the perfect language stack to learn.
But the reality is deciding what to learn isn’t nearly as important as choosing to get started. Once you start, you will soon discover if programming is even something you enjoy doing. Trying to optimize before you begin is like trying to learn how to throw a curveball before you ever play a game of baseball. You need to go play first to see if it’s even something you enjoy doing.
Getting over my decision paralysis was easily solved by turning my decision-making over to the experts. Instead of spending hours researching what I should learn, I just signed up for a coding course that taught a popular coding stack for those interested in web design. I was already interested in learning how to modify the layout of my blog, so that was the only reason I needed to get started.
Learning how to program never crossed my mind when I was in school. In fact, I think the closest I ever came to programming was creating a pivot table in Excel. By the time I became interested in learning how to code, I was already four years removed from academia and afraid that the ship for learning had already sailed.
I also assumed that programming’s rise in popularity meant that the market was already over-saturated with a bunch of 19-year-old kids who started learning how to program video games when they were 11. There just wasn’t a chance for somebody like me who already had a career to learn a new skill well enough to become competitive.
But the reality is that the number of opportunities available for developers greatly outnumbers the number of people capable of doing the job. Being a programmer is still a relatively new occupation compared to most of the jobs that make up the workforce. While you may think you’re too old to get started, you’re definitely not too late for building a career in this space.
Actually, you would be ahead of the curve.
Most of the time, when I say I don’t have enough time to do something, what I’m really saying is that it’s not a priority. I always find time to do things that matter to me, so what really needed to be asked was whether or not this also mattered. Is learning how to code worth the opportunity cost of not being able to do something else?
Framing my decision this way made me realize it was worth pursuing. While I may not take it far enough to make a career out of it, I knew learning the skill would have multiple benefits. Off the top of my head, learning how to program would improve my thinking, keep me organized, and make me comfortable with figuring things out on my own.
Using a 30-day challenge to learn the skill also gave me a predetermined out if I decided later that it wasn’t for me. But until those 30 days were up, I would make learning how to code my top priority. If I just so happened to enjoy the learning process, I could maintain the daily habit even after the challenge ended.
After overcoming my self-doubt, I turned my attention to what I would be learning for the next 30 days. I chose a guided course so I could focus all of my attention on coding instead of wasting time trying to decide what to learn next. After some initial research and talking with a friend, I chose the Codecademy Web Development course.
I spent the first three days of the challenge learning the basics of HTML. For those who may not be familiar, HTML stands for Hypertext Markup Language. It’s the most basic building block of the Web. It defines the meaning and structure of the content you read when visiting any website or app.
HTML uses “markup” to annotate text, images, and other content that’s displayed in a Web browser. HTML markup includes special “elements” such as
and many others. An HTML element is defined by it’s “tags”, which consist of the element name surrounded by “<” and “>”.
HTML is foundational in large part due to its hypertext function. Hypertext refers to the clickable links that connect Web pages to one another, either within a website or between websites. Linking content is easy to overlook, but it’s one of the fundamental building blocks of the Web. It’s hard to imagine a Web where the only way to navigate to different content was having to search for it directly in the search bar.
If a Web page, like this blog post, was represented by a house, then HTML would be it’s foundation and wood frame. It provides the house it’s structure and determines other properties such as its size and shape. While most people would look at a wood frame and immediately recognize it as a house, in this modern age, it is far from being complete. The house is missing the materials that make it unique.
After spending the first three days learning HTML, I spent the next three learning the basics of CSS or Cascading Style Sheets. CSS is used to style your website by selectively styling individual HTML elements. Typical uses of CSS include modifying text and changing the layout of the web page content.
Styling text is done through changing its properties: font type, size, color, boldness, italics, line and letter spacing, drop shadows, and other features.
CSS also lets you modify the layout of your web page. To understand how CSS can edit a web page, you must first know that each HTML element is contained in a box called the “box model.” Each box consists of margins, borders, padding, and the actual content, which can all be modified to your liking.
To continue with the house metaphor, CSS is the materials that give a house it’s style, such as the choice of paint color, type of flooring used, and the trees and shrubs planted in the front yard. While you technically don’t need these things to have a house, it wouldn’t be very appealing compared to all of the other houses in the neighborhood.
I’ll be honest, learning how to program, like learning how to speak Spanish or play an instrument, takes serious work and requires going through a bit of pain before it gets fun and potentially profitable. But going through life always trying to avoid pain is futile. You will either suffer the short-term pain of imposed discipline or suffer the long-term pain of regret and disappointment.
I say all of that because if learning how to code is something you’ve been thinking about but have kept putting it off as I did, then you need to find a way to get started. I recommend you start with a 30-day challenge to break down the seemingly large task into something manageable. If by the end of the 30 days you realize it’s not for you, well, you can at least rest easy knowing you finally gave it a try.
While a 30-day challenge is great for committing yourself to learn something new, you also need to have realistic expectations. If you’re starting from the point of an absolute beginner like I did, you cannot expect to be a full-stack developer by the end of the month. Learning how to program is challenging and will take time. But if you use those 30 days to soak up as much as you can and build a daily coding habit, then success is inevitable.
If you’re ready to get started but still unsure where to begin, I recommend you check out the Codecademy Web Development course. It’s perfect for exposing you to the world of programming while also teaching you the skills for designing your own development path. To make it even easier to get started on your coding journey, you can get your first month of Codecademy Pro for free.
Previously published at https://lawsonblake.com/learn-to-code-challenge/