

all 123 comments

[–]davemoFront-End Engineer[S] 48 points49 points  (36 children)

I think this is an honest question and, unfortunately, a fairly common perception by many in the dev community. The top rated answer on quora is an excellent example of how to counter this perception.

Edit: in case you don't want to log in, here's the best answer to the question, from Simon Willison, as decided by quora users:

You're starting with an invalid assumption. Front end development is absolutely not "easier" than other forms of engineering.

When you're writing server-side code, you're writing for one language on one operating system with (usually) one database implementation. Write the code, test that it works, go home.

Front end developers have to write code that works in dozens of different environments. It's not just different browsers (IE/Firefox/Safari/Chrome/Opera) - it's also the different versions of those browsers. IE 6, 7, 8, 9 and 10 all have their own bugs and limitations. Mobile is even worse - hundreds of different browser/OS/device variations, and even Android has bugs and even feature regressions on different browser versions.

To make things worse, they have to do most of their work in HTML and CSS, which provide extremely limited tools for working around bugs (hence the past decade's obsession with CSS hacks). JavaScript helps a lot here because at least you can use feature detection (though that in itself is controversial due to the performance overhead) - but now you're handling even more code branches and potential areas for bugs to creep in.

Not to mention that a good frontend engineer will need an understanding of web performance - which incorporates everything from DNS lookup times to HTTP caching behaviour to minification build scripts to CSS layout engine implementation details.

Oh, and they're on the frontline of web application security, so they need to understand CSRF, XSS, Click Jacking, DNS pinning (that was a fun one), UTF-7 character encoding attacks...

And these days there's responsive design, media queries, HTML5 AppCache, WebGL, CSS transforms, SVG, Canvas, localStorage, WebSockets and so on to worry about as well - each one introducing exciting new capabilities, and each one introducing brand new browser support challenges to figure out.

Seriously. Server-side developers have it easy.

[–]neon_overload 15 points16 points  (3 children)

Excellent points, but there is another good point that should be made:

Front-end development also requires a specific skill and talent that is not necessarily needed in order to be a back-end developer: an eye for visual design.

This is not something that everybody has, and it is not usually a big tragedy if a back-end developer doesn't have this. I am not for a moment claiming that back-end developers can't design, but that this isn't the focus of what they do and it's not as necessary for the work they do.

Even if the front-end developer works from a design done by someone else, they still need design skills themself, because front-end development is not about mechically transferring a static design from a photoshop mockup into a website: the front-end developer needs to design how the website adapts to both different environments (screen sizes, mobile, printing) and adapts to user actions (visual feedback of actions taken, etc).

[–]rDr4g0n 24 points25 points  (1 child)

"Easy" should never be used to describe someone else's job. A construction worker might say that my job is easy because I sit at an office desk for 8 hours a day. I could say that a waiter's job is easy because all he has to do is take food to the person who ordered it.

The truth is, all tasks have their own challenges, whether physical, coordinated, mental, emotional, nothing is really easy: just different.

[–]IceBlue 4 points5 points  (0 children)

I think you're reading too far into it. He's not trivializing the complexity of back-end coding by saying it's easy. He's saying they "have it easy" in the sense that they don't have to deal with a wide range of environments to run their code in to deal with tons of edge cases on the end user. For example, I've had to fix a problem that was coming up for some users that came up that I couldn't reproduce until I realized that it was a firefox browser extension that was causing the rendering issue. Then there's the whole IE6/7/8 bullshit and not to mention cross domain issues and the quirks of loading a site in the same domain or outside of the network and how IE defaults to compatibility mode if you're in the same domain and how compatibility mode shits on the code.

That's not to at all diminish the problems that come up on back end at all but his point was that not having to deal with these things in particular means back-end has it easy when it comes to having to develop against multiple environments. Generally with back-end you might have to develop against some environment quirks related to how the running environments are set up between different machines, which front end doesn't have to worry about as much. The advantage of front end is while there's so much variation between all the different browsers and technologies, it's more standardized. Generally a bug that only affects IE7 will be able to be reproduced on any machine running IE7. Or a bug that comes up on OSX Chrome can be reproduced on an OSX machine running Chrome. It gets much ore complicated once you have a bug that comes up only on certain machines but those are much more rare. On back end, however you can have two identical machines as far as specs go but aren't able to reproduce the bug because the dev environments have forked since they were first set up due to how the devs have changed their settings. Those can be huge headaches that I'm happy not to have to worry about on the front-end as much. But once you have the environements set up and working, the actual day to day development is more straight forward on back end. The headaches generally don't involve making things cross compatible across dozens of environment configurations across a huge userbase that includes a significant percentage of users who don't want to upgrade their old browsers and thus forcing us to find solutions to work around dumb problems that simply never come up in any modern browser.

Front end seems easier because the barrier of entry is much lower but once you get into the more complex stuff for companies whose traffic is big enough that a 2% userbase for IE7 still means millions of dollars in revenue, you start dealing with a lot of little problems that come up whenever they change a part of their site. I've not had to do much back end professionally but whenever I've come up on problems that are related to back end work, it's usually because of some front end issue that came up which causes me to have to dig into the backend to figure out why it's doing this or that and has less to do with actual architectural issues on the back end. Back end problems seem to have to do with more efficiency and logistical issues rather than bug squashing related to end user's browser preferences. And the farther away from end users you get, the less often recurring problems pop up.

[–]tazzy531 2 points3 points  (0 children)

I would also add that in backend work, there are usually good tools to test the behavior and functionality. With front end, there is a good part that can only be tested visually. So a css change can cause an unexpected behavior that won't be caught until it's visually inspected.

[–][deleted] -4 points-3 points  (30 children)

Seriously. Server-side developers have it easy.

I think this guy has never written worthwhile server-side code.

[–]madworld 4 points5 points  (9 children)

Obviously development on both front and back ends are non-trivial i any relatively complex product. Although the difficulties do overlap, one of the issues that front-end development has to deal with is multiple environments.

Imagine trying to develop something in Java or PHP or any other backend language, without being sure what functions are supported. I've extensively developed on front-end and back... and while I wouldn't discount either as easy, I would say that front-end development comes with many unknowns that back-end development takes for granted.



Agreed. I'm just not sure why so many people said that he has the "best answer" when he simply takes the opposite opinion as the one in the question. "Why do people think front-end is so easy?" ... "It's not. Back-end is easy."

And the people rejoice.

I develop for both front-end and back-end when I'm doing work on the web. The APIs that I write can be consumed by any language on any system that can connect to it. The code I write has to be deployable on both 32- and 64-bit systems. The database layer has to be abstracted enough to work with any database, with any number of syntaxes for doing the same procedures. If someone decides to move from Oracle to SQL Server, the back-end code should not break. If a new piece of hardware is introduced to a system and you need it to give you data that the included drivers do not provide, guess who gets to write a new driver for it? Maybe the author of the post could crank one out for me, since it's cakewalk for him and all. I'll take up his herculean task of writing a javascript module that'll work in older versions of IE in the meantime.

[–]Already__Taken 1 point2 points  (0 children)



Because the phrasing of the question brings out people defending front end complexity so pointing out back end as easy is complementary to the majority of users.

The answer is socialogical not technical.

[–]madworld 0 points1 point  (2 children)

I agree with your sentiment, but to be fair, as a back end developer you can define the environments that your code runs on, but as a front end developer you are guaranteed that your code will be run in multiple different environments on a continuous basis. The op does explain why front-end development isn't easy... and I believe the quip at the end was just for emphasis and not meant to be taken as a global statement.

[–]nschubach 0 points1 point  (1 child)

I suppose that depends on how you do your back-end coding. I've (technical) interviewed people who see JavaScript as a tool to do things that ASP/ColdFusion/PHP can't do on the back end. They never considered looking into JavaScript to handle more than simple inline events. One guy I interviewed with over 20 years of programming experience didn't even know that JavaScript was a prototypical language, didn't understand JavaScript's scoping, and didn't understand why you'd want to allow someone to post data without a page refresh. Of course, he could explain about 40 different ways to handle POST Data and generate HTML from that data... but we needed people with at least some JavaScript experience. His idea of a front end developer was someone that built Style Sheets because that's all he let his front end do.

If you barricade yourself into that mindset and heavily utilize post-backs and simple requests then you may very well have a simple task. However, if you generate pages that utilize AJAX to call services for data and also generate those data pages you may have more complexity in your job than other back-end devs. It all depends on what scope you bind yourself to.

[–]madworld 1 point2 points  (0 children)

I'm sure he started web development in the 90s... and hasn't kept up with what's going on since. Back when there were difficulties with multiple event bindings and before there were libraries to assist in cross browser development.

That's when I started developing. Back when you could keep up with all the cutting edge techniques. Where the same person did the full stack. It was a good time to start, but if you've been under a rock since then you're much less relevant.

Web Development in the 90s... where the layout were tables... dynamic meant CGI-BIN... and the gifs were all animated.

[–]honestbleepsReddit Enhancement Suite 0 points1 point  (3 children)


So, if you're not BSing, then you're writing something far more complex than the "back end code" he is referring to.

The vast majority of "back end web developers" are writing a PHP app that's going to use MySQL or PgSQL or maybe something like MongoDB or CouchDB as the backend. Or they're writing in Rails, Python, etc... still with the same backends...

They're not writing drivers, etc.

As for allowing you to switch database backends -- every major webdev language has ORM and other solutions to make this relatively simple.

None of what you're doing is voodoo except this talk about having to write new drivers which is far outside the wheelhouse of the typical "back end webdev"...


It may be that I think there's a distinction between a back-end dev and a mid-tier dev. Generally if someone is making a few changes to customize a CMS or write something quick in Rails, I'd consider that mid-tier development. Building those frameworks or another custom piece of software that interacts with hardware and reports data to the mid-tier and front-end guys to modify and present in a format the user can understand, is what I'd consider back-end development. Think more of "building wordpress" vs "customizing wordpress".

And have you seriously never written a driver?

[–]honestbleepsReddit Enhancement Suite 0 points1 point  (1 child)


Not an unfair spectrum to look at -- but you're looking at something with way more granularity (and knowledge) than those who write job descriptions and pick titles like "front end dev" or "back end dev"... Traditionally, in a generic webdev job position request - "back end dev" means PHP or Rails or Python, etc...

And have you seriously never written a driver?

Define "driver"...

When I hear "driver", I think "video card driver" - low level code stuff...

If you're talking about something higher level, I'd usually call that something else... an abstraction layer, or some such.


Exactly, think 'video card driver'. A piece of software that allows your computer to communicate with a foreign device. All of the drivers I've written (I've only written 4, and 2 of those were for school projects) were built in C for Unix-based systems.

