
Ask HN: Moving to Front End Engineering after 10 years in back end, worth it? - sidcool
Have been working with Java, Scala and Ruby backend with some front end experience (Basic JS, HTML CSS).  I now have an opportunity to work in depth on front end engineering.<p>The front end landscape has always seemed quite messy and fragmented to me, and honestly a bit scary too.  I am fine with taking the leap of faith, but wanted HN community&#x27;s opinion on whether it would be an enlightening experience.  Is there something like &quot;too late to move to front end&quot;?
======
papaf
I ended up on a frontend project recently and I am doing my best to get out of
it. Its a nightmare.

Imagine a scripting language that you have to compile into another scripting
language. Lessons from decades of shared experience completely ignored,
terrible IDE support, framework descriptions that are more snakeoil than
technical documentation, the worst dependency hell there is with minor updates
breaking APIs, and an unhealthy worship of Google and Facebook.

No offence intended to Javascript programmers -- I just don't like frontend
development.

~~~
woah
That's a pretty silly opinion. The fact is that writing interface code is
actually hard, and it tends to have many moving parts that are hard to fit
into any abstraction. Have you tried writing, say, iOS interface code? It's a
bloated monstrosity, although autocomplete is a tiny bit better. There's a
reason that so many companies ship electron and react native based apps, even
though they have worse performance. It sounds like you've gotten into a field
that you always held a misplaced disdain for, you've discovered that it was
harder than you thought, and now you are blaming your tools.

~~~
EpicEng
"Hard" or just frustrating? I have found the latter to be true. You're not
solving difficult technical problems; you're fighting your tools and figuring
out the quirks of the hundreds of abstractions and third party libraries you
rely upon to make widgets do their thing.

~~~
milesvp
Hard isn't the right word. Unnecessarily complex is more accurate.

What I've seen in js mirrors a lot of what I saw in php 10 years ago. JS is
now the easy language to get into, and so it has the most inexperienced devs
with the least access to greybeards to at least show them what to avoid. The
result is people who don't quite realize how insane the whole toolchain is.
I've got a setup at work that makes make seem like a friendly dev requirement.

------
mmosta
With the rise of single page applications there is immense demand for the
rigor and form that seasoned back-end developers can bring to front-end teams.

Immense state trees, webworkers, asynchronous changes, tiered caching, pre-
emptive fetching, modularization, optimistic rendering, validation, behavioral
analytics, testing and more.

This is all without even getting started on actual presentational aspects.

The pace of the ecosystem in recent years and the immense amount of legacy
code (10 years+) that doesn't scale to growing teams/projects is a problem
everywhere you look.

The good news is companies looking to bring their front-end up to date are
facing the same foreboding sense you have that comes with the unfamiliar.

Fragmentation is coalescing around major frameworks and fringe features from a
few years ago are standards today.

