I've been in the IT industry for 3 years, working on various projects. For the past 1.5 years, I've been heavily involved in Python projects, mainly as a back-end developer using Django. My tasks typically revolved around building or updating APIs as per specific requirements.
Most of these projects were already underway when I joined, so I mostly inherited tasks based on existing project needs. As a result, I wasn't part of the initial database design or project structuring.
Now, I'm starting on my personal project using Django. However, I lack experience in structuring and designing a project from scratch, especially in organizing apps and defining models.
I took a look at other frameworks like Spring Boot and noticed they don't offer the same level of "batteries included" features as Django.
I'm currently dealing with two main challenges:
I'm seeking advice on overcoming these issues and figuring out how to structure my project effectively. I'm also contemplating whether sticking with Django could potentially narrow my overall grasp of back-end development because of its extensive in-built functionalities.
Also, I applied to some companies and most of them are asking for experience in Java back-end development.
I feel like you're overthinking this, at least a bit:
My advice here boils down to something I tell a lot of engineers: Just build. Don't worry, just build. Build something cool and useful and continue trying to make it more cool and more useful. Don't worry about "clean code" - Your growth will come naturally if you have the right mentality, which I cover how to do in-depth here: "How to Learn/Practice Clean Code, particularly by oneself?"
Guiding principle for personal projects: do the simplest and quickest possible thing. So Django is just fine!
The time to advance to new tech stacks is when you've encountered something in your personal project that is much easier in another framework or tool. This will deepen your understanding / learning as well.
We touch on the optimal strategy here in the masterclass about building side projects.