Not long after I changed careers to become a full-stack web developer, I received an odd Facebook message from a family friend. “I visited your website,” he wrote, “and I’m still trying to figure out what pancakes have to do with websites.”
Clever…or clueless? I’m still unsure. But one thing is certain: IHOP needs to move over; the term “full stack” isn’t about pancakes anymore.
What is a full-stack web developer?
Developers describe the technical levels of an application as a “stack,” not unlike like a tower of pancakes. At the base of the stack, for example, are system administration skills like setting up hardware and basic infrastructure; on top of that are back-end tasks, such as creating, querying, and maintaining databases, as well as implementing business logic. Further up the stack come front-end tasks, including creating and building UI and UX designs.
Together, all of these things comprise a technology stack. A “full-stack developer” is a programmer who can perform core tasks at any given level of his or her application’s stack.
What skills does a full-stack developer need?
The exact skills of a full-stack developer will range amongst companies — or even from person to person. According to Facebook’s engineers, for example, “A ‘full-stack programmer’ is a generalist, someone who can create a non-trivial application by themselves.” That’s an incredibly generic statement; it doesn’t address any specific skills or programming languages.
A full-stack developer needs two basic sets of knowledge: front-end development and back-end development. From there, it can get pretty complicated.
The core skills required of a full-stack developer will vary widely depending on the particular stack an application or company uses. That’s because — at its core — “the idea of a ‘full-stack developer’ isn’t about being fluent in every possible technology there is,” says SitePoint’s George Fekete. “It’s more about having an understanding in [each area], to communicate intelligently between team members and to be a good asset if the situation needs it.”
One well-known, classic tech stack is known as the LAMP stack, which refers to the servers and programming languages Linux, Apache, MySQL and PHP. These days, the MEAN stack — MongoDB, Express, AngularJS, and Node.js — is increasingly popular.
Why is being full-stack better than just front-end or back-end?
The concept of full-stack developers isn’t new. It originated when websites were tangential to many companies’ core business models, and there were only two or three components required to build a website. Fast forward 15 years, though, and a modern web application can require more than 20 different job functions.
A developer who can traverse these job functions across the stack is highly valuable — much more so than a back-end developer who doesn’t know CSS, or a front-end developer who can’t write a SQL query to save her life. These types of people “are less full stack developer and much more full stack integrator,” says Peter Yared in TechCrunch.
In large organizations, there will always be room for front- and back-end specialization. However, a talented full-stack developer can cement his or her role not by being an expert in any language — though he or she likely codes in several different languages — but by being someone who connects the levels of the stack in a meaningful way.
How can I become a full-stack developer?
The best advice for aspiring full-stack developers is to pick a stack — any stack — and commit to learning it. To determine which stack you should learn, consider the types of companies in which you’re interested.
Would you prefer to work at a large, well-known company or a government agency? LAMP and MAMP stacks, which have been around longer, are popular at these types of companies; PHP for WordPress and Drupal development is a good bet.
While you’re learning any stack, though, pay careful attention to the relationships between levels and the interconnectedness of the back- and front-end code. The ability to see connections through the stack will set you apart as a developer, making you far more valuable and giving you a leg up on your peers.
Originally published on General Assembly’s blog.