My name is Hanan Ahmed, and I am not just a React Developer but a Cloud-Focused Engineer. I work with AWS, React, and Python every day to build amazing products and tools. I am also AWS Associate Level certified.
Recently, I have wanted to expand my knowledge of backend engineering, so I decided to learn Django. Although I use Django every day professionally, I have never really learned it with a proper structure. So, the idea is to start with the basics and cover gaps in my knowledge as I go along. The target is a production-level app using the Django Rest Framework, containerised, and hosted on a cloud (potentially AWS).
I expect many challenges along the way, which can be divided into two categories: mental challenges and learning challenges.
The biggest mental challenge will be to fight impostor syndrome and self-doubt. I have been an engineer long enough to recognise this monster but not strong enough to keep it tamed and keep moving forward, so if you are in a similar boat - learning something new especially in tech - and experience impostor syndrome then my advice for you to is to keep going, stopping or questioning will only make it worse. Ironically, the biggest weapon against impostor syndrome is a finished project.
And then there is this mental assessment of myself, looking at the things to learn and questioning whether I am capable enough and if I even have the time to do so. Firstly, I will only find out about my capabilities after diving deep into it, and secondly, I am not in a race against anyone. Yes, there is a lot to learn, but that is the beauty of having a good project, as that will push me to think of a solution at every stage, which is also when my growth as an engineer will happen.
Unlike mental challenges, learning challenges are visible (sort of) and easier to tackle. I know amount of content that I will need to learn but level of technicality is going to make it hard and likewise no every concept will be straightforward, meaning more effort and different resources will be required, this is a good thing but at the same time can also deviate me from my actual goal of learning Django, so I will need to be careful and smart in identifying things that are crucial to my main goal and things that I can circle back at a later date.
So what does success look like?
If I can confidently create a production-grade project that can be monetised (monetisation is important as this will bring many hidden aspects like security, payments and tenancy), I will class it as a success.
Going forward, I will be publishing a series of blogs (by the way, did you know this blog is part of a series called From Zero to Django Hero), and in each blog, I will cover my learning, challenges I face and solutions I designed.