You're not a frontend developer yet

Sunday 9th of July 2017

I've got a rule, which is to never write a blog post angry. It's a good rule, but it's a bit ambiguous. What, exactly, does angry mean? How long after being angry counts as not being angry anymore? What if I'm only mildly annoyed, or just a bit frustrated? What if I'm angry, but can write in a way that makes me sound not angry? These are the kind of questions I wrestle with.

Anyway. I've been reading a lot of CVs recently, from people applying for a frontend developer job. I've been building websites for twenty years, and while I won't belittle someone for having less experience than me, you need to know certain things to be a frontend developer. Here's why.

The problem

The barrier to frontend development is extremely low. Most people can be taught the basics of HTML and CSS within an hour, and classes and online tutorials that do this are widely available. This apparent simplicity belies an enormously complex world of detail beyond the basics that can only be reached through not only years of study but also a continued effort to improve and build upon that initial knowledge. Frontend development is a constantly moving target and sometimes you have to run to keep up.

There's something about this low barrier to entry that I find maddening. Maybe it's the suggestion that someone can do what I've spent a lifetime doing after only a weekend worth of training. Does this happen in other professions? Do doctors constantly run into people who've done a first aid course, who think that they could now be a doctor? I really don't know.

Here are some common types of CV that I come across.

You're a backend developer

Yes, frontend development and backend development do overlap sometimes, and yes, to be a backend developer requires some frontend knowledge. But if the first technical skills you've listed on your CV are not HTML5, CSS3 and JavaScript then we have a problem. Think about your strongest technical skill. Is it Python? PHP? .Net? Java? C? If you've not bothered to list HTML on your CV because you think it's basically just a bunch of tags and anyone could do that... you're not a frontend developer.

You potentially could be, if you're prepared to make the switch, but frontend and backend are very different disciplines and they attract different kinds of people.

You know HTML and CSS, but your JavaScript is a bit weak

If you're not a programmer by nature, JavaScript is harder to get into than HTML and CSS - but it's just as essential as the other two. This is particularly the case now that we have technologies such as Node that blur the line between frontend and backend even more - often a frontend developer will be expected to build an entire site themselves.

If you don't have strong JavaScript, then start experimenting. If you know a bit of jQuery but not much else, start trying to write JavaScript without it. It'll be hard at first, but you'll learn a lot.

You know Bootstrap but nothing else

Bootstrap is a CSS framework. It's basically a load of pre-built CSS and JS designed to help people quickly build websites that look like and work like Bootstrap. If you tell me you're a developer and you use Bootstrap my first question is: how good would you be without it?

One of the reasons to use Bootstrap (or another framework) is of course code reuse. There are certain things you need for every website build and writing them all over again each time is wasteful. But I'm not impressed by someone who can use Bootstrap to create beautiful sites but couldn't write their own framework if they needed to.

You've done a course that lasted less than a year

Maybe you did a course online with some video tutorials or maybe frontend was one of your modules at university? Or you've been on one of those weekend conferences, with workshops, and the guy running it said you were really good. Whatever, it was pretty straightforward stuff, so of course you could do it professionally, right? Right?

Not really. These are great places to start, but only that. You need skills and you need experience. If you haven't got any experience, find a way to get some.

You did some frontend a few years ago

As I said at the top, frontend moves fast. Google and Mozilla are now releasing new versions of their browsers every six weeks. People are making games that run in browsers now that look better than games from ten years ago. Samsung and Apple are churning out new hardware as fast as they can manage. Things are now possible in CSS that were only possible using JavaScript a year ago.

If you're not keeping up, well, you're not keeping up.

You don't know what these words actually mean

Let's see how many you know. I mean really know, as in can explain properly to another frontend developer.

  • HTML
  • CSS
  • DOM
  • JSON
  • Pseudo class
  • Grid system
  • JS library
  • JS framework
  • Responsive layout
  • Fluid layout
  • Accessibility
  • JavaScript Object
  • JavaScript prototyping

You don't know what a block level element is

This doesn't come up on CVs, but I see it in people's code more often than I should. If you don't know what a block level element is you've fallen at the first hurdle, but here's a quick list of elements to test you. Which ones are block and which ones are not?

  • DIV
  • FORM
  • SPAN
  • FIELDSET
  • INPUT
  • LABEL
  • A

You're guilty of any of these crimes

I made a list a while back of crimes against frontend. See if you feature anywhere on it.

You haven't got any examples of your work

The first thing I want to see on a frontend developer's CV (after a list of their specific frontend skills) is their own site, and the first thing I look at on that site is how they've built the frontend. If you don't have your own site, I begin to lose interest in your CV. Would you trust an overweight personal trainer? Or a dentist with bad teeth?

The next thing I look for is a portfolio of your previous work, for the same reason. If you haven't got a one yet, here are my thoughts on building a portfolio.

The light at the end of the tunnel

I've been quite negative in this article, but there's hope. If you think you fall into one of the categories above and are now feeling disheartened about your career in frontend development, don't worry. But let's be realistic. Getting into frontend is easy, but being excellent at it requires more. You don't need loads of qualifications and you can learn a lot by yourself, but it does require commitment, time and experience before you can be really good at it.

Fortunately, the availability of tools and information online means that if you study hard, experiment and work to improve your skills, it is possible to gain enough knowledge and experience to get a frontend developer job. Once you've got a foot in the ladder, you can learn directly from others around you and build on what you know.

Final thoughts

There's some basic stuff about writing a CV that a lot of people seem to not know about, so here's a few quick pointers.

  • Tailor your CV for the job application. If you've got a range of web development experience and you're applying for a frontend dev job, the first thing you should have at the top of your CV is that you know HTML5, CSS3 and JavaScript, and then tailor the rest of the CV accordingly. Those are the things I care most about. Other stuff is important too, but those are the priorities.
  • Link to examples of your work. I see this time and again - people describing work they've done on a site but not linking to that site or providing an explanation why they can't link to it (e.g. it's behind a login). Links are the next thing I care about, because I can examine first hand the quality of your work.
  • Have your own website. Your passion for web development should be easily demonstrable through your own website, which should also reflect the current peak of your development ability - I should be able to look at that site and be impressed by your skills.

Related