A Course Alone Will Not Make You a Developer

Why you need to get past courses and how to do it

Szymon Adamiak
Nov 25, 2020 · 5 min read
Notebook and laptop on a table
Notebook and laptop on a table
Photo by Nick Morrison on Unsplash.

You want to learn to code. How do you approach it?

You can go to university to get a Computer Science degree or enroll in a bootcamp. But the former takes years and may cost a lot, while the latter is surely expensive. Are you ready to spend thousands of dollars learning to code when you’re not sure if you actually want to be a programmer?

Wouldn't it be nice to learn at home for free — or at least cheaply?

I’ve got good news: You can. There are thousands of courses and tutorials.

I’ve also got bad news: It’s not easy.

And the last bit of good news: It’s doable with the right approach.

Baby’s first steps
Baby’s first steps
The first step is crucial — Photo by Priscilla Du Preez on Unsplash.

The Beginning — First Programming Courses

If you’re like almost every internet user on the planet or me, you start learning to code by typing “how to learn to code” in Google. In my case, the first two results are Codecademy and Udemy tech courses.

Udemy brags about having over 130,000 courses. Wow. How do you pick one? Maybe one of the dozens of courses named “Complete Web Development Bootcamp” or “Python — From Zero to Hero”? It looks like a good place to begin, and the price is below $20. That seems reasonable.

You enroll in the course. It lasts 20 hours. You don’t know it yet, but to finish any video course or tutorial, you need approximately three times the duration of the course.

It takes a month or two, but you finish the course! Woohoo! You’ve learned a lot. Not that long ago, you knew nothing, and now you’ve got a solid intro to one or a few programming languages. If the course is any good, you’ve also built an app or two.

What’s next?

I’m pretty sure you don’t feel confident yet. It’s way too early to build something by yourself. Maybe another course? It’s just $20. You’ll refresh your knowledge and learn something more. Let’s do this.

The second course is done. You’re still not sure how to build an application on your own. What’s next? Maybe another course? This one promises to get you a job.

Winding stairs
Winding stairs
I am stuck in an endless loop — Photo by Tine Ivanič on Unsplash.

The “I Am Stuck” Phase

When you finish the next course, you’ll probably still not be ready to build something by yourself. I understand.

Here’s the thing: No one is ever ready.

You are tempted to start another course, but it will just be a waste of time.

No course or tutorial will make you a programmer. It doesn’t work that way.

Courses are a passive way of learning. You’re watching them half-heartedly, a bit bored and distracted. I don’t blame you. It’s hard to maintain focus for hours, and the courses for beginners often repeat the same information.

Of course, you can find some great courses with a clear outline, many coding exercises, and the support of the teacher and community. I’ve enrolled in many such courses, and I still do.

But even great courses can only get you so far. The environment you’re working in for the course is artificial. The teacher controls everything and has all the answers.

Even worse, they have all the questions.

Every course will give you some tasks to accomplish. Usually, the tasks are specific and restrained. They are small, well-thought-out puzzles to solve. Solving these puzzles is not very similar to coding by yourself.

When you code by yourself, you have to break a big problem like “I want to build a to-do app” into small, manageable problems like “How do I store the tasks?” or “How can I delete the task?” Breaking a problem into smaller pieces is the essence of programming. And in these courses, someone does it for you.

To learn to code, you need much more than the best course. You need to struggle.

Legos scattered across the floor
Legos scattered across the floor
Just build! — Photo by Markus Spiske on Unsplash.

Time to Move On — Build Something

How do you get out of the course loop?

Start with a mindset change: No one can teach you anything. You have to learn by yourself. You’re the one responsible for your growth — not the teacher.

By taking accountability for your learning, you’re sure to make better decisions.

Before you move on from the courses, you should squeeze all the knowledge from them that you can. I’ve got some articles on learning from courses if you’re interested, but the basics are simple:

  • Take notes.
  • Try to code from memory — not simultaneously with the teacher.
  • Refresh what you’ve learned from time to time. It’s best to prepare a repetitions schedule.
  • Find online tests to check your knowledge.
  • Document your learning on a blog or videos.
  • Explain what you’ve learned to someone.

With basic knowledge, it’s time to build something. But what should you build?

Start simple. Building a to-do app all by yourself is good enough. Or a weather app or Pokédex.

If you want to become a front-end developer, start using some external APIs as fast as possible. You can look for a free APIs list for inspiration.

Still not sure what to create? Check out this list of great ideas with different difficulty levels.

When you’re working on your own, you’ll hit a wall fast. Much faster than you expect. That’s fine. Our work consists of hitting walls 90% of the time. Allow yourself to fail and to start over again.

Embrace the failure, as it will accompany you for the months to come. It’s the only way to grow.

Eventually, you may hit a huge wall. The problem you can’t solve it for weeks. It means the application you chose is too complex for your skill level. It happens — it’s nothing to worry about. Just leave it be and create a new app.

Knowing when to let go is an essential part of embracing failure. As long as you’re building and learning, you haven’t really failed.

Each new problem teaches you more than hours of tutorials can, so don’t worry and stay on the path to becoming a programmer. You can do it.

Advice for programmers.

By Better Programming

A weekly newsletter sent every Friday with the best articles we published that week. Code tutorials, advice, career opportunities, and more! Take a look

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Thanks to Zack Shapiro

Szymon Adamiak

Written by

I build stuff and help frontend developers to kickstart careers. Follow me 👉 twitter.com/s_adamiak Get free chapters of my book 👉 www.frontendunicorn.com

Better Programming

Advice for programmers.

Szymon Adamiak

Written by

I build stuff and help frontend developers to kickstart careers. Follow me 👉 twitter.com/s_adamiak Get free chapters of my book 👉 www.frontendunicorn.com

Better Programming

Advice for programmers.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store