UIs are built for users
Consumers of technology understand the UIs (User Interfaces). UIs are made to be understandable for non-technology people. The UI/UX and HCI fields of study are focused on lowering the barrier to entry for folks wanting to use tech. Underneath the veneer of beautiful UI is code, which 9 times out of 10 is a mess.
Why is code a mess?
Code in general is a mess. This is not an indictment on any developer but more a comment on legacy code. Code builds on itself, hacky spaghetti get approved, and tech debt accrued. It's just something that happens with time due to a variety of reasons. IMO in specific UI Code is a special kind of mess. The reason is that the Frontend ecosystem is a mess.
Challenges of Frontend
There are multiple entry points to the field. Professionals join the field from boot camps, universities, and back end. Each one of these disciplines teach different programming paradigms. Javascript itself doesn't enforce any particular programming patterns (OOP/Functional) and frameworks/libraries for the most part continue this pattern. It's because of this I've found quite a few Frontend code bases that don't support intuitive patterns.
Frontend is in flux. We've survived the Browser Wars, FE Framework Wars and are going through the tooling/performance wars (Remix/Next/Nest/Blitz/Redwood etc. Frameworks that are just packages of framework ecosystems). The wars continue because as a community we still haven't figured out the proper way to build frontends. Frontend pattern (routing, data passing, SSR/SPA, BFFs etc) best practice are left to be answered by a number of different libraries where it takes quite a bit of experience to understand each use case.
Challenges for Junior Frontenders
In my experience, at every company I've worked at, not once have ever been able to solely focus on building frontends. That could be because of how I work or some other reason. At startups I've had to wear many technical hats and at enterprises the frontend practice was new and still required much backend work. At any size I've found a lack of understanding of the Frontend community/scope of work.
From undeliverable designs to executive off handed comments creating scope creep, the Frontend doesn't seem to be well understood. I've also found that velocity measurements of frontend workloads to be wildly variable.
Core Web Dev concerns for Juniors
With all that variability on the frontend, many infrastructures aren't setup for truly JAM stack applications. Servers/Lambdas still need to be provisioned for proxying into internal networks and data munging. This adds devops and backend concerns to folks who just want to push divs.
Top comments (0)