I recently had a chance to talk to a friend curious about getting started with front-end web development. This motivated me to compile a list of learning resources into a kind of curriculum to get started with front-end web development. The goal was to make something like Front-end Developer Handbook but with more guidance and relying solely on freely available resources.
Unfortunately, the friend ultimately decided not to follow through and keep exploring front-end web development as a career option (and for good reasons, I'm sure), and I lost an incentive to complete the curriculum. Hopefully I can find some time to finish it anyway in near future.
Regardless, this experience allowed me to take a step back and review the landscape of the modern front-end web development. And, not surprisingly, I was reminded that front-end web development is a lot.
One reason why this is the case is because the front-end web technologies as a whole have gotten much, much more powerful. So powerful that it has become fully viable to build a fairly complex application without a server to dynamically render pages and execute tasks on request.1 And, as everyone knows, with great power comes great responsibility.
Today, almost everything can be handled on the client side or using serverless functions,2 from templating to styling to routing to state management to authentication to form validation to core business logic to... The list goes on. This power greatly and understandably shifted the burden of managing complexities to front-end web development. Yes, there are excellent set of tools to help, but these tools come with their own complexity. In the end, a front-end developer is left with a lot more to learn to get the job done.
Plus, the concerns of modern front-end web development reach far beyond building client-side applications per se, partly due to the growing size and complexity of the very applications to build. I've already mentioned serverless functions, which of course come with complexities of writing, deploying, and maintaining them. More generally, front-end web developers are now expected to be at least knowledgeable about version control system, CI/CD tools, static site hosting services, cloud/serverless computing services, software development architectures, and more.
Moreover, the modern front-end web development is increasingly a team effort. While this is not limited to the front end, any front-end web developer must be at least open to work in a team and learning development practices to support a team project.
So yes, the modern front-end web development is a lot!
- To get a sense of how "powerful" front end is today, watch this talk by Chris Coyier from JAMstack Conf 2018, promptly titled "The All Powerful Front End Developer."↩
- Of course, whether all these works have to be handled on the client side or using serverless functions is a totally different question.↩