After completing the first semester of undergrad, I had one and a half months of vacation. So, I was eager to utilize my free time in a productive way. Thus, I decided to learn Django during this time. Note: I already had a good experience in React Js, Next Js, Tailwind CSS, and pretty much in frontend but I had never immersed myself fully in the backend. So, this was the perfect time to build some python and backend skills before going to college.
I started with the book called Django For Beginners by William S. Vincent, one of the best books that provide hands-on experience on Django by taking us from the small hello-world app to the Newspapers app. From this book, I learned about how to use Django Command Line CLI and how to create both Django projects and applications. I also learned about URLs, models, and views. Not only that, this book helped me to understand the basics of authentication and authorization. As well as I learned about testing the Django web application, although the testing tutorial of this book was simple as the targeted audiences were beginners. This book helped me to lay the foundation of Django. As a matter of fact, I completed this book in just four days.
By now I had a basic understanding of how to set up a Django project and create applications, I then decided to work on some beginner-level projects to hone my Django skills. I started to work on a Todo Task Web Application. Before actually coding, I worked on brainstorming the features for this application. Since this was my first basic web application in Django, I thought of learning some new pieces of stuff through this project. I jotted down the new things that I should learn while building this web application, some of the new features that I was interested in were custom user authentication, custom forms, and how to design the authentication page with CSS. For the custom user authentication, I checked out a lot of medium blogs and I went back and forth to the documentation of Django. It might be a surprise to you that it took me a whole day to actually implement the custom authentication in Django. Nevertheless, it was worth the hassle. After having a good experience with how implementing the custom authentication, integrating the custom form was just a cup of tea. And I also learned about how to use static files such as Javascript and CSS in Django. Although using Tailwind CSS in Django Projects still feels overwhelming, there is no official tutorial or support from Django.
In conclusion, learning something is never an easy step when you are learning on your own. There are ample resources on the internet and some of them are really good and some are not worth trying. One might get easily overwhelmed by seeing the plethora of resources which is a common thing. My two-cent of suggestion would be to do research as much as possible before learning anything and asks questions on Reddit, Discord, and Quora. Looked for videos that provide a roadmap for Django, and after having a basic grasp of Django to start building projects. Working on projects teaches you more than anything. However, be aware of click-bait videos.