In my first article on Web Careers, I explained some of the differences between a Web Designer and a Web Developer, and the different specializations that exist among Web Development careers. This article dives deeper into the Web Developer career path, providing insight into one of the most lucrative, demanding and rewarding Web Careers as a Full Stack Web Developer.
A Full Stack of What?
No it’s not a stack of waffles. The “Full Stack” we talk about in Web Application Development is what is know as an Application Stack. An Application Stack represents the “layers” of components and technologies that all work together to form a complete application. I think the term stack is used to describe this because most application architecture diagrams represent these layers as visually stacked from bottom to top. The bottom layer usually represents the hardware (computers or cloud) where data for the application lives. The top layer usually represents how people interact with the application and it’s user interface (UI). The middle layers represent other necessary components that can include frameworks, communication, security, intermediate data formatting and manipulation, and even interactions with other services and systems. The exact makeup of the Application Stack can vary widely depending on the nature of the application, and preference of programming languages and related tools.
The exact makeup of the Application Stack can vary widely depending on the nature of the application, and preference of programming languages and related tools.
Full Stack Developer Defined
Eric An from CareerFoundry.com provides this definition on his blog; “A full-stack developer has all the keys to the house – there is no door that you cannot open.1Source: careerfoundry.com” Simply defined, a Full Stack Developer has knowledge of all the technologies and components that make up the Application Stack from top to bottom. Some Full Stack Developers can literally build an entire application from the ground up. Others act as “bridges” between or among various teams that specialize in building specific parts of the application. Because they know how each layer is supposed to work, they can guide and design the interactions between layers.
One of the challenges of working in this field is that the landscape is always changing. It seems like a new framework or better technology is introduced to the market on an almost weekly basis. However, there is still a road map that a new developer can follow to obtain important skills to become a Full Stack Developer.
Must Have Skills
To get started on your path to becoming a Full Stack Web Developer, here are some of the basics to add to your bag of skills.
Client Side Programming
- Ember JS
Server Side Programming
Some programming tasks are better suited to run on the server rather than the client. The language(s) used for server-side programming will be influenced heavily on the operating system and/or web server being used non the back end. The most common server-side programming language is PHP, which is used primarily on Linux based systems running the Apache web server. Second is ASP.NET, which is used primarily on Windows based systems running the IIS web server.
SQL Databases are by far the most common technology used for storing structured or semi-structured data. SQL is a standardized language for managing and accessing data, but various database vendors extend the language to provide advantages in specific circumstances. MySQL is used more often in Linux environments, and SQL Server for Windows environments.
- SQL Server
API & Communication
An Application Programming Interface (API) is a set of commands or functions that allow an application to communicate to other components, or to perform specific processing functions. The most common type of API used in Web Application Programming is called REST. The term “REST” comes from the concept of REpresentational State Transfer, and is known as a state-less protocol. This type of approach to programming is well suited to Web Applications that use a browser to host the client application, which communicates to a Web Service on the back end. REST-ful API’s generally use the HTTP protocol as it’s underlying implementation mechanism.
That one time you spent a half a day coding, then realized you broke the universe. Without a version control system you would be in a world of hurt. Using a version control/code repository system allows you to recover gracefully, and provides a backup of all your hard work. When working on a coding team, version control is a must. GIT is by far the version/source control repository of choice among web developers, but there are also other options.
We live in a day where data security and privacy cannot be taken for granted. Most web sites and web applications use the HTTPS protocol by default now, and I expect the use of HTTP will dramatically decline over time. TLS is also becoming the encryption scheme of choice over SSL as well. The bottom line is that a Full Stack Developer should have a good handle on these technologies and how the operate in every layer of the Application Stack.
Becoming a Full Stack Developer
Looking at the list of “must have” skills at first seems a little daunting at first. Like anything else, the way to get there is by taking one step at a time. There are many great tools available for web application development, and lots of places on the web to get free or affordable training.
- Take a Personal Skills Inventory – Make a list of the skills you already know, and the ones you need to acquire organized by priority.
- Get Online Training – Look for sites that offer no or low cost training for the skills you need.
- Join a Coding Community or Open Source Team – There’s no substitute for doing! Though open source coding does not pay, it is a great way to learn while doing, and to build connections with other coders that could lead to jobs.
- Read, Watch and Learn – In order to have a long, successful career as a Web Developer, you must be committed to being a lifetime learner. Set aside time in your weekly scheduled to read and learn from others through blogs, books or YouTube videos.
Codecademy is a great place to get started. They offer free and paid online courses for just about everything mentioned in this article.