Front end developer
Before I start I will quickly let you know that I am employed full time as a front-end developer; however I am often expected to handle the companies overflow back-end development; this has given me a good understanding of the similarities and differences between both professions and a decent insight into what both fields contain.
I want to make it clear that I am not trying to start a flame war, or insinuate that front-end development is in anyway more difficult than back-end development. If anything I would like to convey why I think that in November of 2016 that front-end development deserves to be considered an equivalent profession in terms of technicality and skill required as to that of back-end development.
As a front-end developer I have found that there is a common stigma in the community that back-end development is considered to be the superior of the two, and that front-end development is in fact the easier alternative for people who can’t hack the back-end; in extreme cases I have even experienced back-end developers referring to front-end development as not real development. Five or six years ago this may have been true when web pages were inherently static, responsive web development did not exist, and single page applications were a frustration of the future. But it is not five or six years ago, it’s 2016 and front-end development is more complicated than ever, and to demonstrate this I am going to outline some of the more technical tasks a front-end developer faces in their daily development cycle. These tasks are what, in my experience make front-end development a qualifying rival when compared to something like back-end development.
Pre-Processors / Compilers
Industry Progression and Saturation
The front-end community is booming and as a result new frameworks come out every other day. New implementations of existing tools that are better or faster than the one before are released weekly and if you do not show an instant uptake you will quickly be considered outdated in the eyes of the community. This means not only are you expected to work within a saturated ecosystem, you are expected to have an in depth understanding of said saturated ecosystem in order to stay relevant.
Bugs versus Tweaks
One of the things I really envy about my back-end developer co-workers is how little opinion the client has of their work. This is because in most cases when back-end functionality is implemented, it either works and does what the client wants, or does not; there is no in-between. Front-end development is an entirely different story. I can develop what the client expects from the given PSD, PDF, etc… but quite often once it is available in the browser I receive comments like “…could we just make this a bit smaller…” or “…maybe if we just made the background here a bit darker…” and it can go on, and on, and on. There are certainly occasions where I have got it wrong and it is a bug that I need to fix, but in most cases I find it would more appropriately be classified as a tweak and comes entirely down to the client’s opinion.
Testing and Deployment
This is the point I am most excited to talk about because I think this is what gets over-looked the most in any website development life cycle.
Everybody has to test their code this is just part of programming, however I would like to emphasise the level of automation that can be achieved between the two different professions. In my experience, most back-end code can be tested in an automated manner, while a large portion of front-end code can be tested automatically there is always going to be a manual aspect to it, whether it is manually clicking around 20 pages on 5+ browers, or reviewing 100's of browserstack images someone at some point is going to have to make sure everything is okay. In addition to this there are thousands of devices and resolutions out there and your website needs to work on all of them. Most people don’t fully comprehend what this means; in most back-end situations a developer is expected to write for one environment (the server) so this means that once the code is working that’s it. A front-end developer usually writes and tests their code in their preferred browser, and then has to test in every other browser. I have written code that has worked flawlessly in Chrome, IE, and Safari, only to find it fall short in Firefox and need a full re-write. Once that code is re-written it needs to be re-tested, now that might sound fairly minor but imagine if every time you make an update you have to re-live this process and every browser you test in can mean a potential re-write, this rapidly begins to take a toll on even the best developers.
So there you have it, while an exact comparison between front-end and back-end development may not be possible, given the differences between both fields, I do believe that front-end development has certainly come a long way in the last four years and having worked in both industries I like to think that it deserves its place as an equal to back-end development in terms of overall technicality and skill required. I would also love to see the community come together and get over this stigma that front-end developers are somehow second tier developers and give them the appreciation and respect they really deserve; come on folks let’s share the love.