Welcome back to our Programming Decoded series! In our first post, we outlined the basic building blocks of programming. Let’s dive a little deeper.
The Internet is enormous. As of right now, the web contains about 1.2 billion separate domains (most of which host several pages), and it’s growing every second. By the time you’re done reading this, about 500 new web sites have been established. This is fantastic news for those responsible for the creation, ongoing maintenance, and further development of web applications (in other words, programmers).
But simply saying “developers build and maintain websites” is selling the profession short. There is a ton of very specialized work that goes into building and maintaining all the awesome stuff hosted on the web. So, what exactly does being a web developer entail? Quite a bit, as you may have already guessed. Let’s start by splitting web developer roles into two primary categories: the front end and the back end.
To keep things relatable, we'll explain the front end and back end using a restaurant metaphor: On one side, you have the dining area where customers sit and eat (the front end), and on the other side is the kitchen, where the behind-the-scenes stuff happens (the back end). Each side of the restaurant is reliant on the other, and a restaurant can’t really exist without both parts.
The front end of a web application is akin to the dining area of a restaurant. Traditionally, this is the only part of the restaurant a customer will see. In order to achieve a high level of customer satisfaction, a number of smaller pieces must be planned and synchronized. The decor, lighting, and music create a pleasing ambiance, the wait staff is attentive without being overbearing, the presentation of the food is pleasing, and, of course, the food itself is excellent and delicious. To further complicate things, customers can choose from a variety of menu options, meaning that the restaurant must be able to provide a consistent experience for everyone, while also customizing the experience at an individual level.
The front end of a web application is very similar. Many different parts come together to ensure a flawless user experience, and in cases where users return, the application usually needs to display data specific to that user, such as a username, account history, etc. Everything the user experiences directly, from from the page layout to the font color, is part of front end development.
The scope of the work done by a front end developer varies greatly. Some front end specialists are responsible for everything: design, layout, and overall user experience, in addition to writing all the code necessary to implement the design. In other cases (particularly on larger development teams), a front end developer will work with a design team that provides mockups of the site layout and functionality, which is then translated into functional code.
It wasn’t long ago that the tools required to draft this blog post were only available as desktop applications licensed locally on the user’s computer. To draft a document, you’d have to fire up a word processor like MS Word, Pages, OpenOffice, or a similar program that was already installed. If you're the type who prefers to listen to music while you write, you’d launch a music player like iTunes or Winamp, and your music selection would be restricted to the files stored on your hard drive (that were all obtained legally, of course). But you’d also need access to your email, right? Better open up Outlook!
Today, all those activities can be done just as well (and many would argue better) within a web browser. This post was drafted in a browser with Google Docs open in one tab, Spotify in another, and a webmail client in a third.
Why is this important to point out? Because, for most people, our computers are doing less... computing.
As web applications become increasingly complex and interactive—and replace many desktop applications—the need for front end developers has grown considerably. Gone are the days of static pages formatted for desktop browsers and coded in simple HTML and CSS. Today’s users expect interactive web applications that are accessible from anywhere, regardless of the device they're using, and it's the front end developer's job to ensure the user-facing portion of the application is flawless.
Lauren Alworth is a former member of the Launch Academy marketing team.