Becoming a Full-stack developer

I started life as a developer straight out of university. I did a Bachelor of Computer Science at Swinburne University, upon completion I applied for jobs, just about anything in software. Except for frontend positions, I was convinced that I couldn’t be a frontend developer, why was this? Well, primarily it was because at university I was under the assumption that in order to be a frontend developer, I would need to design things, which I could not do. Somehow, I was never told that you don’t have to design things and build the websites. A frontend developer just builds from designs, specifically from the creation by a designer. Of which, is an entire discipline on its own. Now, having known this I probably would have started in frontend land, but I don’t regret anything, because I learnt an enormous amount. 


The reason for growing into a full-stack position was simply to have more options when it came to work. I often found that backend roles were typically in the enterprise space, often maintaining older software. To a young developer this is quite boring, in fact, I’d fantasise about rewriting these codebases. I did get lucky in a few instances starting from scratch at companies, and it was amazing. However, frequently I was stuck with what I had, whilst other developers in the frontend space were working on new and interesting things. When it came time to look for a new job I had also obtained a set of skills in a language that didn’t have much traction in Australia, as a result, I had to expand my skills. First I grew in the backend space, expanding what I could work with, then it slowly transitioned to the frontend, expanding what I knew there. Until, finally, I could hold my own as a frontend developer. It took many years, but in the end I got there. So how did I do it?


Growing as a developer

It didn’t happen overnight, and it didn’t happen easily, but I was able to pull myself out of the specialised niche that I had accidentally fallen into. At first, I spent time reading, mostly on how to be a better developer. Overtime, this expanded to reading and watching videos on other backend languages, frameworks, databases. Once I had a firm grasp of a few things, nothing major, but enough to build something basic. I then expanded to React, the king of all frontend frameworks as of the time of writing and probably for the past five years or more. I learnt bits and pieces of React, this was back before hooks and let me tell you, I could not make head's nor tails of React. Something about class components did my head in, perhaps it was because I primarily worked with functional languages in the backend. It wasn’t until hooks were released that React finally clicked. The functional aspect of React made tremendous sense to me. This is when it all started to fall into place. Next I learnt some React Native, to get some mobile experience, yet still feel comfortable in the core aspects of React.


This was all done in my spare time, when ever I had a spare moment, I would figure out what I could learn next to get me one step closer to full-stack. Reading, YouTube and building things were the best options for me.


Getting “real” experience

The best experience is on the job, you can build all the side projects you like, but until you work in a team with other developers you won’t learn enough to become much more than “okay”. It’s hard to continue to grow if you simply build projects solo. There isn’t another person there to tell you that the way you have been writing code isn’t how it's done. You need that feedback from other developers, they let you in on little nuggets of knowledge that completely transform how you code. You might eventually stumble upon these when working by yourself, but working with others is the fast track to proficiency. 


As soon as I could, I would stick my hand up to do a ticket or two in a frontend project, just to get some experience, just to prove that I could contribute. These all become baby steps into working full time as a frontend developer, the same goes for backend. Putting your hand up to help in an area you want to be in, is the best way to learn. Trial by fire, you get thrown a ticket after assuring them you can handle it. It's nerve wracking to say the least, but you plod along, and you get feedback early. When it comes time to wrap up, you get a final review, this ensures everything is great. This is the perfect time to learn a tremendous amount, soaking in the knowledge of the people around you who have been doing it for years. 


Sticking my hand up for other domains is exactly how I was able to jump from strict backend developer to full-stack engineer. It wasn’t a quick path, it took many years of learning and the right opportunities to arise, but when they came I grabbed them. You can do the same for any domain you want to expand into. If you’re currently a frontend developer, and you want to move into the backend. Learn as much as you can in your own time, then speak to your boss about your plans. They most likely will be quite enthused, then attempt to find ways to give you the opportunities you want. Take these opportunities with both hands, learn as much as you can, and you will grow into the full-stack developer that you want to be.

Previous
Previous

How to estimate in software development

Next
Next

How to pitch a rewrite to a codebase