It’s a fair question. To the uninitiated, front end development must seem like a breeze. But if this is the case, why aren’t front end developers a dime a dozen?
The answer is simple: front end development, like any specialized trade or spectator sport, is a lot harder than it looks. It isn’t until you’ve dipped your toes in it that you realize just how turbulent the waters are.
The steep learning curve is partly due to the ever-changing nature of the field. With front end, there’s always something new to learn: responsive media queries, HTML AppCache, CSS transforms, WebGL, etc. Each of these tools introduces exciting new possibilities for front end developers, but also changes the way their work is done.
That also means changing the way front end development is taught, as frequently and accurately as possible. Unfortunately, no instructor can ever hope to keep pace with the changing technologies, meaning each new front end developer joining the workforce is already several steps behind, struggling to fill their toolbox with a never-ending supply of necessary resources.
With front end, it isn’t just about the code. It’s about how the code interacts with the consumer. With client-side development, poor design can easily become a roadblock between the product and the audience. A good front end developer needs an understanding of web performance, and the various metrics that determine online success. That means http caching, optimizing dns lookup times, using minification build scripts, and selecting the best CSS layout engine for the project.
Not only that, a good front end developer also needs to have an understanding of marketing. That means knowing the psychology of the consumer, prioritizing the accessibility and usability of the product, and maintaining strong SEO. It also means having a basic understanding of design theory, and occasionally, working with graphic designs that are nearly impossible to implement.
With client-side development, it’s also important to focus on the security of the product, protecting against CSRF, XSS, DNS pinning, and clickjacking. But not all front end development is client side - even front end developers need to dig in to server side code from time to time. That’s right: a good front end developer needs to be a good back end developer as well.
Developers Peter-Paul Koch, Douglas Crockfort, and Nicholas Zakas all agree - ”front end development is the most hostile development environment in the world.” The reason: compatibility. Once a front end developer has finished doing their job (and a bunch of other jobs as well), they get right back to work making sure that the product functions optimally on every browser, mobile device, and high-end toaster oven under the sun. That can be a lot of work.
Off of the top of your head, how many internet browsers can you think of? Just to name a few, front end developers have Chrome, Firefox, Opera, Safari, Internet Explorer, and now Edge to develop for - not to mention each browser’s past several releases, which must be considered for compatibility. Consider this: each version of Internet Explorer, from 6 all the way up to 10, has its own unique bugs and limitations. It’s still important to cater to each, though, or else fail to make your product accessible for that many consumers.
So, why is it so hard to find a good front end developer? Because being a good front end developer is hard - maybe a lot harder than you might think. A good front end developer has to be patient, committed, and willing to fulfill a lot of different roles outside of traditional development, all while making sure the product is optimized for the largest possible audience - and yes, that’s bound to be hard to come by.