Introducing my approach to Frontend Development learning
This guide begins, as many things in life do, with a problem. I am searching for a new position in frontend development and preparing for the interviews ahead. It is hard not to be overwhelmed by the sheer amount of knowledge you might be asked about.
Routing, Responsive Web Design, Lazy loading, Accessibility, Optimization, SEO, Different Architectures, State Management, Data structures and algorights, Testing, Debugging, Memoization, CSS-in-JS, Change detection, Cookies & Storage, Promises, Async/Await, Server-Side Rendering…
I think you get the idea.
And that’s just the general topics - never mind the specific details of the particular library or framework you’ll be working with. Not only do I lack the time to prepare as thoroughly as I’d like, but I also don’t believe it should be necessary. Having worked in software engineering for a while, I know that at its core, our job is actually quite simple: our software’s clients have a problem, and we need to provide them with a solution.
But Why
We’re far enough along in software development that reinventing the wheel doesn’t make sense. The way we truly get better at our jobs is by improving our understanding of the problems, and by knowing why different solutions were created by talented engineers.
- Why do we even need frontend development?
- Why did React choose a Virtual DOM approach, and how does it solve performance and complexity issues?
- Why does Vite exist if Webpack is already so popular?
By systematically uncovering the problems and constraints that gave birth to these solutions, we gain:
- Deeper Understanding: We can connect the dots between seemingly unrelated tools or techniques.
- Transferable Skills: If you know why a solution exists, you can evaluate new tools more effectively and make better decisions.
- Better Interview Readiness: You won’t just parrot facts; you’ll engage in reasoning about trade-offs and design considerations.
What to Expect Next
In upcoming posts, I’ll share a series of articles that trace frontend development from its broadest purpose (“Why do we need web apps?”) down to specific questions (“Why do custom hooks exist in React?”). Each post will highlight the problems that prompted a particular solution, the constraints that shaped it, and the benefits it provides.
Happy coding, and remember: always ask “why.”