To be fair, the page title had listed the difference between "front end devs" and other types of "engineering". The author that I disagreed with said server-side code is easy whereas front-end development is difficult. If he's talking more about "using python to script together a shopping cart", then I can understand his confusion by thinking server-side development is easy. If you've already got the code built for you and you write a few scripts to tie it together (think using a plugin for jquery), then of course it's easy; someone else has already done all the work for him. If he's talking about actual back-end development, then he has no idea what he's talking about.

[–]davemoFront-End Engineer[S] 3 points4 points  (14 children)

Nothing like a bit of fresh Ad Hominem to start the day.

[–]jimbobhickville 0 points1 point  (0 children)

I've done my fair share of both, and while relative difficulty is impossible to accurately gauge, I can say that client-side development is definitely far more tedious and far more difficult to debug/optimize than server-side development. It has become a lot easier with all the frameworks springing up in the last few years, but that really just shifted the problem to a different area (page weight is now a serious issue). Imagine if you had to deploy your server code on a mixed set of Windows NT, Windows 2003, Windows 2008, Linux, FreeBSD, BeOS, OpenSolaris, HP-UX, and OS:X, and make it optimal for each system. That's about how client-side developers have it, and why finding good ones is exceedingly difficult (most of the good ones move on to server-side development to maintain their sanity).

