Kicking off the blog with an item from my bucket list! I've wanted to learn Django for ages, and spent the weekend powering through a whole bunch of tutorials.

Be aware that most tutorials are running on Python 3 now, so if you're still on 2.7, time to back up and learn more about 3.


The DjangoGirls tutorial is fantastic for people who are absolutely new to web development in general. This tutorial takes a holistic view and has brief digressions into the basics of the command line interface, how servers work, what HTML and CSS are, getting a domain name up etc.

It focuses on getting a beginner up to the point where they have an app up on Heroku, and doesn't go into the nuts and bolts of the relationship between,, and (which is stuff that beginners have to know eventually!)

Official Django Tutorial

The Official Django first app tutorial is leaner, meaner beast that explains the file structure and internal logic of Django in much better detail. Perfect for someone who already knows MVC, databases, and is coming to Django from RoR, Flask, or one of the javascript frameworks.

Nothing beats reading the docs for learning! Like many great Python libraries and frameworks, Django's documentation is first rate.

Tango With Django

A Python 2.7 tutorial! Tango is a whole big book on web development practices. Much friendlier explanations, and great to go through in tandem with the official tutorial.

There is so much to this book! It covers crash courses in Git, CSS, and jQuery on top of the Django setup.


I don't have the attention span for watching these, but Railscasts are very effective, so these Django screencasts will be good for some types of learners.

It's a little worrying to think about how much foundational knowledge a beginner already needs to have to get the most out of Django. Total newbies always want to get a webapp out, because that's the most visibly 'programmy' thing they can think of doing, but there's a reason why that's a bad place to start from. Setting up a server alone is just so very painful.