My journey into the world of web development was unconventional, to say the least. As a self-taught developer studying something entirely unrelated at university, I embarked on this exciting journey armed with determination and a passion for learning a random technical skill. I started with the basics of HTML, CSS, and JavaScript, and gradually worked my way up to becoming a full-stack developer.
In this blog, I want to share my experience of transitioning from frontend to backend development and offer insights for those considering a similar path.
The Frontend Love Affair
I fell in love with frontend development from the very beginning. With frontend, every line of code has an immediate and tangible impact, which is both rewarding and motivating when one first starts off. It keeps you from getting bored too fast initially because there’s genuine excitement in watching, for instance, the entire webpage change to a vibrant red when you set the background color to red.
With time, I caught up on Javascript, then React, then Tailwind, then Typescript, then GraphQL, and the list went on and on. When I got to this point, I was hitting APIs, getting responses, but where I was getting those responses from was a question I didn’t think much about.
The Panic of Transitioning to Backend
I was pretty content with my tech stack at this point and was looking for junior frontend roles. However, my journey took an unexpected turn when I landed a full stack developer role that required me to work extensively on the backend.
At first, I panicked. Unlike frontend, where I could instantly visualize the results in the browser, backend development felt abstract and disconnected. There was no immediate visual feedback, and I found myself buried in configuration files and server setups. It was a daunting transition.
One of the first technologies I encountered during my backend journey was Django, a powerful Python framework. It was an undeniably steep learning curve, but I persevered.
To understand Django, I had to acquaint myself with Python, a transition that, to my relief, wasn’t as challenging as it seemed, thanks to my prior experience with another programming language(Javascript).
Every programmer I know has told me if you know the basics, you will be ready to go with any language in a few days. Now, I am no programming ninja to find out if that’s correct entirely, but with Python, most of the things I already knew from my time with JavaScript.
Django, on the other hand, taught me patience. I understood what the tutorials were doing but when I tried to do something with Django on my own, I’d be stuck. It was because, unlike in Frontend, there is a lot of initial configuration work which can seem tiring.
I wasn’t catching up on Django at all. But as I kept watching tutorials, and reading documentation, I saw a pattern. A series of configurations everyone would do before writing actual Django like adding apps and registering them, managing migrations every time we make a change to the model. The more I practiced alongside the tutorials, the more I remembered and finally, the configuration part stopped bothering me so much.
Next in line was the database. I started with Postgres which is a relational database. Even before I started learning db, I used to think of the database as an Excel sheet. Tables with rows and columns.
There is a site called pgexercise.com that has a bunch of Postgres problems and covers a wide range of important topics. I completed it all too. The head-scratching was worth every bit of effort, although it was quite time-consuming.
As they say, “Practice makes perfect,” and in my case, practice truly worked its magic. I began by creating small programs, like a URL shortener, and with each passing day, I found myself more at ease with writing backend code.
Learning by Documenting
One of the turning points in my backend journey was a task that required me to document a part of a Django project’s codebase. It forced me to dig deep into the code, understand its logic, and explain it to others. Documenting code not only improved my comprehension but also made me appreciate the thoughtfulness of well-structured code.
As we have come to the end, I’m again saying that my journey from frontend to full stack development was filled with challenges and moments of doubt. So it really is okay to feel overwhelmed while learning something new as it makes us more aware and hardworking. However, you should also note that the overwhelm should not take over the learning curve.
Here are my key takeaways:
● Embrace the learning curve and don’t be discouraged by initial challenges.
● Leverage your existing knowledge of other programming languages or other related
technologies to your advantage.
● Document a random git repo(with enough stars) on a Word file with whatever you understand.
No one is going to judge you.
● Experiment and get hands-on practice.
Alright, I hope my journey was insightful to you and worth reading. Happy coding !!
Leave a Reply