Welcome back to our Programming, Deconstructed series! Now that we've covered the basic building blocks of programming and given you a crash course in the world of front-end software developers, let's talk about back-end development.
Imagine you’re at a fancy restaurant. The waitstaff is personable, polite, and attentive, the menu looks great, and the decor is on point. You’ve just ordered your food and so far, all signs point to an excellent dining experience. After an hour waiting for your food, you ask the waiter why your food isn’t ready and he tells you that you won’t be getting any food at all. This restaurant doesn’t actually have a kitchen.
Is that even a restaurant, then? Most would probably agree that it is not. No matter how lovely the customer experience is, a restaurant without a kitchen isn’t a restaurant at all. The kitchen is what produces the core of the customer experience. Every dish is carefully planned, cooked, and deliberately plated to create a specific flavor and cultivate a unique culinary experience.
The same holds true for back-end web development. Back-end developers focus on application structure, data storage, and the server-side code as the software evolves over time to meet the needs of the company and users. While it may seem like a relatively simple concept overall, the back end is a system that runs deep and requires close coordination with lots of different parts.
Typically, the back end consists of three parts: a server, an application, and a database. A back-end developer builds and maintains the technology that enables these components, which keep the user-facing portion of the application up and running. Any information (user data) that is entered through the front end gets processed and stored by the back-end infrastructure. When you visit your favorite website and it already has your email address and password saved, that's the work of a back-end developer. Does it gather data from another application? Also a back-end developer. Does it make suggestions about what content to show you? Yup, that’s the work of a back-end developer.
As different as front- and back-end development can be, there’s often not a hard-as-fast distinction between the roles, especially at smaller organizations. Enter: the full stack developer. With a cross-functional role that spans the full “stack” of technology, they’re the jack-of-all-trades in software engineering. Continuing with our food metaphor, a full-stack developer is basically a one-man food truck; s/he is able to work with all aspects of an application, from its back-end structure to its polished front-end. Full stack developers operate as generalists, and work closely with developers on both ends to help identify and solve both user-side and server-side problems.
The bottom line? There are many different facets of web development and many different roles for developers. Whether they work on the front-end, back end, or both, developers are problem solvers working to build incredible (and useful) software. As the Internet continues to flourish and more applications are accessed through the cloud, the demand for software engineers who can develop for the web will only continue to grow like crazy. Thankfully, the resources you need to prepare you for a career in software development have never been more accessible.