Computer science students often get asked, what will you become after graduation. To those who commit to the life of programmer, there are a lot of different paths that you can take. Today we will discuss about the buzz words that everyone knows about: Frontend developers, Backend developers and Fullstack developers.
Why do we need to know about the above job roles? It’s because different roles require different skill sets to focus on, and to be good at one of them, we need to switch our mind toward it. To keep it simple, we will discuss about web development only. However, the same concept can be used in other fields, such as software and mobile development.
Backend developers: working on the server side of an application, which includes any logical structures that form a server, an infrastructure for an application, including server configuration, database management, and backend logic.
Fullstack developers: fluent in frontend and backend responsibilities, and some extra knowledge about deployment operations (DevOps).
However, knowing those frameworks does not mean you have what it takes to be a good frontend developer. You also need to have a good knowledge about multimedia design, UI/UX design. Some of the aspects to acquaint are choosing a suitable color palette, typography, website layouts, etc. Experiences with the above fields can be what separate you and the rest.
Backend developers need to know almost everything about the server side code and how the server is configured. Several programming languages and technologies that are useful are:
– Knowledge about operating systems, e.g. Linux, Windows server.
Similar to frontend developers, backend developers also need to know about advanced topics like design patterns, knowledge about web infrastructure. These aspects are very important in optimizing and scaling a website/application. Developers who are fluent can be paid very high, estimated at $120,000 – $140,000 per annum (which I haven’t gotten to that level yet 🙁 ).
For students who want to become backend developers, I would say that you can start with a simple programming language like Python or C, to learn about the fundamental of computing. By learning about algorithms and design pattern logics, you will improve your knowledge of how to optimize your code, how to manage memory and therefore improve the scaleability of your programs. After that, you can continue with database interactions, and play around with various CMS platforms. Once you get to that level, then open yourselves to advanced web infrastructures and server configurations.
As mentioned above, a fullstack developer is meant to have knowledge and experience about frontend and backend operations. Moreover, they need to understands how to deploy code into different environments, maybe less than a DevOps engineer, but to some extent they can understand the principle of continuous integration/continuous deployment.
Fullstack developers have to train themselves a lot harder than the above roles. They need to have a lot of experience regarding the mentioned fields. Some people that I know started out with a frontend role in a company, then move on and be a backend developer in another company. After that, they trained themselves with DevOps technologies and dabble with the fullstack developer role. Recruiters often think that fullstack = frontend + backend. However, it goes deeper than that and you will need to tackle the advanced topics very soon once you take the role.
“Success is no accident. It is hard work, perseverance, learning, studying, sacrifice and most of all, love of what you are doing or learning to do.” – Pele
Each role may deal with different technology stacks. But underneath, they all share the same computing principles. We all need to optimize our code, using the least resources possible to produce the biggest outcome possible. Technologies move incredibly fast these days, and as developers, we will need to continue learning while we’re working.
By Tuan Nguyen