The Django Journey Series: First Post
I'm launching this series to record my journey as I learn Django, serving as a personal notes section to capture key concepts and takeaways along the way. While this isn't my first encounter with Django, I already have a foundational grasp of the framework and feel comfortable getting started—I've struggled in the past with completing projects because I tried to master everything at once. This time, I'm intentionally setting boundaries by committing to learn Django incrementally, using both a textbook I've purchased and the official Django documentation as guides.
Boundaries on Software and Tools
Django
For this learning journey, I'm focusing exclusively on Django. In the past, I often switched between frameworks like FastAPI and Flask, which made it hard to stay committed and finish even simple projects. By dedicating myself to Django—specifically version 5.2 LTS, I aim to maintain consistency to truly deepen my knowledge.
Astral's UV Tool for Project Management
UV has become my go-to tool for project management. Previously, I relied on pip for package management and considered trying Poetry, but never fully explored it. Since adopting uv, project setup and dependency management have become much smoother, allowing me to quickly configure the Python and Django versions I need and get started with development.
Python
Django is a robust Python framework for web development, and with each new release, it continues to support the latest Python versions. For example, Django 5.2.8 LTS now supports Python 3.14. However, I'll be working with Python 3.12, which is not only current and stable but also matches the version used in my textbook that I purchased. With support for Python 3.12 expected until October 31, 2028, I can confidently build my projects on this version for the foreseeable future.
Git
For version control, I'll be using Git. Git is a reliable and widely adopted tool for managing code changes and collaborating on software projects.
PyCharm
There are many excellent IDEs and code editors out there. I've previously used Zed, Visual Studio Code, and Sublime Text. However, to minimize setup time and avoid configuring extra extensions for Python and Django, I've chosen PyCharm. The Professional edition has great Django integration and is ready to go out of the box. Since I already own a PyCharm license, it makes perfect sense to use it for this endeavor.
Windows 11
While some might question my choice, I'll be doing all my learning on Windows 11. Although I'm comfortable with Fedora and Ubuntu, my day-to-day workflow and software tools are deeply integrated with the Windows ecosystem. Switching between devices would complicate things, especially since coding and web development are hobbies rather than my professional focus. Sticking with Windows ensures a seamless transition between my work and personal projects, allowing me to maximize productivity and keep things simple.
Learning Resources
Django 5 By Example – Fifth Edition, by Antonio Mele
To guide my Django learning journey, I'm focusing on two primary resources. The first is this book, which has become my main reference. Like many others, I've experienced the frustration of "tutorial hell," having purchased numerous guides and tutorials that ultimately left me overwhelmed. What sets this book apart is its alignment with the latest long-term supported Django version, perfectly matching my learning goals. I purchased it directly from PacktPub at a significant discount—an added bonus!
Django Documentation
Of course, the official Django 5.2 LTS Docs are among the most valuable learning tools available. This will be my second key resource. In fact, "Django 5 By Example" frequently references the official documentation for deeper insights. I still find parts of the docs challenging—some concepts and code samples can be hard to grasp, especially when I skim through them too quickly just to find answers. I’m learning that it’s important to slow down and take time to really understand the content.
I remember hearing from an instructor in another tutorial that many people avoid using the official documentation because learning how to navigate and utilize it effectively is a skill in itself. Unfortunately, I can’t recall exactly who it was, but I’d love to revisit that section. The instructor demonstrated not only how to find information within the documentation but also how to interpret example code and apply it in real projects.
Let's Get Started
As I continue on this learning journey, I’m excited to embrace both the challenges and the breakthroughs that come with learning Django. By relying on my carefully chosen resources and reminding myself to be patient with the process, I hope to build a solid foundation that will support my growth as a developer. Thank you for following along—I look forward to sharing more insights and experiences as I progress and sharing with the world what I have found useful.
❤️Enjoyed this content, why not support me!
All support is appreciated! 😁