One of the most frustrating interview questions I get is some variation of “do you prefer front-end or back-end?”
I don’t have a good answer. “I like both” never seems to be enough, although it is the most truthful.
One great idea I had (a few days after the interviews) is to ask the interviewer to clarify: Exactly where do you draw the line between front-end and back-end?
One definition that I saw recently was “the frontend is the part the user sees” and “the backend is all the stuff that happens in the background”. That is pretty much the way I have always understood the separation of front end and back end as well, and generally the assumption I have made when I try to answer this question.
I like both, but I’m really much better at programming than photoshop.
For many people this doesn’t work well. They think of “front-end frameworks” like React and Angular running on Node.js and possibly even talking to a MongoDB as being all front-end work. At some point in the previous sentence, I’m pretty sure we entered the back-end territory. Or perhaps the backend is the server administration, or the factory where they build the computers?
The problem is that more and more people have decided that “front-end” means “runs in the browser” rather than “what the user sees”. And there are a lot of popular frameworks that put more of the website functions into the client-side of the application.
(And if you want to get paid for any of that, you should also learn a ton of sales and marketing skills to get past those interviews…)
The real issue, as I see it, is the desire to save money. Front-end skills have been less valued than back-end skills on payday. So the more skills we can push into the front-end, the less we have to pay our programmers, right? Not to mention that we can get one “web developer” to do the work of a designer, a copywriter, a programmer, a devops expert, and if we are lucky enough to find a genuine unicorn – maybe even run some wire and build our network! (All for the price of whichever job title pays the least…)
Now, being a Renaissance kind of gal, I like the idea of the “web developer” who does a little of everything. I like the variety and the challenge. The problem is, dividing my attention between all these functions leaves me competent at most of them, but an expert at none.
That is bad for my career, and bad for my employers who may need more expertise to keep their servers running fast as their website grows, or who can really double that website traffic with a few well-placed keywords.
So you want to pick back-end because it pays more, right? Not really. Really GREAT designers can make more money than most backend engineers. If you want to make really good money you need to pick something you enjoy and are good at and then become GREAT yourself. The expertise is where the money is, not the job title.