In a lot of ways, learning to code is a lot like learning any other skill. Getting started can often be the hardest part. The first step that you need to take is really hard. You need to fully commit and accept that you’re signing up for the long haul. You need to think to yourself:

“Ok, I’m doing this.  Let me get started.”

These days, it seems like everyone is saying that anyone can learn to code. People like talking about how easy it is to learn. In reality, it’s not easy. But if you put yourself in the right mindset and know what to expect from the get-go, you can do it. 

Here’s what happens during the first 24 hours of learning to code:

Hour 1: Research Phase

It’s typical to spend at least an hour (often times much more) doing in-depth research on the complex world of coding. Before most people even start, they want to get a sky-high view of what they’re about to undertake.

What are programming languages? And what are databases? Why do you need to know all this stuff? The research phase can be tough.

In the world of coding, things are pretty complex, and there are a lot of contradicting opinions about the best approach to a particular problem. When the experts in a field can’t even agree on what matters and what doesn’t, how should a beginner know where to start?

Beginners often spend a ton of time reading about the insane amount of languages out there to learn. Eventually, you’ll feel like giving up on trying to understand the industry. When you get to this point, it’s important to know that this is a perfectly normal feeling.

But instead of throwing in the towel because if the seemingly endless amount of languages you need to learn, you should just pick a language and go with it. Doing so is one of the most important steps that you can take during hour 1 of learning to code.

If you’re at this stage of the research process, try downloading our 2016 guide to programming languages. We wrote it for people like you to gain an in-depth view of the industry and to figure out exactly where/how to start.

Hours 2-6: Following a Standard Tutorial

After researching the industry, you’ll probably notice there are a wealth of options out there that you can use to learn to code. There are plenty of resources that teach programming that are available for free (or are very affordable). You’ll just need to start picking a programming language.

Initially, you’ll feel super successful. It’s pretty easy to follow along the first couple of steps outlined in an online tutorial and write a simple program. But at some point, you’ll inevitably make a small typo in your code. This small glitch will cause your program to stop functioning.

Screen Shot 2016-07-18 at 6.56.32 PM

This might make you feel a little annoyed. However, in many cases, you’ll be able to skip ahead and keep going without truly knowing why the program didn’t work.

Finishing your first tutorial will give you a sense of accomplishment, but you’ll also begin wondering “what’s next?” You might also realize that the amount of time you spent researching for the best tutorial actually prevented you from spending enough time going through the tutorial itself and actually learning how to code.

Additionally, because you’re writing code in the vacuum of a tutorial, the stuff that you actually do learn might feel very disconnected. At this stage, you likely won’t have a good understanding of how the simple code that you’re writing could be used to build tangible products and features. Instead, it feels like random numbers and words that are floating around in a terminal window.

Hours 7-12: Learning Web Specific Technologies

Writing programs using online tutorials will feel disconnected from the real-world, so most people will take the next step: learning to build things that are visually similar to the types of applications you use on a regular basis.

To do this, you’ll first need to learn HTML and CSS. HTML and CSS describe how web browsers present information on web pages. It’s incredibly rewarding to start learning HTML and CSS. Pretty quickly, you’ll be able to build a real page that is visible in a normal web browser, and you’ll begin to understand how to make adjustments to your code to structure the elements on your page in the way you want.

Learning HTML and CSS will make you feel like you’re capable of building things in the real world. But it will also seem totally separate from the previous things you’ve learned about programming.

Hours 13-18:  Returning to a Programming Language

After learning HTML and CSS, most people want to understand the connection between HTML/CSS and the way programming languages work. At this point, you may start to doubt the previous experience that you gained with programming languages through the online tutorial in the previous phase. You’ll probably doubt that this simple online tutorial will be able to help you bridge the gap.

So you’ll return to a different programming language tutorial, and you’ll go through it from start to finish this time to try to understand what you’re doing at a deeper level. You’ll find it’s easier to comprehend the second time since it covers many of the same concepts you learned previously.

However, even after your second time through the tutorial, you’ll still feel in the dark, wondering:

“How does this HTML and CSS stuff connect to the programming language?”

That’s because there is one other key thing that you need to learn about: Web Frameworks.

Hours 19-24: Starting to Learn a Framework

Web frameworks bridge the gap between HTML/CSS and a programming language. So you need to learn frameworks in order to really understand how all of this really works. you’ll look into learning a web framework.

So you’ll do more internet research, and you’ll read about how frameworks make your life as a developer easier.

After picking up a framework tutorial, you’ll start going through it and realize something that is pretty intimidating at the time:

The rabbit-hole is far deeper than you could’ve ever imagined.

Web applications manage database implementations using models, views, and controllers mixing together different technologies like HTML, CSS and programming languages.

On top of that, programming languages contain advanced concepts, like object-oriented programming and inheritance. If you expose yourself to these technologies/concepts a bit, something will become crystal clear: learning to code isn’t something you can do overnight.


What the heck happened to learning to code being so easy?

Learning to code isn’t easy.  And that’s ok.

It takes a lot of work to work in an advanced field like programming (or any other advanced field with nuances).

But that’s ok, and it’s the reason why we recently extended our Firehose software engineering program to 22 weeks.

Computer programs are complex, and in order to manage them, you need to be able to break things into more abstract concepts. Software developers often call these more complex abstract concepts abstractions, and in general, they’re talking about a system or pattern that solves a whole category of problems.

These can be tricky to pick up. And it takes a lot of hard work to pick-up the nuances.

Computer programming is evolving so rapidly that you’ll quickly realize that learning the details is not as important as the process involved in learning them. Learning how to learn new concepts on the fly is more important than learning the specific stuff. 

In order to become a developer, one of the most important skills you’ll want to develop is the ability to fail quickly and learn from your experiences.

You can’t become an employable developer overnight. But it isn’t something that takes 10,000 hours to do either.

Just start. Get through those first 24 hours. Then keep on coding. Often, the best things in life are the things that make you work really hard. Learning to code is no different.

If you found this post helpful, share it on Facebook or Twitter using the buttons below.

AuthorKen Mazaika

Ken Mazaika is the CTO and co-founder at Firehose. Previously, he was a tech lead at (acquired by PayPal) and a member of the PayPal/eBay development team in Boston.

Leave a Reply

Your email address will not be published. Required fields are marked *