This question arises more often than you think. A lot of people believe that web development is just HTML and CSS coding, but there is a lot more going on behind the scenes than just marking up text and making it look pretty. There are actually seven different levels of web development which must be understood, in order for a developer to qualify as Full Stack.
1. Server, Network and Hosting
The developer must understand the hosting environment, what resources are available to them, how to avoid overloading the available resources and having the server crash, or fail. They must know the scalability, reliability, and data redundancy provided by the hardware, and by the network devices in use. They must know how to handle race situations (where requests compete for system resources) and wait conditions (where those requests have to wait until other processes release their resources).
2. Data Modeling
The developer must be aware of the data structures they are working with. Being able to take design requirements and convert it into a data source (like a relational database, or a noSQL database, or even an xml data source). A good developer will know what is needed at this layer base on the requirements so that the higher layers won’t have ugly code, or messy hacks to try and fit the data model.
3. Business Logic
This is the application code itself. The frameworks and the customized code that performs the tasks set out by the application.
A lot of people believe that web development is just HTML and CSS coding, but there is a lot more going on behind the scenes than just marking up text and making it look pretty.
4. API or MVC layer
This is the interface layer. This is how the outside world can access the lower level functions of the application via REST or SOAP requests, and how the application will output data to the front end of the website.
5. User Interface
6. User Experience
A Full Stack developer can look at the workflow of a website and know what users want to see and how far they’ll go before they get frustrated. The developer will determine how to get the flow of a website down to a few clicks to make it easier for users to access pertinent information, and give meaningful error messages when resources fail, or are unavailable, and not be condescending to the end users.
7. Knowing the Customer and Business Needs.
A full stack developer will understand the needs of the business as well as the wants of the customers. They should be able to analyze the wants and needs to accommodate functionality for everyone.
Other things that a Full Stack developer needs to know are:
- Unit Testing - being able to write unit tests for specific functions of a web application to verify the code returns the correct results without failing is a huge benefit. With unit testing, modules can be developed separately and deployed as needed without affecting the currently live application and reducing debugging time.
- Security - Being aware of security issues, current vulnerabilities, and knowledge of how to write secure code is very important, and is a top priority of a Full Stack developer.
- Deployment - A Full Stack developer should know how to build, test, and deploy an application at scale, without affecting any existing systems or taking down the entire application.
Studiothink works on a Full Stack development cycle. We are always taking functionality requirements, hardware, and hosting environment into consideration when we develop any web application or web site.