You often hear the term “full stack developer” thrown around, but what exactly is it, and should you think about becoming one? Let’s take a closer look. In the world of web and software development, there are three basic concentrations: front end, back end, and full stack. Here’s what they mean.
What is a Full Stack Developer?
- Back-end developer. Behind the websites that you visit every day, a network of servers, databases, and applications work together to deliver the website pages and data that you request. Backend developers are responsible for building the structures of these components. They must be adept at languages such as Python, .Net, Ruby, Java, and PHP in order to create programs. They also use database programs such as MySQL, SQL Server, and Oracle to manipulate the information and deliver it to the user. Backend developers collaborate with various managers and staff in organizations to assess their individual needs.
- Full stack developer. Full-stack developers are knowledgeable about both the back end and front end of development. These are “big picture” developers who are familiar with the server side as well as the client side’s user experience. Full stack developers understand how every facet of the web development process takes place and advise and guide stakeholders on overall strategy and best practices.
Roles Change as Computing Evolves
In the early days of desktop computing, it was normal for a single individual to develop the software for an application. As programs became more complex and more technology was introduced into the mix, it became too difficult for one person to stay on top of all of the different facets of the application. By the beginning of the twenty-first century, specialists began to emerge with knowledge and training in different segments of technology.
Because of this increasing complexity, many programmers returned to a simpler approach when Web 2.0 sites began to appear. Rather than building complex databases and enterprise computing networks, developers began to deploy stable LAMP stacks (Linux, Apache, MySQL, and PHP) and create flexible object-oriented languages such as Django and Ruby on Rails. In such a setup, full-stack developers play valuable roles because they are familiar with most of these modern frameworks and languages.
The Return of Complex Operations
However, we are returning to a new era of complexity due to the rise of mobile computing and the iOS and Android platforms; low-cost cloud servers such as Amazon Web Services and Microsoft’s Azure; databases such as MongoDB; front-end technologies such as Node.js and Angular.js; and container technologies such as Docker. Each of these platforms, services, and frameworks have their own unique features and quirks that again have made it nearly impossible for one person to be a full-stack developer and oversee an entire project.
Generalists vs. Specialists
The advantage of becoming a full stack developer in the current environment is that few people have the knowledge, experience and communication ability to oversee projects employing a wide variety of diverse platforms and frameworks such as HTML5, machine learning, and Scala — so quality full stack developers will always be in demand. The disadvantage is that it is increasingly a monumental task to stay on top of all of these components — and whatever new ones will arise in the future. As talented as you may be, these components are complex enough on their own — and new languages and platforms emerge every few months. It is difficult to stay current in so many knowledge areas.
For that reason, specialization will always have its unique advantages. Organizations tend to hire for specific roles, so you have an advantage over other developers when you can demonstrate deep knowledge and experience in a narrow area.
The Full Stack Developer Salary
Whether you choose to specialize in front-end or back-end development — or position yourself as a full stack generalist — the job outlook is positive. The role of the software developer is recognized by the U.S. Bureau of Labor Statistics as one of the occupations that will have the most growth over the next ten years. In 2014, just over 718,000 people were employed in some capacity as software developers — and the national median salary was $95,510. That number is expected to rise by 135,000 jobs to more than 853,000 by 2024.
So, which is the best way to go? It depends on your background, experience, and goals. Front-end developers must know:
- HTML and HTML5
- CSS, CSS3, and SASS
- jQuery, Angular.js, React,js, Node.js
- Websockets and Ajax requests
- Browser development tools and debuggers
Backend developers should be adept at server-side programming, languages, and frameworks such as:
- C and C++
- Ruby on Rails
- Node.js and Express
- MySQL and NoSQL
- Web APIs
If you want to work toward becoming a full-stack developer, you should acquire knowledge across the stack and become familiar with all of the components mentioned here. You must also develop your personal interaction and communication skills so that you can manage and work with front end and back end developers.
The good news is the future is bright for every type of web developer: front end, back end, and full stack. Commit to learning everything you can in your discipline; stay current with new frameworks, languages, and platforms; and communicate effectively with fellow developers and end users. You will thrive for years to come.