What is a Full Stack Developer?
Table of Contents
A full stack developer is someone who is familiar and comfortable with all layers in computer software development. These developers have the functional knowledge and ability to take a concept and turn it into a finished product. They understand how everything works from top to bottom and can anticipate problems accordingly.
How to Become a Full Stack Developer
What does a Full Stack Developer do?
Web development specializations exist for a reason, and the idea of a full stack developer isn't about being an expert in every possible technology there is. It's more about someone with a familiarity and an understanding in each layer, and a genuine interest in all software technology. It's also about being able to communicate intelligently with team members and to be a helpful asset if the situation requires it. Personal interaction and communication skills are necessary in order to manage and work with front-end developers and back-end developers.
Full stack developers understand how every part of the web development process takes place and can guide on strategy and best practices. These developers will have an increasingly important role in the web development of the future, and are able to look at the 'big picture'. They are knowledgeable with the server side as well as the client side’s user experience.
A full stack developer has knowledge in all stages of software development, and would be proficient, if not fluent, in:
- Server, Network, and Hosting Environments - this involves understanding what can break and why; appropriate use of the file system, cloud storage, and network resources; knowing application scale given the hardware constraints; and working side by side with DevOps
- Data Modeling - this involves knowing how to create a reasonably normalized relational model, complete with foreign keys, indexes, views, lookup tables, etc; being familiar with the concept of non-relational data stores and understanding where they shine over relational data stores
- Business Logic - having solid object oriented skills
- API layer / Action Layer / MVC - knowing how the outside world operates against the business logic and data model; using frameworks; being able to write clear, consistent, and simple to use interfaces
- User Experience - can step back and look at a process that needs seven clicks and four steps, and get it down to one click; write useful error messages
- Customer and Business Needs - having a grasp of what is going on when the customer uses the software; having a grasp of the business
To reach this level of qualification, it clearly takes years of work experience in different languages, roles, and industries. Because of this, full stack developers are few and far between, making them very employable and in-demand.
Find your perfect career
Would you make a good full stack developer? Sokanu's free assessment reveals how compatible you are with a career across 5 dimensions!
How to become a Full Stack Developer
Having a bachelor's degree in computer science or computer programming can be a wise move, but it isn't necessary. People without degrees but who have good portfolios, good references, and good open source work are definitely in the running for employment.
The path to becoming a full stack developer will take time. It’s not only about learning various front end and back end technologies, but about understanding those two areas in more detail and making communication between those two areas easy and smooth. Plenty of patience is needed to get there, as well as an eagerness to learn.
An action plan for learning to be a full stack developer:
- Learn basic HTML - code up basic pages, link between them, etc
- Deploy your HTML site to production - a hosting provider, heroku, etc
- Learn one backend language and integrate it into HTML - if you use a web framework, make it the lightest one you can
- Set up a virtual server for deployment - AWS, digital ocean, linode, etc.
- Deploy your dynamic application to production
- Learn one relational database system and integrate it into your app
- Learn basic CSS to make it look good
What is the workplace of a Full Stack Developer like?
A full stack developer may work full or part-time in an office setting, or may choose to conduct business at home. Travel may be involved if one chooses to freelance. Some full stack developers freelance their skills to various organizations, while others choose to outsource their skills to organizations by using their expertise to act as consultants or independent contractors.
Full-stack developers must use a wide range of programming languages to accomplish their goals; these can be grouped into front-end and back-end languages.
Back-end languages are typically used to store and manipulate data, manage user permissions, and do all of the complicated calculations required by the program. There are a wide variety of languages that can be classified as back-end, including: Ruby, Python, PHP, Java, Go, and Swift.
In addition to being comfortable with both front-end and back-end languages, a full-stack developer should also have an understanding of the technology that runs alongside their programs. This includes a rough understanding of the SQL database language and the HTTP communication protocol.
The requirements of a full-stack developer can seem daunting at first, but it is important to remember that it is a "jack of all trades, master of none" profession. A full-stack developer will find themselves using multiple languages on a daily basis, but they will also typically find themselves working alongside dedicated front-end or back-end developers who have a much deeper understanding of their chosen technologies.
The technology industry moves at a fast pace, and the broad range of technologies used by full-stack developers means that they will need ongoing training.
The first step in staying up to date is understanding which new technologies and frameworks are gaining popularity. The best way to do so is to follow online technology blogs and communities, such as Hacker News or Stack Overflow. Github - the most popular host of open source code - publishes a list of up-and-coming projects.
Once you know what to focus on, the next step is to find good resources to learn from. There is a wealth of online information for languages and libraries, and most of these will have resources and getting started guides on their websites. Youtube is increasingly a good source of tutorials, and most technology conferences upload their talks and occasionally even stream them live on the site.
The most reliable source of training will come from online MOOCs - Massive Open Online Courses. These courses emulate a traditional university course, and in some cases can even lead to certification upon completion. Examples of companies that produce high-quality technical MOOCs include Treehouse and General Assembly.