So you want to be a front end developer — A practical guide to growth for junior developers

So you want to be a front end developer — A practical guide to growth for junior developers

Front end development has seen a huge rise in the past several years. Javascript continues to widen the gap as the most used language on Github, and job openings are abundant. It’s no wonder that in tandem with this ascent, we’ve seen a massive increase in the number of lofty-promise-learning-programs — bootcamps, tutorials, crash courses and everything in between. The cycle is natural for any booming industry, and it breaks down as follows:

  1. There is huge demand for front-end developers. Companies are scrambling to find competent people to fill roles, and they’re paying top dollar.
  2. Other companies see this demand, and create educational resources to help “bootstrap” people’s careers. They promise a quick-fix solution to learning about web development that will set you up for an epic amount of success.
  3. The pitch is appealing, so a lot of people do it. Bootcamps and online learning resources are selling like hotcakes — it has quickly become a multi-billion dollar industry.

The net result is a huge pool of extremely junior talent. Most students walk away with a portfolio site and a few javascript demos, but lack any deep understanding of development that would allow them to tackle real-world problems that working developers face every day.

The intention of me writing this is not to negate the benefits of these learning programs — as a self-taught developer before these programs existed, I’m sure that my life would have been much easier if these resources were available to me when I was getting started. They are a great way to get your feet wet and to begin the learning process. However, they are only the beginning.

Okay, so what now?

For those of you who have recently completed one of these programs, and are now part of the ever-growing pool of junior developers, you may ask yourself — what now? With so many options for learning the basic skills, I wanted to look at some next steps to transition from a hot-blooded junior dev, to a highly employable intermediate.

The following are a few things that went a long way towards helping me bridge the gap between the early days of my learning, to being a competent and productive developer:

Read books

To obtain a deep understanding of the front-end languages (Javascript, CSS and HTML), reading hyper-focused tutorials aren’t going to cut it — you need to read books. Early on in my learning, I remember reading Javascript Patterns and having absolutely no idea what anything meant. But as I continued to learn, bits in the book started to make sense. I used it as a reference, which helped to ensure that I was writing code in ways that made sense. After a while, I was able to understand the book entirely, and even form opinions on some of the content.

For budding front-ends, I’d recommend Eloquent Javascript, SMACSS, and HTML and CSS: Design and Build Websites; but don’t stop there.

Go to meetups

Meetups serve as an excellent reminder that you’re not alone. Tap into your community’s expertise by just showing up at meetups to learn more about web development. Like reading a reference book, you may feel like a fish out of water for a while, but the secret truth of it is that developers are a reasonably nice bunch of people, and almost everyone has been in your shoes at some point. So, find some meetups, show up, ask questions, and listen. Eventually things will start to make sense.

Open Source

This can be a daunting one for all levels of developers, but if you’re developing for the web, I can almost guarantee that you’re using open-source software. Open source software is software that can be freely used, shared and changed by anyone. So, where to start? Think of a tool that you use — say… jQuery or Bootstrap, and start looking through issues on Github. Is there something that you think could be better with either of these? Create an issue, or better yet, submit a change. The worst thing that will happen is your change will get rejected, but the important part is that you’re giving back, and getting real-world feedback.

Find a junior job, internship or hybrid role

This may seem like an obvious one, but the important thing to remember here is to keep all options open. Finding a junior job or internship that will be worth your while can be difficult. Remember that getting your foot in the door is important, but if you’re working as a junior or intern, make sure that there’s a clear roadmap for a career beyond this. There are a lot of great companies that aim to mentor and grow their junior staff, but many others are happy to keep them around as workhorses to do the jobs that others don’t want to do — it’s more about cheap labour than growing the next generation of developers.

The other option when looking for work is to find a hybrid role. One of my first dev jobs was as a Web Producer which basically meant that I pasted things into a Wordpress site, and occasionally dabbled in adding small new features to an existing site. It wasn’t terribly riveting, but it was a less-pressured way to work my way into a full-time development role.

Start a project

I cannot stress this one enough. Solving real problems for something that you care about is the absolute best way to become a better developer. Rather than dealing with unknowns, you can work towards solving specific problems.

The first lines of production code that I wrote were a result of entering a Startup Weekend contest with a friend who had an idea to create an employee suggestion box app. The process was terrifying, but we had a clear idea of what we wanted our app to do, so I hacked and fussed with code until it sort of did it. This was a horribly messy process, and to be frank, the initial code was terrible, but I learned a huge amount in a short period of time. Working with real customers was a huge drive too, as we had to manage their expectations vs. a side project without customers where uptime doesn’t really matter. After running this business for about 8 months, I was able to land my first full-time development job.

Never stop learning

I hope that these points will help to accelerate your learning, but they are by no means holistic or all-encompassing. The incredible thing about front-end development is that things are constantly changing, so there should never be a time when you finish learning. This means that no matter how many books you read, meetups you attend, or projects you work on, the learning process has to continue if you want to remain relevant.

There is a huge amount of opportunity in front-end development, and a huge number of people vying for the same jobs that you’re looking at. But if you passionately pursue the items listed here, you’re sure to cement yourself as an intermediate developer and land yourself in an incredibly rewarding career.

Background

I am writing this from a place of empathy. I began my career working in the film industry with zero coding experience. On a whim, I moved to Taiwan and worked an extremely tedious copywriting job. I started to poke away at web development before entering a startup competition with a friend as the lead developer 😮. From there, I managed to get a few freelance contracts before landing my first pseudo-development role as a Web Producer. I scraped together enough sample code to get a job at a few agencies. I had the tremendous opportunity to work at MetaLab during this time, which really catalyzed my journey towards become a good developer — Jason Webster was an incredible mentor and I am forever indebted to his patience. For the past few years I’ve been working at Shopify where I’ve been able to grow exponentially, and I’m now working as a Lead Front End Developer. I mention all of this because it’s important to note that it hasn’t been a smooth journey. There were several years when I felt like I truly had no idea what I was doing, but with enough tenacity, I was able to figure things out.

Illustrations by Nadia Alam