Django course by Brad Traversy on Udemy: A review

Arne Wolfewicz
7 min readAug 24, 2019

About two hours ago (probably four when I am done writing this), I finished Brad Traversy’s web development course on Udemy and I can clearly state that this is by far the best online course I have ever taken. Here is why.

What you will learn, re-visited

The course overview gives you all the hard facts but the course falls short of an explanation in laymen terms. I did not understand many of the things, so I’ll try to explain it in simple terms.

The tutorial works with a HTML/CSS template which has everything in it that you would get from a pure frontend web developer. That means that you will not be writing much HTML or CSS in this course, but you need to know a little bit about it for better understanding. But with little I mean little.

Before I go into more details: The course truly takes the learner from start to finish, provided that a template is in place (which is provided by the instructor). Now before you bow your head in disappointment, this helps focus and saves everyone a lot of time. Free & awesome templates can be found all over the web, e.g. here. Frontend sure is fun but for many people it is a waste of time (many means not all), particularly those who are mostly concerned with putting content online rather than dwelling on the perfect visualization.

Backend web development using Django & PostgreSQL

Django is a piece of software written in Python which takes over many of the things a web developer would do in order to get certain functionalities. I stored it in my brain tissue as “bringing life to a static HTML/CSS website”, meaning that when you click on a button, it not only takes you to another site but there is actually something happening in the background.

The database does what the word suggests and you will be using a very popular one, PostgreSQL. If this sounds scary: you don’t need to worry too much about writing or understanding SQL as Django does pretty much all of it for you. Also, the instructor shows you a tool with which the PostgreSQL is nicely visualized — which I found very helpful.

The combination of Django and PostgreSQL is all but uncommon. If you are not sure if it is the right way, then you do not need to worry about whether it is and just go ahead with it. Similar as finding the perfect code editor, the technology really does not matter to the point where you can clearly state why you want to go with one over the other. And the elephant logo doesn’t look too bad, don’t you think?

It takes some time to get all the functionality set up — you will be writing several Django apps as part of your project and thereby breathe life into your static website template — and at some point it is time to put it all online. Brad chose a fancy-sounding combination of Digital Ocean, Gunicorn and Nginx, and for the first time I understood how you can host your website on a server (in this case Digital Ocean) from the ground up. Two days ago, I did not know that. Neither had I heard of Gunicorn or Nginx, so don’t let me fool you with pretentious knowledge.

The truly final step, adding a domain (i.e. replacing the IP address by a suitable name), I did not do because it would be extra cost with little added value for me. But that’s absolutely fine since it is only cosmetics.

Required knowledge

There is certainly an advantage of not having to learn too many new things at once. So if you are already familiar with Python, this likely adds to the fun. However, the learner is taken through each and every step and there is a separate section on Python fundamentals included. In that sense, Python is “just” the tool it is embedded in and you can certainly follow along if you have not done much work in that language prior to the course.

Naturally, you will be using the Command Line or Terminal quite a bit. But fear not, that is well covered and if you have worked with Python before that knowledge will be sufficient. In a similar spirit, the course also makes use of a virtual environment. As this does not matter much for what I normally do with Python.

Other than that, it helps to have some basic understanding of Git. The instructor touches upon it briefly but most of the interesting parts happen in the background — but only with regards to Git and only until you reach the point where all the stuff gets pushed to Github. I admit that before the course I was not really firm on Git as I never needed it. Brad’s crash course does the trick and about 10 lessons into the course you will do git add . && git commit -m ‘hey there’ when you wake up at night.

Instructor

There is a good chance that you are already familiar with Brad Traversy’s YouTube channel. If not, have a look — he has become by far my favorite online tutor and I fully back all the raving comments below his videos. But since this course is quite a long and geared at beginners, it is important that you get along with your instructor. To cut a long story short, he is as patient and caring as in all other tutorials and it is rather easy to follow along.

One thing that I particularly like about his style is that he keeps most (if not all) of his own errors in. While that is certainly convenient for him to edit, it also gives the viewer an added chance to learn about types of errors that can happen throughout the process. Him explaining his own mistakes gives additional background that you would otherwise have to search for all over the Internet. Convenient.

Having said that, of course he did not anticipate all errors that I made and sometimes I found myself debugging — anywhere between 30 seconds and 2 hours. This may be different for everyone and the more precise you follow/type, the less trouble you are going to run into.

For all those who don’t want to be greeted with a “Alright folks” at the beginning of every video, this is not for you. For all others, go ahead! He knows his craft and is the friendliest teacher you will find.

Practical relevance

What can I say? I started my own project right after I happily finished the course and, obviously, it crashed big time. But that is perfectly normal, at least for me. This course met everything I wanted and more: I wanted to be able to take a template, make it breathe air through Django and finally put it onto a production server. Prior to this course, I only did the official Django tutorial but I cannot say that I felt ready to tackle the world afterwards. Nor did that help me a lot during this course as I completely lacked any form of foundation with regards to back end web development. Now I do!

Borrowed from The Oracle.

To me, Django is another universe of little planets that I have to get acquainted with, meaning that I will need a bit more practice on own ideas to cement the knowledge obtained through the course. But apart from all the things I learned about web development, in that universe sense it is no different than using any extensive Python library for the first time.

I have come to understand why people like Django for what it is and what it can do. This course also ended my internal battle themed “Should I learn Django or Flask?” which I am sure some of the readers have had their fair share of. I don’t claim that I have any more knowledge of Flask but at least I know how things are done with Django — and, if needed, I can compare that against another web framework which I might want or need to learn in the distant future.

To put yourself in perspective: My “Coding level”

If you don’t understand some of the things in here, don’t worry: neither do I. This article was written with the intent to (a) review the most important course elements and (b) brutally simplify terms that I used to or still am struggling with. Better programmers have said it before: you don’t need to understand everything. And it is not a sign of your “Coding level”.

As I write this, I estimate to have about 300–500 hours of total coding under my belt — mainly in Python and applying that to the topics machine learning and web development. I also did some loosely connected tutorials on HTML and CSS, and made several half-assed attempts at JavaScript. While that looks like much, I don’t think it is and I would like it to be more. But it is sufficient to survive the course and a bit more than that.

--

--

Arne Wolfewicz

Reading to learn, writing to reflect. Growth @LevityAI. Say hi: @_ajascha