A Course Alone Will Not Make You a Developer
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.
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.
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.
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.
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.