FWIW, I'm a frontend dev now, but I grew up with a 14.4k modem writing HTML by hand, having just missed Gopher, but that was still before JS and CSS were invented.<p>I think part of the difficulty of modern frontend dev is that you're dealing with 20+ years of, well, tech debt. HTML was initially a document markup language (think RTF) that just exploded beyond anyone's wildest dreams. CSS and JS were tacked-on afterthoughts made by generations of competing browsers, operating systems, and device types. It's layers upon layers of iterative, revisionist, evolutionary, revolutionary design all rolled into one. It's a mess. How could it not be when you start out with a document layout and somehow end up with a multi screen real time phone app?<p>That explains the technical part of the chaos, at least (which continues today with the 500 -- no sorry, 600 now -- different React frameworks). But there's also the design side of things.<p>The last few decades have seen tremendous amounts of resources, research, and conflicting opinions poured into UX and marketing, studying the best ways for an ultra optimized hyper-button to encourage someone to spend a dollar more. It's a 5-way intersection of art, science, marketing, unhinged capitalism, and your manager's personal opinion. Recipe for success, right?<p>That said, it can also be a lot of fun! You're juggling both technical complexity and human ambiguity. None of the research is perfect, none of it applies to every user or every use case, and none of it is going to be right for every organization, team, or project. There's always room for nuance, which means there's always additional complexity. I'm not arguing that's a good or bad thing, just that it's the reality. Like any novel or painting or advertising poster, people are going to disagree on how effective it is.<p>That said, there are still broad trends and patterns that many organizations have found to be useful in most cases. These eventually become enshrined into standard best practices, by which I mean specialized think tanks and bloggers mostly agree on them, and if you're really lucky, sometimes they even get enshrined into standards (like WCAG accessibility criteria, which are designed to make the web more user-friendly for all, not just people experiencing disabilities).<p>So all that said, here are some actually actionable things you can look at. They're just starting places, so it's fine if you don't agree with all of them.<p>A good short book with useful patterns: <a href="https://www.refactoringui.com/" rel="nofollow">https://www.refactoringui.com/</a> It's one of the best resources I've come across in 20+ years of doing this.<p>The CSS framework made by those authors: <a href="https://tailwindcss.com/" rel="nofollow">https://tailwindcss.com/</a> By framework, I mean a set of composable CSS utilities (think "library of style snippets") that abstract over the raw stuff to make quickly reusable functions. It's fine to learn raw CSS, but in day to day work we almost always use a framework of some sort to make life easier, only falling back to vanilla CSS to make modifications when necessary.<p>Nielsen Norman is one of the big names in UX and accessibility research, and they have many wonderful free articles: <a href="https://www.nngroup.com/articles/#popular" rel="nofollow">https://www.nngroup.com/articles/#popular</a><p><a href="https://www.linkedin.com/learning/" rel="nofollow">https://www.linkedin.com/learning/</a> (formerly Lynda.com) offers high quality paid video courses for frontend dev, UX, and accessibility. It's my preferred way to learn new concepts.<p><a href="https://mui.com/" rel="nofollow">https://mui.com/</a> is a set of composable React components (primitives/widgets like a button or a modal popup or accordion or a card, etc.) that make composing a full app much easier. It's overwhelming to start out with something like this, but just take a look at their component examples and templates marketplace to see what you can eventually build up to. Many teams will use a framework like this or build one themselves internally so they can design and write components instead of raw HTML (which isn't very reusable or composable). This is the major strength of React, and why a lot of teams use it (easier to share and reuse components between team members, teams, projects, and generations).<p>I won't get too much into frameworks here, because honestly they're all going to be out of date by the time I finish this sentence (sigh). Frontend makes you feel old.<p>Just think of it as an art project where you're also learning to weave the canvas and manufacture the paintbrush bristles yourself while also designing the gallery around it, but the construction company is experimenting with some new building materials and the government decided to revamp the building code for the fifth time this year. That's frontend dev for ya... don't worry lol, nobody can keep up, we all just kinda fake it and try our best :)