Take a glance at any of your coding peers’ LinkedIn pages and you’re sure to see “Full Stack Developer” on their list of skills, with perhaps little or zero explanation about what is full about this person’s stack. Job boards also are seemingly abundant with requests for Full Stack Developers. Maybe underneath the broader listing are needs and terms that you might know. They might write “needs to know Java” or “must have experience managing a database” but you, an experienced programmer, know that these are wildly different programming skill sets. So, what gives? More and more, tech companies are asking for programmers who can work across a range of disciplines. A Full Stack Developer is a special type of programmer in that they can do it all. This is one of the most active areas professionally for developers. Of the nearly 50,000 developers surveyed by coding education site Stack Overflow, 28 percent of them reported “Full Stack Web Developer” as their occupation. These are men and women who are working in a range of skill areas (or “stacks” as we’ll later learn). They are comfortable with the “full” breadth of the software or web development process. So, when we talk about what it takes to become a Full Stack Developer, we’re asking what the primary elements of this jack of all trades is.
Do I need to know everything?Will you be a Full Stack Developer after reading everything on this page? No. But nor is it feasible or necessary to become one. The Full Stack Developer is the person who can do it all (and if they can’t do it all immediately, they know how to get up to speed and find the right resources so they can), but better serves their team by not doing it all. They identify intersections of company expertise, web assets, programming resources and existing code work that can be merged to create a software solution. Think of it like a conductor of a symphony. While the conductor may know how to play a trumpet, it’s not critical to their job, which is to hear the trumpet relative to the orchestra and change the performance as needed to properly play the song. Increasingly, programmers are being asked to work across disciplines and find ways to connect previously discrete skills, like building a relationship between databases and building one with your colleagues. But this is the next step of software development, an ability to see beyond the individual pieces and identify big things that are possible through previously unconnected elements. It may not have been obvious that you could put a trumpet and snare drum together before an orchestra. Similarly, it probably wasn’t clear what the connection was between high quality video and cloud delivery before the marriage of Netflix and Amazon Web Services. That’s something that you’d need the whole range, the full stacks to be able to see first.
What is a stack?The “stack” in the name is a cluster of related skill sets—from programming languages to frameworks and familiarity in common resources—that constitute one part of the web product’s abilities.
Let’s take these clusters one by one to breakdown showing you:
- What specific skill sets, programming languages, frameworks, etc. each stack contains
- Where you can learn them
Front end developmentThis the client-facing side of programmers that will be used to create the public side of an app or website. It is, as the name, states the project’s front. These are the fonts, colors, sliders, videos and games the Internet user sees. When recruiters talk about this specific stack, they’re talking about client interfaces, things that can be made with HTML and CSS. To cultivate these skills, you’ll need to:
- Get to know Git as well, a kind of Google Docs for collaborative programming. This is the preferred way for software developers to work collaboratively.
- Get familiar with and be able to explain HTML semantics, HTML language used to “talk” to web resources to get them to display a page properly.
- Learn how to draft functional resources within CSS, the language used to create client interfaces with dynamic display that differs depending on what device is interacting with the program or app (CSS Media Inquiries).
Back end developmentThe app or website doesn’t exist in a vacuum. It’s likely creating user data and lives on a server. The programming architecture that unifies each of these critical administrative functions is known as the back end development stack, the back as it’s out of public view unlike the front as explained above. As a Full Stack Developer with a back end development background, you should start getting familiar with:
- Python. We suggest a foundational python course, like this one.
- Ruby. There are plenty of tutorials to get you started with this programming language, but we recommend an interactive tutorial like this one so you can see your results in real time.
- Java. This tutorial will take you through simple and practical approaches while developing a deep understanding of the programming language.
- The different frameworks that one might use to create backend programming like Ruby on Rails or Symfony.
Database managementThis is where your skills managing stored data and a web application that requires it to function come in. This is a stack where your Microsoft Access and SQL mediated database management are relevant. As a Full Stack Developer with a database management background, you may be asked about:
- Relational databases, storing data as related tables rather than as independent JSON documents.
- The virtues of SQL over another programming language (it’s fast at getting large chunks of data and it hews to an industry standard unlike other database languages).
- The basics of web storage: where cookies are stored, what kind of data a visitor session creates, etc.