DEV Community

Discussion on: Things Nobody Told Me About Being a Software Engineer

Collapse
 
anaulin profile image
Ana Ulin 😻

Yes! There is a weird relationship between these two observations: building cross-browser UIs and writing solid CSS is hard, and yet some places in the industry doesn't seem to value frontend engineers as much as backend engineers.

I wonder if there is something about how good UIs are, at its core, a more people-centric part of the software and, as such, are somehow seen "less technical" and thus less valuable. Point #8 in the list all over again! 🤔

Thread Thread
 
yes_we_cat profile image
e-neko

I decided to subvert this trope and became a front-end engineer after years of desktop and back-end development. And indeed I discovered a few things.

  1. Most programmers don't believe they need a front-end. Only market-oriented project managers do.

  2. The perceived lack of appreciation often stems from dire shortage of competent UI specialists. Programming "in jQuery" is easy, but writing good, efficient, responsive, intuitive and resilient UI is just as thought-intensive as implementing a complex algorithm. And, unfortunately, 99%* prospective employees can't handle simple asynchronous funnels without drowning in callback hell. It's a skill best acquired writing multi-threaded C code, which most front-end developers never did.

  3. The salary is often low when the management compares expectations of a competent engineer with the aforementioned 99%, which know not to ask for much.

In the end, that's why only a few companies have products with stellar UI. And this spark is lost the moment some new "efficient manager" decides to outsource or otherwise downplay the importance of good UI.


  • based on personal experience interviewing people. yes, it's that bad.
Thread Thread
 
shiling profile image
Shi Ling • Edited

Yeah, interviewing for front end engineers is really tricky. I mostly ask for code walkthrough of portfolio projects, but most don't have the complexity of real world projects.

And you're right, there's a lot of async logic going on on the UI for complex apps. In my experience, that's hard to grapple for a lot of programmers, frontend and backend. And before modern frameworks like React, Vue, making sure the the UI properly handles update events being dispatched from multiple sources, resolving race conditions, and updating the view correctly is difficult, it was hard not to end up with spaghetti code. It's a good thing I learnt to do a bit of video game programming in a side project, and took some of lessons learned there and applied it to front-end engineering on the web. Video games UIs are super sophisticated, but proper modelling of object and events can go a long way in to keeping things sane and maintainable. At least now we have modern frameworks to help.

People who say frontend is easy are usually thinking it's just HTML but that's not true. There's security, storage, cache management, performance, user experience and much more to deal with.

Thread Thread
 
suprnova32 profile image
Patricio Cano

People who say frontend is easy are usually thinking it's just HTML but that's not true. There's security, storage, cache management, performance, user experience and much more to deal with.

That is true, but at least 95% of all web applications do not need this. I’ve worked on a couple that had really complex React front ends that absolutely did not require them. It just resulted in hard to maintain code, all because management wanted to use a hip framework.