How much Django should you learn?

How much Django should you learn?

Learning Django can be difficult if you plan to learn everything. Cory Zue had a very pragmatic answer to the question "How much Django should you learn?". In this post I talk about being more pragmatic in your Django learning journey.

Recently I had Cory Zue on The JustDjango Podcast. We talked about his product, SaaS Pegasus, Indiehacking and Django development. You can listen to the full episode here.

I asked him a somewhat philosophical question about how far you should go down the "rabbit hole" of learning Django. But this question doesn't only apply to Django. It applies to all aspects of learning.

Django is just a good example because there's a lot to learn and you can easily get caught up in trying to learn everything there is to know about Django. But that's neither productive or useful.

Cory's answer was this:

You should only learn what you need to

For beginners this might seem like weird advice. Here's why it works:

When you're learning something new, and particularly when you're learning it by yourself, the most difficult part is not learning the actual content, it's figuring out exactly what to learn.

If you approached learning with a mindset of "I'm just going to learn everything", you'll find that you spend a lot of time learning things you never actually put into practice. You land up spending way too much time learning things you didn't actually need to know. No one wants to waste time. And as the saying goes, time is money.

Here's a better way to approach learning:

I have a problem. What do I need to know to fix it?

Applying this to Django

There's a lot that can be learned when it comes to Django. You could learn the basics that help you get a blog or todo-list app working. You could also learn enough to build your own e-commerce website. So again, if we start by looking at what the problem is we're trying to solve, we can save ourselves time in learning.

If all we want is a basic blog, then all we need to focus on are a couple of views; a list view for listing all our posts, and a detail view for displaying information about each individual post. That's it. You're done with learning.

Now say you wanted to add a like button for people to interact with your posts. Then you'd start researching ways of implementing like-functionality. You'd start learning forms and AJAX requests, and once you completed your like-button, you'd be done with learning.

This would be a lot more effective than learning how to build an e-commerce website with fancy Django packages and deploying it with Kubernetes. All for the sake of building your own blog.


When you approach learning you should always have a reason to learn. This is important because it serves as the WHY behind the WHAT. If you know why you are doing something, you will have clarity about your objective. This clarity will help you navigate learning resources because you know what you're looking for, and you know what will help you achieve your goal. Chances are you'll also enjoy the learning process more.

At the end of the day, you're learning something for a reason. Don't spend your time learning things with no clear objective.