It's not too late, understanding the tooling is critical (end-to-end IDE
through to the browser and beyond) and will provide you with a solid basis.
Follow this up by reading the APIs of major frameworks then pick one (any one,
it doesn't matter) and build something with it.

~~~
tyrw
You should take the advice of this comment. The reason there are many moving
parts is that the space is retooling to push the limits of what is possible.
If you enjoy learning and solving problems, it's great.

~~~
user5994461
They hardly make anything that was not already possible with PHP and its
tooling 10 years ago.

Well, maybe there is more animations, more tracking and slower initial page
loads.

------
wayn3
If you have 10 years of experience and still think of yourself as "a backend
guy", you're doing something massively wrong.

No offense. Your skills should be applicable across the board. You either have
a confidence issue or haven't developed skills that are in line with your
experience.

There's no reason for you to not be able to " move to front-end ", although I
don't get why anyone would want to do that. It's an undocumented mess,
dominated by hipsterish framework cults.

This is going to be offensive to the front-end crowd, but if you need a new
framework every other month, at some point you have to realise that the
underlying technology is garbage and needs to be replaced.

I've gone through the react tutorial multiple times and I still don't get it.
I don't get how to build it (webpack info npm or whatever), I don't get how to
do things because there is no documentation. And that's not because im slow.
Yesterday I picked up ethereum from scratch, evaluated three of their
languages and deployed my first smart contract on a 4 hour train ride. And
ethereum isn't exactly well documented either.

But try googling react api and enjoy the non-results. Impossible to understand
unless you're part of the cult. Requires full immersion. Front-end seems to
have gone full retard and citizens of the internet know to never go full
retard.

Nothing compares to the mess that is front-end development.

~~~
ice109
I have no clue what you're talking about re docs - i went from zero front-end
experience to having a working spa with router and redux and material
components in like 2 weeks after going through the react training tut and
abramov's redux videos on egghead - maybe you're the one that's not good as
you think. people dramatically exaggerate how "messy" the react ecosystem is.
you can figure everything out by using chrome dev tools with the react and
redux extensions and a little chatting on #reactjs. but whatever more full
stack jobs for me I guess.

~~~
wayn3
you needed

\- the react training

\- abramovs redux videos on egghead

\- chrome dev tools

\- chrome react extension

\- chrome redux extension

\- a chatroom full of experts

that kind of confirms that the docs suck.

i'm not competing for "full stack" jobs. enjoy 'em.

~~~
_Tev
Gosh, you sound like there's nothing to learn on backend.

Seriously, maybe more humility will help you improve. Frontend is super easy
to learn for beginners (anecdotal evidence of me and like 4 other friends/guys
I know). And MDN is vastly superior to e.g. python docs I've encountered so
far, or heard/seen from my python friends.

------
_Tev
Frankly asking here about frontend is a bit pointless as it's too fashionable
to bash it.

It'sof course not too late, actually situation is now pretty stabilized ...
There are 4 major frameworks (React, Angular2/4, Ember, Vue) with lots of
traction, the "mess" everyone is talking about is just pointless obsession
over HN/reddit news, I never got what are these people talking about. Actual
(you know, the ones that do it instead of "trying it" and then bashing it
forever) frontend developers don't switch frameworks often. If they're skilled
enough they can branch out, because concepts are very similar (ok React is a
bit more ... different) and field is of course young so what was great 6 years
ago isn't favored today. But situation from 3 years ago (Angular1, Ember,
React were the biggest ones IIRC) was actually quite similar ...

Of course it depends on your priorities, and you haven't stated many of them.
E.g. I like super quick prototyping and testing stuff on frontend, something
hardly achievable with Java / C++. But maybe I'm just unaware of some tools, I
just "tried" it, as many people here "tried" frontend :D

------
frigg
From my very limited view in my opinion it's not worth it. There is an
abundance of new frameworks and libraries and everybody wants to go for the
"new cool thing". Things break a lot, things change fast and you need to
always learn new stuff which are not necessarily better. It seem annoying and
overkill to keep up with everything in the front-end world. Plus, there are no
interesting problems to solve there.

~~~
tyrw
Why give throwaway advice? "I don't really know the space, but here's what you
should do..."

~~~
frigg
Did I say I don't know the space? Does it sound like I never did front-end
development? You should learn how to parse properly. I tried it, it sucks, and
that's why.

------
wmil
I should warn you that employers tend to look at front end skills as an excuse
to pay you less.

The upside is that they're much more transferable between companies. Everyone
wants to hire experts in their current back end stack, but everyone needs CSS
& JS.

------
user5994461
Terrible idea. Stay away from that.

Everything is changing every year, pushed by young people who have no clue
what they are doing and don't care about hours and work conditions.

Meanwhile, companies exploit them as much as they can to make new products and
get all the returns of their work.

You have access to a much broader set of jobs with Java and Scala.

------
CodeTheInternet
Should you gain more experience with front-end, especially Javascript? Yes.

Should you change career paths to front-end? Absolutely not. Front-end is just
that; web development. With Java and Ruby experience, you're not stuck to just
web development but can branch off into other fields much easier.