[–]sizlack -1 points0 points  (0 children)

He was one of the co-creators of Django which is the most popular web framework in Python. So, yeah, he's written quite a bit.

[–]saturdayplace -1 points0 points  (0 children)

This guy is Simon Wilison, co-creator of Django and Founder/CEO of Lanyrd. I imagine his remark was made tongue-in-cheek, and there are plenty of people who'd vouch for his back-end skills.


I don't think you can compare difficulty between front and backend development. They're just too different.

[–]scoarescoare 2 points3 points  (1 child)

This is it. End of discussion.

What's easier? Ruby on Rails or Microsoft Word?

[–]Nebu 19 points20 points  (22 children)

Having worked on both the front end and the back end at a startup, I'd much rather work on the back end than the front end. Which means if you want me to work on the front end, you'll have to pay me more.

If you think that front-end development is significantly easier and yet pays more, then the smart thing for you to do is to start taking on front-end jobs. Either you'll have have made your life easier while simultaneously getting paid more, or you will have learned a valuable lesson about your industry. It's win-win.

[–][deleted] 0 points1 point  (21 children)

happy cake day!! why do you want to work on backend more than front end?

[–]Nebu 8 points9 points  (19 children)

Generally, the requirements are better defined, so it's easier to know what it is exactly that the software is supposed to do.


