In this post I’m going to be giving you both the wider scope and some of the details of what this sought-after job entails, and my experiences within the field, answering that question for both the novice and the more experienced coder alike. So, let’s get started!
A Little Background: The T-Shaped Model
The T-shaped model is a concept that has been around for a while that describes the abilities or characteristics of an individual. An ideal T-shaped person has many generalized skills with a specialization in one or a few specific fields.
A full-stack web developer is an excellent example of this model as the developer has general knowledge across a wide breadth of technologies and platforms as well as in-depth experience and specialization in a couple of those concepts. For the most part, there are two general fields that make up a full-stack developer’s skillsets: front-end development and back-end development.
Front-End Web Development
Everything that you actually see on a website – the layout, the positioning of text and images, colors, fonts, buttons, and so on – are all factors that the front-end developer must consider.
The main goal of a front-end developer is to provide the platform for visitors to interact with, a platform which provides and receives information. This means some developers will be well-versed in web design and using software such as Photoshop and Illustrator to create graphics and themed layouts.
Additional skillsets of a front-end developer could include user experience design and user interface design, skills which help a team evaluate the best methods of displaying and collecting information. A front-end developer who possesses these design skills is potentially more valuable as they can identify the look and feel of a site while assessing the technical capabilities of such a design at the same time. Although these additional skillsets might be useful to a developer, they are certainly not a requirement for the job, and more and more companies are seeing the value in hiring UX & UI designers to focus solely on this aspect of website development.
Back-End Web Development
Creation, edit/update and recollection of data are some of the processes that are most often associated with back-end development. Some examples of common scripting languages used are PHP, Ruby, and Python. With these languages, a back-end developer can create algorithms and business logic to manipulate the data that was received in front-end development.
This means that a back-end developer must be able to write code to receive the information input from the user and also save it somewhere – like in a database. There are two main types of databases: relational (like PostgreSQL and MySQL) and non-relational management systems (like Mongo). The language used for database management is SQL, which helps the developer interact with the database.
The concepts might sound foreign, but just understand that there are different database management systems based on convenience and use.
Another component of back-end development is server management, which are applications that host the database and serve up the website. An alternative to knowing how to manage servers is to use cloud-based platforms that provide the infrastructure, like Heroku or Amazon Web Services.
Understanding server management allows a developer to troubleshoot slow applications and even determine how scalable their websites are to include more users.
Full-Stack Web Development
Full-stack developers are experts in both the front-end and back-end; so, the full stack of technology that makes up a website. They are proficient in both front-end and back-end languages and frameworks, as well as in server, network and hosting environments. To get to this breadth and depth of knowledge, most full-stack developers will have spent many years working in a variety of different roles. They also tend to be well-versed in both business logic and user experience, meaning they are not only well-equipped to get hands on, but can also guide and consult on strategy too.
A Note On Frameworks
On the backend, there are frameworks like Rails for the programming language of Ruby, Django for Python, and CakePHP for working with PHP.
The main purpose of frameworks is to make a developer’s job easier by developing a set of conventions that can be adopted for many of the different processes involved in creating a website – from how information is displayed to how it is stored and accessed in the database.
Why Become A Full-Stack Developer?
Given the choice to specialize in front-end or back-end development, why would any developer choose to learn the full spectrum?
It goes back to the value of being a T-shaped person. You are more valuable to a team when you are able to address and discuss both aspects of the web development process and bridge the disconnect.
In other words, one developer who can readily assess and communicate how a website should look, feel, and manipulate data while understanding the technical limitations of such implementations will be a respected and valuable member of any team or company.
How to Become a Full-Stack Developer
To become a full-stack developer, you will need to gather quite some years of industry experience. You will need to learn both front-end and back-end languages, as well as the ins and outs of databases and storage. In fact, you can’t just study to become a full-stack developer; it’s all about constantly learning and getting as much experience as you can in both front and back-end development.
There are many resources available to learn about full-stack web development. Google the phrase “become a full-stack developer” and you will get pages and pages of different venues and methods to learn. But you’re probably at the start of the journey and don’t feel like you have the knowledge to differentiate between the self-guides, YouTube videos, bootcamps, and online courses.
A good first tip is to review the resources based on a criteria of the topics mentioned in this article. Ask yourself questions like:
- “How much front-end development is involved?”
- “What will I learn for back-end development?”
- “What programming languages and frameworks are being taught?”.
A full-stack developer has all the keys to the house – there is no door that you cannot open. It provides an unparalleled freedom to simultaneously work on front-end and back-end development and evaluate the capabilities and potential of your website in real-time without having to wait for another developer to review if what you’re desiring is possible or not.
In short, you become a master of the Internet.