------
bobbytherobot
Is it worth it?

From a financial standpoint, it depends. The range that is front-end covers a
vast range of talent. A person could be labeled front-end while theming
WordPress websites, while another person is also front-end working on a large
product where engineering practices are important. In that range, the pay is
going to greatly vary: $30k - $250k.

From an enjoyment standpoint, it too depends. If you enjoy solving user facing
problems, then front-end is your thing. It isn't just about how to you
retrieve the data, but how does the user interact with querying and then
reading the results.

The front-end landscape does appear scary, but you need to realize that you
are seeing a much wider landscape than you are with Scala and Ruby. Compare
the front-end landscape to the data storage landscape. You got MySQL, MS SQL,
Oracle, Redis, Mongo, Solr, Active Record, Datamapper, Hadoop, etc. If you
tried to master all of it and follow every new library that came out, you
would go mad. So you focus on a certain area while occasionally looking
around. Do the same thing for front-end. Do you want to be working on large-
scale applications, then focus on things like React and TypeScript - things
meant to solve large-scale issues. If you want to make brochure websites, then
focus on jQuery and CSS.

------
wyclif
Front-end is fast moving indeed. I don't have any definitive answers for you,
other than to say that in the front-end vs. back-end equation, front-end is
lot less stable and is going to require more time keeping up with new
developments.

~~~
sidcool
Indeed, there's a new shiny framework every other week.

------
ud0
The demand for skilled Front-end engineers have gone up. Looking at the
responses from this post you can see that a lot of back-end engineers find it
hard to tame the beast that is Javascript & this mis-understanding has slowly
turned to hate. Thus while they run away from it, this leaves an large
opening. Let's face it the bulk of services we use now live on the web and
Front-end is going to be around for a long time. Someone has to take on this
task, this is why over the years I've personally seen front-end engineers earn
the same as back-end engineers I don't have the statistics but I know folks
personally. As people run away from JS this creates a demand for front-end
heroes willing to take on the ever changing landscape turbulent but necessary.
For crying out loud you are reading this comment on a page.

------
bsvalley
Sure, it's also what we call a fullstack developer ;)

~~~
Raphmedia
+1 to this.

Where I am from "Front End" is still seen by HR as the guy who slices PSD
templates into HTML layouts and they pay accordingly.

Calling yourself front end is doing yourself a disservice especially since you
have all those years of experience in back end.

------
wolco
A bigger question would be are you willing to take a step back. In your
previous role you were probably fairly senior developer. Moving to the
frontend you'll probably be more junior are you okay with that change?

------
1ba9115454
I've never understood the split between front end and back end.

Whenever I've assigned web work to developers I assign in terms of
functionality and they write front and back. I think this is quicker than
trying to communicate between two teams.

But to answer the question, why not. Then you're a full stack developer.

~~~
Sorreah
This is like saying you never understood the split between a carpenter and a
welder, when both are involved in producing the finished product of say, a
cabinet.

Sure, for simple enough projects a single person can do both, but doing that
severely limits your potential scope.

For more complex projects, it's more convenient to have someone who
specializes in carpentry provide the specs for what the welder needs to
provide.

------
Mayzie
ITT: Lots of front-end bashing and humour.

------
ionised
I'm a back-end Java/Scala dev too with a bit of experience in front-end tech
(mostly for our internal data management web app) and honestly, I find front-
end stuff awfully tedious and messy.

It seems to me to be a spaghetti nightmare of brittle frameworks build on top
of a teetering stack of already brittle frameworks and badly designed
languages (looking at you JS), made worse by the almost hipster-esque
obsession with jumping on new frameworks every 6 months that seem to offer
nothing but a reinvention of the wheel.

And don't get me started on Electron.

From my own personal experience I think learning a bit of front-end stuff is
valuable, but I'd stick to being primarily a middle/back-end developer. That's
where all the interesting stuff happens anyway.