I was expecting more of a "the problems are more interesting and fun to solve" thanks for telling me something I never thought of! Its very true.

[–]ell0bo 1 point2 points  (9 children)

The boundaries are always being pushed when it comes to the front end, particularly if you look at a well written front end being the key to reducing load on the back end.


I'm trying to understand this. Does reducing load come at the cost of increasing latency?

[–]ell0bo 1 point2 points  (7 children)

No, it's a matter of knowing the different ways you can pull in data and the processing of that data than can be down browser side vs server side. For instance, we have a graphing utility we are building for the client. We could process all of the graph images server side, or we could use canvas and render the graphs user side, and send all the data in JSON to minimize bandwidth. So we offload the processing to the user and reduce the bandwidth capacities, things like that.

[–]jevon 2 points3 points  (6 children)

I'd say moving graphs to client-side is more useful for usability & interaction, considering you'll have to have server-side graphing for older devices & clients anyway. Pre-emptive optimisation is bad.

[–]badmonkey0001 1 point2 points  (5 children)


"Pre-emptive optimisation is bad." I keep seeing this mantra, but I keep seeing it misapplied.

First of all, how do you know this optimization was preemptive? Do you know that they never tried server-side rendering? I don't. The best assumption we can make is saying that they may have had server load problems they were trying to solve.

Secondly, without knowing their target platforms you can't say that they need to even bother with older devices and clients. With so many browser targets, front-end development has, IMHO, begun to focus on deprecating and dropping antiquated platforms (I'm waving a finger at you, IE). In my opinion, this is healthy.

I've seen the mantra used as an excuse to write sloppy, non-performant, front-end code and as an excuse to "let us back-end devs solve that" (with an inferred "it's too complex for you front-end people"). Let's drop the dogma and use the solution that fits.

FYI: I am both a front-end dev and a back-end dev. I find both challenging and rewarding in their own ways.

[–]jevon 2 points3 points  (4 children)

"We could process ... server side" - this suggests OP decided to optimize from the start. (And it may be that caching rendered graphs is much faster for both server and client - something that profiling will identify.)

I personally find it disappointing how many applications disregard how the web was designed to work. How many applications have links that can't be opened up in a new tab? (Still broken on Gmail.) How many applications break history navigation, scroll bars, hotkeys, screen readers, small screens, accessibility guidelines... for a few shiny widgets that only work on 10% of clients?

"With so many browser targets" is actually a good excuse to move more things into the backend. That's why we have libraries to fix IE Javascript.

Innovation and experimentation must be encouraged but not at the cost of usability, especially when web users have zero loyalty.

