Adam Johnson

Home | Blog | Projects | Colophon

Where to Learn Django in 2019

2019-03-21

One Step at a Time

I quite often get asked for resources on where to learn Django. Here’s a list of the places I know!

The Deep End

First, a warning: there’s a lot of stuff to know. Learning Django with zero web or programming knowledge is diving in at the deep end. If you’ve never done anything like it, you’ll be learning about Python, databases, HTML, CSS, browsers, Git, Django, and more, all at the same time.

I’d recommend knowing how to build a static website before attempting to learn Django. There are many ways to do this, for free tutorials check out W3Schools or Learn Web Development from Mozilla.

But if you think you’re ready to begin, let’s continue.

Written Tutorials

First and foremost is the official “Start” page which links to several things, including the official tutorial. A warning: the tutorial is quite comprehensive, and is not really designed for zero-experience beginners. It also has some blind spots, for example it does not feature any advice on installing Python, or deploying your website to the actual internet.

The Django Girls tutorial is a full guide to creating and deploying a blog for free. This organization uses it to teach weekend workshops to women around the world, so it’s pretty battle-tested. I’d recommend this as easiest starting point for most.

I’ve also recently learned that Mozilla have a very complete tutorial in their learning area. They use a lot of Django so I expect this should be quite up to date.

If you’re building an API, Django Rest Framework is a popular Django package to help this. It has a quickstart tutorial for getting started.

Books

I can’t say I’ve read many of the books out there targeted at beginners, so I don’t want to endorse any in particular at the cost of the others. The Awesome Django project keeps a list of known certified “awesome” books though.

However I can say that I’ve enjoyed every version of Two Scoops of Django. It’s full of tips more suitable for those with a bit of experience, so if you’re just starting today, earmark it as an ice-cream themed present for yourself in the future.

Videos

I also can’t say I’ve watched a beginner’s video tutorial on Django, as I normally prefer to read. There are a lot listed on Awesome Django though.

What I have seen is a lot of conference talks, and most of these make their way to the web. Yes, you can sit on your sofa and watch talks that hundreds of developers spent lots of time and money travelling from around the world to see, all for free. The internet sounds absurd sometimes, but that really is the world we live in!

Awesome Django has a list of conference YouTube channels. Check them out for beginner’s talks or stories, or even just the most popular videos.

There are also tons of talks about Django from other conferences, meet-ups, and various events around the world, all right there on YouTube, Vimeo, or other sites. It’s worth searching around if there’s a specific topic you want to learn more about.

Podcasts

The only active Django-specific podcast I know of is the recently started Django Chat, hosted by Will Vincent and current Django fellow Carlton Gibson. Episode 2 is “How to Learn Django” which is obviously relevant for this post, check it out!

Documentation

The Django documentation can be a bit big and scary to begin with, but it’s really the only reliable guide on things work. It’s available partially translated to other languages too. At the time of writing the Transifex project shows French, Indonesian, and Japanese as the top three languages. It’s never 100% translated because translators are playing catch-up with the ongoing changes.

(An easy way to start contributing is to translate to your native language whilst you read through the documentation. See Localizing Django.)

It’s also worth downloading a copy for local reference when you don’t have an internet connection. See the “Download” link on the right sidebar of the docs front page.

I personally use a Mac App called Dash that gives quick offline access to all kinds of programming documentation. There’s a free clone of it at DevDocs.io - and it has an offline mode as well, which is really cool.

Whilst you’re into reading documentation, I’d recommend Kristian Glass’s Unofficial Opinionated FAQ as an example of the kind of choices that Django doesn’t force on you but are probably good ideas. I agree with everything in that post.

Meetups

As one of the organisers for the London Django Meetup I’d like to highly recommend going to a local group. Even if you haven’t managed to install Django, going to meet some people in your area can inspire you, give you pointers, and you might even find a co-learner or mentor.

Most meetups register on Meetup.com these days, and they have a page of Django meetups. At the time of writing there are 422 meetups in 67 countries, with a total of 430,065 members - that’s more than the population of Brunei!

Blogs

Following the Django community is a great way of finding new avenues of learning. I follow the “Community blog posts” feed from the community page in my feed reader ( Old Reader).

If you don’t have a feed reader, don’t worry, they’re kind of old fashioned. You can also set up getting feed items as emails (or SMS’s, or pretty much anything else) with a free account on Zapier using this integration (fun fact, Zapier is written in Django!).

Some organizational blogs that spring to mind with good historical content worth reading are:

(I decided not to include individuals here because there are just so many! Maybe one day I’ll post all the Django-related blogs I subscribe to.)

Every Day is a Learning Day

A closing note: Every programmer, even the most expert, is continuously learning. If you feel overwhelmed, just remember we are all taking it one day at a time. Before you know it, you’ll be building useful applications to provide value to those around you.

Hope this bunch of resources helps you start or improve your Django skills.

—Adam

P.S. Thanks to Carlton Gibson, James Spurin, Neil Bachelor, and Ngazetungue Muheue for reviewing the post.


If you found this useful, I'd be grateful if you subscribe to my future posts, via RSS, Twitter, or email:

Or perhaps you'd like to read a related post:

Tags: django