I entered the programming world without a formal degree, relying on a Udemy course and some personal projects. Four months later, I landed an internship as an FE developer at BMW.
For almost two years, I worked as a Front-End (FE) developer. Deep down, I’ve always wanted to dive into Back-End (BE) development, but my team’s leadership believed it wasn’t the right time yet.
The beginning was tough. I had no real understanding of programming; I just knew I was passionate about it. My initial interest wasn’t in creating websites or dealing with the visual aspects users see. Instead, I was drawn to the underlying technology and processes.
Starting with FE was a practical choice, as friends in the field advised me it was a more accessible entry point for beginners. In retrospect, they were right, at least for that time.
Don’t get me wrong — FE development isn’t easier than BE. They each come with their own complexities. It took me a long time to get my bearings, to program with fluency, and to become self-sufficient. Once I had established myself in my FE role, I began to express my interest in BE more assertively. I started attending BE refinements and sought out study advice relevant to our project’s BE context. My initiative was welcomed, and within a couple of sprints, I had my first BE task.
Have you ever walked into a supermarket for the first time and felt completely lost, trying to take everything in but seeing nothing clearly? That’s exactly how I felt when I first saw the BE repository. I couldn’t make sense of how everything interacted or what communicated with what. I tried reading the documentation, but it only added to my confusion. It felt like I was back to day one of programming.
This time, however, I had a general understanding of the business context, which made my frustration even greater. As an intern, I didn’t know what I was supposed to do or how to do it. This time, I knew what needed to be done but not how to do it, and I was no longer a novice. I had high expectations for myself.
I had to step back, ask for help, and study over the weekends to wrap my head around things. Slowly but surely, with a lot of assistance, I began to understand how things worked (at least within the context of my story) and managed to deliver everything on time.
It’s not that one role is more or less complex than the other, but my experience suggests that BE developers need to be more aware of all the relationships and interconnections within an application. While FE developers focus on how to present data, BE developers are concerned with ensuring all the necessary data is available, which requires a broader understanding of the business.
If you’re thinking about making this career shift, here are a few things to keep in mind:
Ask Questions: Lots of them. It’s normal to feel lost at first, but with the right guidance, you’ll find your way.
Embrace Discomfort: Don’t cling to your previous position, expecting nothing to change. You’ve stepped out of your comfort zone, so learn to be comfortable with discomfort. Remember, just because you were proficient in FE doesn’t mean you’ll start as proficient in BE. You might begin as a junior again, but your established background might help you become proficient more quickly than the first time.
Enjoy the Journey: Programming is all about challenges, learning, problem-solving, and creativity. Believe in yourself and enjoy the process.
Embrace the journey with enthusiasm. Programming is about facing challenges, continuous learning, solving problems, and being creative. Believe in yourself, and good luck on your journey!