(I'm also a front-end and back-end dev.)

[–]jevon 0 points1 point  (0 children)

That's true as well. While on the frontend you mostly just have to deal with browser bugs, Javascript errors & design fixes, on the backend you get to deal with optimization, automation, APIs and theory and all the fun stuff. :D

(I work on both sides pretty much equally.)

[–]cheeeeeese 1 point2 points  (6 children)

Front end development request: "Make this element do this effect like i see on YouTube and Twitter"

Back end development request: "Make my search more relevant, like Google"

i still prefer backend.

[–]Nebu 9 points10 points  (3 children)

Your experiences may be different, but my experience is more like:

Front end request: "I don't like how this form looks."

Back end request: "We need to store the last modified date of whatever the user changes on this page."

[–]cheeeeeese 0 points1 point  (2 children)

I wish my tasks were that easy. Response to first one is sending it back to design, response to second one is a 10 minute fix.

[–]Nebu 3 points4 points  (1 child)

Response to first one is sending it back to design

If I'm the guy in charge of "front end development request", then I am the person to whom it is being sent back to.

response to second one is a 10 minute fix.

Yes, once the customer is able to express clearly what it is he/she wants, it's usually a quick fix. The difficult part in this business is getting the customer to express what they want.

[–]cheeeeeese 0 points1 point  (0 children)

oh i know all too well about translating client requests.. also, there's a big difference between design and frontend development. of course not every company makes this distinction for one reason or another (budget or lack of necessity).

[–]ell0bo 0 points1 point  (1 child)

wait, do you mean for back end, improve the page rank, or actually write a searching algorithm for their site's content?

[–]cheeeeeese 3 points4 points  (0 children)

client: "yes."


Fucking browsers, man. I love and hate front end work. (I do both).

[–][deleted] 22 points23 points  (26 children)

I'm the sole front end developer for a start up and often deal with the assumption that tasks should be easier... Or that my job in general is easy. People are always surprised when I outline what's going onto a project.

The thing is, nothing is ever complete on the front end. You are constantly iterating and refining features which need to be tested on multiple platforms each time. Users need to provide feedback, bugs need to be fixed, new use cases need to be accommodated, the cycle restarts.

It's crazy high pace work with unique challenges popping up all the time. The easiest part of my job is writing code for the server.

Am I wrong to assume front end developers also tend to earn less? I can't tell if I should shop around or I'm already earning what I should.

[–]ramblerman 6 points7 points  (3 children)

I think it's a two sided coin. Ultimately as a front end dev when you implement or design something really cool, the business side can appreciate it.

When I implement a sweet caching solution in the backend of a new system (ie its never been perceived as slow)... well nobody cares :(


well nobody cares :(

Yet it's totally fundamental to any relatively high traffic system. It's hard to deal with real priorities vs everyone else's perceived priorities.

[–]fgutz 1 point2 points  (0 children)

I would care! Good work ramblerman. No seriously I would think that's great.

[–]birdiedude 1 point2 points  (0 children)

Yeah, the things I'm most proud of either no one else understands or cares about and then I throw together some Unix commands to sort directories by size and suddenly I'm "revolutionizing how the company does business".

[–]ell0bo 2 points3 points  (8 children)

I earn more, but that's because I have proven what all I can do. I generally prefer to also call myself an architect, because I am more than just a developer. I have to work with the designers so they don't do something insane, and I also try to keep a pleasant user experience across the entire site.

Between having to know browser differences, making Canvas act properly, explain timing / performance issues, and talking clients off a ledge (as well as that silly JS / CSS / HTML work), I am a lot busier than most of the back end guys with a lot more questions being asked. I get paid more, certainly not less.


Yeah, I've got your job and I earn quite a bit less than the rest of my team. I became friends with the secretary and found out she earns more than I do. I'm a bad salesman, just starting to figure out that I should probably do something about it.

[–]ell0bo 2 points3 points  (2 children)

When I first started 5 years ago, i wrote the entire front end system myself (meaning all the PHP, JS, and CSS). I have since started to focus more on the JS/HTML/CSS and 'front end' and not to much the middle stuff. When I did that, I was being paid 50k when they started hiring contractors at 70k. I left there two years ago, now make 100+, so don't let yourself be sold short. The market is very good for those of us that know what we are doing.


I think my problem is that databases are my weak point (Lack of experience) and this job has been forcing me to use them at a somewhat high level while trying to focus on doing my regular job as well. We should have a DBA, we don't, I end up looking like I'm not pulling my weight sometimes.

I get things done, it just tends to lag a bit when I've got a lot of database work to do. Maybe that's legitimate though - I mean, I'm not a DBA at all and I wasn't hired to be one. I just feel like this situation has been putting me at a disadvantage in the last few months.

It's given me a new appreciation for DBAs. Databases are cruel things. The deeper you go, the crazier they are. I wouldn't wish some of the things I've seen on anyone.

edit: Congratulations on your progress!

[–]thrownaway21 0 points1 point  (0 children)

you're selling yourself short dude. your employer knows exactly what they're doing...

[–]IceBlue 0 points1 point  (2 children)

The best way to get a raise in the current market is to switch jobs. People who stick with the same job tend to make less than others with the same experience in the same field even working in the same area. Bigger companies generally aren't going to give substantial raises when they know you're willing to stay for the same amount. Shop around and see how much people are willing to offer. A recruiter will give you a good idea of how much you can get. It's not weird to get a pay bump bigger than your current company is willing to give you a raise for.

It's not uncommon for people to leave a company and come back a couple years later and more than double their pay. Sometimes you really have to jump ship to find out what you're worth.


You're absolutely right. I think part of the problem is I entered this industry unsure of myself and it's left me very self doubting. I'm very competent and productive, but I always assume I have so much left to learn that I can't be worth that much more.

But then I realize I contribute to our product as much as anyone, help solve problems all of us have trouble with, deal with issues others literally cannot handle themselves, and provide a really versatile frontend one-man team to the company.

I earn as much as my friend who's a line cook for a living. I'm a pretty solid php developer, extremely familiar with Symfony 1.4 and 2, strong design skills, loads of experience with html/css, getting great with Javascript.

No idea why I just let this happen... Ugh. I feel pretty fucking stupid.

[–]IceBlue 0 points1 point  (0 children)

We all have so much left to learn. That's what's great about working in this field. If you like learning and especially like using what you learn to solve problems rather than just for the sake of learning (personally, I find it hard to learn just for the sake of learning), it's one of the best fields to be in.

You need to ask for a raise or fish around for another job just to see how much you're worth, even if you want to stay at your job. At the very least you can use the offer to leverage a big raise. I've heard from many experienced developers is you basically have to change jobs every few years to get a raise. Making as much as a line cook doesn't sound good. I've heard line cooks not making too much. Though I'm thinking starting wages in the context that cooking school is expensive especially when the job you get out of school is min wage line cook. Makes it hard to pay off your loans. If you have a few years experience and contribute a lot to your project, you should be making well above median income in your area. I don't know what the range of salaries are in your area so it's hard to give a good figure but the city I live in isn't too big but still one of the top 100 cities by population in the country with some multinational fortune 500 companies based here. Median income is 35k for a male and 50k for a household. With two years experience getting a salaried job here will probably get you 50k at least. For contractors, maybe 30-50/hr. I'm estimating pretty conservatively, too. I've heard of more.

[–]thrownaway21 0 points1 point  (0 children)

making less than a secretary? take your talents over to a company that realizes how important you are


For backend programmers, you just look for people with a computer science degree and some experience. Nothing like that exists for front end because it is so new.

I think this is why we earn less, typically; however, I would venture a guess it will change in time.

[–]beltorak 5 points6 points  (10 children)

so we need UI/UX design degrees? I could support that.

[–]Pr3fix 1 point2 points  (8 children)

My major in college is New Media Development, which is code for front end engineer and combines 50% UI/UX/design courses, and 50% programming and development courses. I personally love it but there's lot of snobby CS/SE majors out there who think anything that's not CS is inferior.... fun to prove them wrong though.

[–]baconpiexPHP 2 points3 points  (3 children)


[–]Pr3fix 1 point2 points  (1 child)


[–]youarearobot 1 point2 points  (0 children)

Yeah RIT!

[–]malthiest 0 points1 point  (0 children)

I go to RIT, as I read that I thought to myself "We have those! And those! And...oh"

[–]sneakersokeefe 0 points1 point  (3 children)

I am getting a BA in Computer Science. I chose UI design, drawing, graphic design, 3D animation, typography, etc.

Are you taking anything similar?

[–]Pr3fix 0 points1 point  (2 children)

Yes, all of those are components of the major. We also have a new media design sister-major, which is similar but really more focused on learning design principles (however they do learn enough development to be useful). There's new media publishing as well but I don't know much about it.

[–]sneakersokeefe 0 points1 point  (1 child)

That's great! I was kind of worried about switching over to the BA, but I enjoy the design aspect of software.

[–]Pr3fix 0 points1 point  (0 children)

Yeah it sounds like we're getting similar things, although my program is a BS. Our new media design is a BA though


I would love it!

[–]thrownaway21 0 points1 point  (0 children)

as a front end dev, i make close to 100k. startups generally have less money to spend on their sole front end developer, because the team of backend guys take up their dev funds and they all think that the front end guy is doing all the easy work implementing all those cool features.

[–]ctide 4 points5 points  (3 children)

They're in high demand because backend developers look down on front end development. While there are certainly some challenges in front end development, they aren't fun challenges. Dealing with browser inconsistencies is a much less satisfying problem to solve than the challenges offered in backend development. His answer indirectly points this out, but comes to the wrong conclusion. It's not that backend developers have it easy, it's that they get the pleasure of working on interesting problems.

[–]wightnoise 2 points3 points  (0 children)

They're in high demand because there are more good backend developers than good frontend developers. Supply/Demand right? "Fun challenges" is obv. your (and maybe the majority's) personal bias as I would say working on the backend is boring.



Speak for yourself. Not every challenge is tricking Ie into doing tricks - many of hte challenges are related to user interaction, animation, programming visuals, dataviz, games.... you know- fun shit.

[–]thrownaway21 0 points1 point  (0 children)

what? i love front end challenges.


is relatively easier

A statement like this only comes from a position of ignorance

[–]hangerbaby 5 points6 points  (0 children)

I tend to gravitate towards full-stack development simply because I was getting sick of the generalization that I was worth less as a programmer..

So now I'm more of a PHP programmer with front-end expertise. I do still feel that anyone who thinks front end development is 'easier' has an elementary understanding of what it takes to be successful as a front end developer.

[–]Submerge25 1 point2 points  (0 children)

It's easy to say you do front-end, but be bad at it. And consumers of front-end developers don't understand that difference between a bad front-end developer and a good front-end developer. So of course, the bad ones will get jobs and take far less pay, thus preventing good front-end developers from making the money they deserve. It's easier getting into front-end development because all you need is your computer and a browser, so the barrier to entry is less complex that any 14 year old can easily achieve. With backend you need to have much more technical experience in setting your computer up as a server that can parse the code, or purchase hosting. Takes much more to get started in back-end, so less people who are bad at it will commit to it. But front-end should certainly be on the same pay scale as backend.

I think the problem may also lie in the fact that backend is more critical. You need to get the data, so without that, the front-end developer can't make anything happen. So the backend developer has the leverage in terms of being the person who is hit up first before front-end and thus looks more 'important.'

[–]mjanisz 1 point2 points  (0 children)

take a real front-end developer not a college kid knowing some css basics...Been working on some big projects, with JS more advanced than using jquery to change opacity of an image:) Create all the ajax responsible for calls, use backbone and do some real stuff. frontend is way more than just cutting psds


I don't think it is easier, personally. While the languages may be easier to pick up... you have to be someone who can code well while being someone who understands good design. I know the backend guys where I work are clueless when it comes to good design. It is like a left-brain, right-brain crossover that is required in order to be good at front end.

Beyond the small build out coding of HTML/CSS/Javascript a user experience engineer will also have to know how to best optimize click through and simply the flow of a website. Again, not necessarily the strong point of a strictly backend coder.

[–]deralte 3 points4 points  (0 children)

To expand a bit on that a back-end C# developer, for example, often operates only within C# (and some form of database language). And while C# certainly is a great language that has incredible depth, one only deals with one syntax. A front-end developer needs to know many different syntaxes.And there are many ways of writing the same thing (just think about the many ways to create "classes" in JS). Often front-end developers also need to know a little about back-end, even though I do know some that are front-end only.

Personally, during my web development years, I've ended up with knowing about html, javascript (and several libraries), css (with all the browser specific elements), PHP, ASP classic, AS2, AS3, C# (mostly for file handling/conversion and file monitoring services) and C# mono for Unity3D, Obj-C (for phonegap plugins), MS-SQL and MySql, Flash Media Server (or streaming in general) even some multi-player gaming concepts (which is huge just in itself). Next to that I need to know how graphics, video, animation, and audio should be done so I can tell the people responsible for that how to deliver that.

And since I'm mostly the last one in the production queue I often end up fixing some of those things, so I also need to know Photoshop, Illustrator, After Effects, SoundForge and what not.

Then there is the platform issues, IE6-9, webkit, firefox, opera, android, iOs webkit, screen sizes, performance, the list goes on and on.

There are probably some things I forgot. It's not for bragging, because of course I could never be as good as someone who does only one of those things. So if it's true that front-end developers are in high demand, i suppose it's because you can get a long way with just them before you need to bring in extra man-power.

(I've been working with this since '98. Also I still sometimes wake up at night, crying, because of Real Player)


Not to criticise your (valid) points, but what you said was already mentioned in the answers to that question.


The main post was TL;DR so I just came here to answer the title. My ADD has burned me yet again =( lol


Actually, to be fair, I think many of those answers have been blurred out for users who aren't logged in.

I didn't realise till my workmate mentioned it - I think Ghostery or something similar on my system might've unblurred the rest of the answers for me.


Fair enough!

[–]bean-the-cat 1 point2 points  (0 children)

I am late to the party, but noticed a major thing missing in this thread. At most larger internet companies, front end software engineers are responsible for the middleware. So on top of all the traditional front end technologies (html/css/javascript) and their new counterparts (sass/less/coffeescript/etc) and the newer libraries (you gotta know your mvcs, mvvm, etc frameworks these days), you ALSO have to know whatever server side technology exists at your company. For us that is Ruby/Rails, Java/Spring/Play, or a Python solution. I didnt even mention all the testing that goes into each layer or the fact that most middleware contain a database component on top of having to integrate with all the services that the back end teams provide to you.

It just comes down to the fact that high payed front end software engineers have to have a CRAZY broad skillset.

[–]thened 0 points1 point  (0 children)

Front end folk are technically closest to the customer. The technology stack also changes frequently and the field hasn't been established for so long making it tough to find quality people.

It's probably more cost-effective to make the front end look nice and gain customers to build the business than to focus on the back end and have a so-so front end.

[–]turkishmonky 0 points1 point  (0 children)

I think the demand isn't always necessarily for front-end developers, but for developers that do both front and back end of a internet-based application. A lot of the time, that type of developer is mischaracterized as a front-end developer.

Basically, start ups want someone who can do everything (probably because they perceive it as cheaper then hiring 10 people part time).


It's not easier, possibly more accessible because you can look at any front end code in a window in your web browser. But, that accessibility means the whole industry is filled with a huuuge range of people, from douchebags to grandmaster wizards of script, and the likelihood of some non-front end developer meeting a few bad apples who make front end development look like a silly pursuit for absolute clowns is pretty high.

This is all wild speculation built on all the stories I've heard that go like, 'I hired a web developer and it turned out he was a total idiot and now I have no monies and no functional website, either.'

This also is why good ones are in high demand.


Great stuff, I always wonder about the opinion of those who take there work seriously.

[–]takatori 0 points1 point  (0 children)

Because users and investors couldn't give a shit about the back end; they see the front end as being the product.

[–]filterspam 0 points1 point  (0 children)

Everything is easy when you don't understand it which is why some people seem to think people doing things other than what they do have it easier all the time.


Pretty > Functional


All the answers on there are good, but they're all missing the biggest part:

Front-end developers usually aren't paid as much as the backend guys. Once someone is Damn Good(tm) on the frontend, they'll top out at about 100k. If they can translate that skill to a backend role, they can get up to 150 or so.

It's like the divide between Dev and QA. Really competent QA people are rare, and worth their weight in gold. But the idea that Dev > QA has become so engendered in the community, that all the QA people who have any skill become developers so they can get paid more.

[–]jevon 1 point2 points  (0 children)

To be fair, expert backend developers are priceless - they're the ones that build SQL optimizers and network load balancers in their spare time.

Good QA people are truly amazing. My work is so much better now that we have one.


Now we should discuss the salary disparity between lead/senior developers and "code managers".

[–]o0o -1 points0 points  (0 children)

It's generally not considered very fun or l33t.

[–]x-skeww -1 points0 points  (0 children)

I wouldn't say that front-end stuff is harder than back-end stuff. However, it's certainly true that it's typically a lot more annoying. Working with a single fixed environment is so much more convenient than having a dozen of those of which 5 are utter shit (yes, those shitty ones are IE6, IE7, IE8, IE9, and IE10).

It's similar to writing games for PCs vs writing games for one specific console. Not having to test everything over and over again with different kinds of hardware and different drivers & operating systems is certainly a big plus.

There is also the problem that most of the front-end tech is kinda old and perhaps not as good as it could be. You can't just swap things out and try different pieces of technology as you can on the back-end. On the front-end, there never was any competition, no survival of the fittest.

For example, JavaScript is a fairly simple language. Unfortunately, it's probably too simplistic. The language itself doesn't offer any options for organizing your code, which makes writing bigger applications more difficult than it should be.

Also, with JavaScript, you won't get good tooling ever, because you don't know what something is unless you actually execute the program up to this very line. To make matters worse, things can be different the next time you hit that line.

So, yes, some thing are indeed a bit harder, but they aren't inherently harder. Our tech just isn't as good and our stuff has to work in many different environments.

Essential complexity is usually a lot higher on the back-end. There also may be cases where you have to talk to all kinds of brain-dead systems using bat-shit crazy mechanisms. Things can get pretty ugly over there, too.

[–]thrownaway21 -2 points-1 points  (0 children)

it must be easier since i've had to offer suggestions/fixes to backend developer on their code.