Web development is the process of creating software that is distributed over the internet as webpages.
There are many ways to get software as a consumer, from buying it on a CD in a Best Buy to downloading a video game on Steam. It almost feels strange to compare a web app like Facebook to a heavy desktop app like Photoshop, even though both are software.
Getting a web app is as simple as typing in “Facebook.com” in the browser, and doesn’t require any lengthy install process, making it feel like a totally different category. This seamless experience is precisely why the internet is so popular and why the majority of software that people use in their day to day is through web apps.
The delivery mechanism your software uses will fundamentally influence the process of creating it. Even though Facebook and Photoshop have the same fundamental components, such as a GUI, writing them requires learning a totally different set of tools, languages and technologies.
Learning web development from scratch is 50% learning how to program in general and 50% learning the ins and outs of its delivery mechanism, the internet. You’ll spend just as much time in a job fighting against random internet stuff like setting up authentication or caching as you will writing code.
These tidbits are what make learning web development hard. Even if each individual thing isn’t too difficult to wrap your head around, the sheer number of buzzwords and pace of change can make your head spin.
Loading a webpage is really just downloading a program and running it in the browser. The code that is sent over the internet to be run in the browser is known as the client. The client, in turn, sends data back to the central server. Facebook has a fleet of computers running in datacenters that collect and organize all of your data in databases.
Writing code for the client is called frontend development, while writing code for the server is called backend development. Most web developers specialize in one or the other. If you do both, you are a “full stack” developer.
One thing that can be a bit confusing is that the line between the two can become blurry. Some apps push more of their business logic into the frontend, such as with a heavy single page application (SPA), while others even push UI code into the backend, with things like server-side rendering (SSR).
There are many types of software and many types of developers to write it, and you don’t have to become a web developer to write code for a living. However, the web is the biggest platform for delivering software, and correspondingly, the majority of developers are doing some form of web development. Take a look at the Stack Overflow developer survey from last year.
The web is so overwhelmingly popular that one could argue that other types of software development are niches and web development in its various flavors (frontend, backend, full stack, dev ops, etc) is the mainstream.
Web Development is a huge field of diverse skills, so it is hard to pin down a single approach or set of resources for learning it.
To start from zero, take a look at the Developer Atlas Making Websites curriculum.
I give a high-level breakdown of how to start learning web development in my post What I Wish I Was Told as a Beginner Learning to Code, such as types of schools, courses and websites available for self-teaching.