Meet Your Teacher
Rafiq Hilali is a senior full-stack software engineer working with Lambert Labs. Specializing in Python, he has architected and delivered several production-grade Django applications. Originally from the UK, Rafiq uses his career as a developer to travel and work worldwide, from places like Indonesia and New Zealand to the Philippines and Canada.
Understand the Scope of the Course
The scope of what can be considered “intermediate” Django is vast.
This course aims to build on what you can already do (build a basic but functional web application with Django) by introducing you to new concepts.
You will undoubtedly expand your knowledge of these as you continue to gain experience beyond this course.
Learn From a Professional Scenario
In this course, you will create a full web application from start to finish - the context is outlined below:
A photography collective is looking for a way to share its work with the world. They want to be able to upload their photos online and also create blog posts about them. They have asked you, a Django developer, to build a web application that allows them to do just that. They need to have two tiers of users - subscribers and creators - and ensure that only the creators can create content. This content then needs to be shared in a social feed, with subscribers choosing which creators they want to follow.
Actively Follow the Text and Videos
The text and video elements of the course will guide you through building this photoblog. To get the most out of this course, take advantage of both formats:
Start each phase of development by watching the screencast video to get an overview of key concepts.
Read the text below the screencast to learn how to implement those concepts.
Practice alongside by coding the steps yourself. Try not to copy and paste! You will learn more if you write out the code yourself.
If you do get stuck implementing anything, refer back to the screencast. Having that visual guide should clear things up and allow you to continue.
Check Your Work
This course has an accompanying GitHub repository.
Each section of the course has a tagged commit on the repository that refers to it, meaning that you can jump into any section at any time by checking out the tagged commit.
Here you can view the tags.
In addition to following the text and video tutorials, you’ll complete coding exercises.
You can find solutions as tagged commits in the repository.
To view the code changes required for the solution, add /compare to the end of the repository URL and compare the PxCxSx-EXERCISE-name-of-exercise tag to PxCxSx-SOLUTION-name-of-exercise tag.
When doing an exercise, avoid the temptation to look at the solution too soon. These exercises are to challenge your understanding. You will gain a lot more from persevering and finding a solution yourself than looking up the answer.
But don’t feel like you have to complete the exercises from memory! It’s great if you find a solution using Google, StackOverflow, or even the official Django documentation! Being able to use these tools is key to greatly improving your developer skills.
At the end of each part, you’ll also complete a quiz to check that you’ve understood the concepts and highlight any areas you need to review. Don’t hesitate to revisit problematic chapters before you advance to the next part.
For now, let’s get working on our photography web application!