This. It requires a far wider range of skills to be a really good front-end dev. UI, UX (which are 2 different skills in their own right), design, on top of coding for a set of platforms that, taken together, behave as erratically as a drunken raccoon. I’d much rather do “complicated” back-end stuff that is glorified CS 101 than have to design and build a web interface that has to be intuitive to use, responsive, accessible, and works on IE11.
The problem is that everyone notices the terrible UIs, but really good interfaces get out of your way so you don’t always notice how good they are. Hence a lack of recognition for good front-end devs.
I've done both. I can see where the recruiter is coming from, even if the way they put it is completely disrespectful. I don't think it's a matter of one being more "serious" than the other. Let's say a front-end engineer and a backend engineer spent an equal amount of time studying their craft over 10 years with the same amount of efficiency. Most places will only need what the front-end engineer learned in their first 3 years with whatever updates to the stack are relevant along the way. For the backend engineer, all 10 years of that experience could be put to good use.
For the recruiter, it's probably all just supply and demand. They might not even know what they're talking about, and are just basing it off of some gut feeling they got from an article they read somewhere. If they were having a hard time filling a spot, I'm sure their tune would change.
It depends, as both front-end and back-end have large ranges of complexity. In general though, if you were to compare the most extreme case of back-end complexity to the most extreme case of front-end complexity, the back-end case would be more difficult.
The worst case of back-end complexity requires very in-depth knowledge of hardware, networking, distributed computing, OS internals, and then knowledge of a couple of languages and CS fundamentals thrown on top.
The worst case of front-end complexity requires learning and writing tooling to make writing desktop replacement apps in a browser a less terrible experience. Tack on UI/UX design, you are still not quite at the same level of complexity.
I don't mean to say that front-end isn't difficult or that it doesn't take years to master, just that back-end is even worse...
I've run into back-end developers completely helpless when asked to do anything front-end - and even those mingling with it usually do not know the struggles of cross-browser compatibility and accessibility.
So no, being fullstack (that is being mediocre on many things, and excellent in none), I do not consider front-end to be less serious.
I think that opinion takes roots in the apparent simplicity of good ol' HTML vs the requirements of a complex algorithm riddled back-end.
Especially with the rise of complex front-end frameworks, that difference in 'seriousness' tends to fade away in my opinion.
And for the sake of the argument, there's a deeper complexity to satisfying users and clients with front-end (and the fact that everyone's a critic) that back-end folks do not encounter.
The definition of "front-end" is still quite broad. There is still a large number of people doing classic front-end work which is more like HTML/CSS/little bit of JS or Jquery. This work never goes away because it's still so labour intensive to style and theme sites. But this work is certainly seen as "less difficult" and pays less.
It depends, I've met developers who considered everything above the database to be 'front-end' and front-end developers who consider their domain to end 'as far back as' the Service layer so I think the line is not so clear cut. On the otherhand, I consider myself a back-end dev who is happy writing from the Controllers back to SQL if necessary. I don't think in terms 'seriousness' but I firmly believe front-end UI work is a completely different skillset and is far more art than science.
No, I think they are both challenging. I'd say someone who knows a lot of back-end and a little front-end knows about as much as someone who knows a lot of front-end and a little backend. Except front-end insists on constantly changing so your skillset is going to expire a lot more quickly there.
Modern SPAs are more complex than most backends. UIs always were more complex than business logic even in desktop applications.
However the business logic is nearly all inside the backend and it's where the important decisions are made. So backend developers use to be closer to architects or are the architects. You need a more senior person to do that job.
ultimately it depends on the implementation, but in general it seems like, assuming perfect decoupling and nothing unusual, it’s less involved to swap out a front-end than a back-end, nor sure if that’s a clue one way or another but it’s what came to mind
I could re-write an angular front-end using react by using the same back-end API, but if I rewrote the backend I may need to tweak the front-end as well, or go to extra lengths to mimic the API perfectly so the front-end can continue to work seamlessly, which in my experience seems less likely to happen
Backend server side work requires a deeper knowledge of things like Threads, sockets, processes etc. Some knowledge of languages like C etc is generally a requirement.
In general front end work requires knowledge of HTML, CSS etc. which kids do in high school.
Having said that they are both separate skill sets and supply and demand probably plays a part. There are a lot of people who want to be front end people - designers etc, you get to wear cool designer glasses and have meetings about user experience, while sipping lattes.
Back end guys sit with workstations and talk about boring things like sockets and memory usage, so there's less people who want to do this stuff.
Thats probably why full stack developers are more expensive and rarer you need a bit of each.
Definitely didn't make this thread to argue with people who responded, but I do wish to provide a counteropinion to a couple statements there:
> Some knowledge of languages like C is generally a requirement
I have never heard of anyone using C for back-end web server code, unless they were contributing to open source tooling. When have you used C for this? I would maintain it's a total rarity and not by any means essential knowledge.
> front end work requires knowledge of HTML, CSS etc. which kids do in high school.
I don't see the connection between "age at which education system introduces basics" and "complexity of the field." This is a curriculum failing more than anything. Do you mean to say that if we introduced databases into the high school curriculum then you would stop considering the back end to be "serious"?
> server side work requires a deeper knowledge of things like Threads, sockets, processes etc.
And front end work requires a deeper knowledge of things like async code, promises, websockets, and so on. Idk, I've worked both sides of the coin and I don't see that the one is significantly harder than the other.
Yes, no argument from me there are different skill sets, I used C as an example - insert SQL/Python etc.
I think the main reason is, as I said, supply and demand. There are more people who want to do front end, I know a lot of graphic designers who are now calling themselves front end developers cause its cool :-).
So imho you could divide front end people into two groups (and I'm painting with a very broad brush), those who fiddle with HTML and CSS and are front end developers, and those who use things like Angular, jQuery etc and know about async etc.
Agents in general try to get the price down, so your job is to put yourself in the second camp as a rare commodity that can do the more exotic things. In my experience many (most?) agents don't have any idea about what they are recruiting and have a check list of HTML/CSS/... - they're a front end developer, I can get them for this much etc. Personally, I'm not sure how to go about this (I call myself a full stack developer, cause its easier to negotiate decent money), but I'm sure someone on HN can give you an angle, good luck.
Edit: one thing I've noticed is adding Typescript to your languages makes you look more serious and gets better dollars, so pop that in if you can
it sounds like you're comparing a junior (high school-level?) FE to a senior BE.
in my experience FE is difficult because your code is generally running in a lot of different environments and you have to create something that works reasonably well in all those places. oh yeah, and then there's a human who actually uses the product and who knows what crazy stuff they'll do.
maybe a good distinction is that FE requires being comfortable with a lot of uncertainty, whereas BE is appropriate for people who like things 'just so'.