The Full-Stack Developer’s Roadmap Part 2: Backend

Published 26.11.2020

Author Hrittik Roy

Tags

As you complete the Full-Stack Developer’s Roadmap (here’s part 1, btw) you might be curious about how your front-end stores and manipulates the user input – facilitating output. These facilitations are done at a server; therefore the developers are called “server-side” or back-end developers. The following article focuses on a roadmap which will help you to navigate the journey of a back-end/full-stack developer without fatigue.

Since there is a lot of variation, most people often get confused about where to start or what language/ technology to pick. I understand that for a newcomer it’s natural to be overwhelmed with so many options. I personally, however, suggest it may be a better option to pick one server-side language* and master that rather than wandering. Let’s go over the options.

Python

Developers love Python, and new developers are rushing to learn the language each day. Python is used everywhere, ranging from AI to web development. You can write a lot of code to build a web application from scratch or take the smart route and use a framework. The easier approach is safe and fast. Convinced to use a framework? Then here goes your Python framework:

Django

A high-level, full-featured framework which will help you to build secure and maintainable web applications. Django is very popular and used by companies like Instagram, Spotify, Dropbox to name a few. The drawback is you have to do the things in the “Django” way (following specific procedures to implement something), and so it’s very opinionated. Don’t worry, learn the way around and you can build an application which will have authentication and a complete admin panel for your data prebuilt. Open Source is awesome! Learn more here.

Flask

Flask is a light and more explicit framework than Django. The microframework used to build things fast with a tiny amount of code. It’s popular, and developers use it all the time but if you need to build something with a lot of requests per second, Flask won’t be an ideal choice. Besides that, the ease and control flask provides is far better than the counterparts. Learn more here.

FastAPI

FastApi is a newer, light and explicit python framework with more native functionality than Flask. The inbuilt functionalities help developers to ship code faster with fewer bugs. FastApi supports asynchronous programming, i.e. allowing a unit of work run separately than the main thread. Don’t forget about the automatically generated JSON (schema) with the descriptions of all your API which comes handy when you are working on a team where you don’t have time to generate documentation. If you’re more curious regarding the framework, you can learn more here.

The Global Interpreter Lock(GIL) in Python acts as a disadvantage with regards to speed, but a lot of them have addressed and optimised this – still, it won’t act as a problem for our newbie developer or creating your dream startup.

Node.js

If you’re wondering regarding the * in server-side language above, it’s nothing to worry about. I’m not attaching any hidden t&c in this article. The * is here because one of the most popular options available is a technology and not a language. Node.js is a JavaScript runtime which is built on Chrome’s v8 engine. Millions of people use node and to come clear and honest – I have a soft spot for the runtime. Node.js is extremely fast, asynchronous (allows processing after transmission of data is finished) alongside being single-threaded. The runtime is so widely used that we have popular full-stacks like MEAN, MERN built – it seems like people love to use the same language (i.e. javascript) at the front- and the back-end. The learning curve is shallow (doesn’t take long) as you have worked already with javascript while developing the front-end. You don’t have to learn a new language for back-end – keeping things simple and easy. The runtime is said to be extremely fast and light so companies like Walmart and LinkedIn have migrated their stacks to Node.js and found 20x improvement. More companies are following the lead, and so opportunities surrounding Node.js are increasing exponentially.

Post its migration from Ruby on Rails to Node.js, LinkedIn’s development team gained performance momentum from node.js advantages. They cut down from 30 servers to 3. They also found resource delegation and utilisation more efficient, for they were now able to shift their focus from troubleshooting to application development. — SIMFORM

At this point of time Node.js may look perfect but absorb the belief with a pinch of salt. Node.js is not suitable for high CPU based computational tasks but apart from this it looks close to perfect. Express, the most popular node back-end framework, provides many built-in solutions – helping developers create their back-end with minimal opiniation. It’s super easy to use and understand and besides has 47k stars on GitHub. So, if you’re having issues – developers at StackOverflow are waiting with the solutions. Want to know more about Node.js? Click here.

PHP

Freelancers all around the world work with PHP. The language produces applications that can be deployed fast and very easily. This acts as a benefit to freelancers. It’s rightly said time is money. WordPress is built on top of PHP, and so a lot of internet runs on it. Laravel, a snappy framework can make your life easier as a freelancer. .But, I would like to mention that if you want to get a job in a big company – PHP won’t be of so useful to you. Companies have moved to snappier language a long ago ☹

Learn PHP here !

Ruby

Ruby is a general-purpose, high-level programming language. It is used to build standard libraries, servers, system utilities alongside web application – with the ruby on rails framework. Rails is popular for the minuscule development time compared to other frameworks. Don’t confuse ‘minuscule development time’ with the application taking less time to carry out its operations – rails is slow here. Even if companies like Airbnb, GitHub, Bloomberg are still using Rails: a lot (e.g. LinkedIn, GoDaddy ) have shifted their stacks to something better (like node).

This, however, doesn’t mean there are not a lot of opportunities with Rails. There are a lot of jobs popping every day for Rails. But, in 2020, it’s not recommended to pursue Rails as a beginner; it’s a better choice to look towards the present and future technologies. If you got a click with rails, you should pursue that. I’m no one to say you shouldn’t – people are doing great with rails and you can too. Learn more about your rails roadmap here.

Golang

Golang, a compiled language made by Google, has efficient concurrency, which makes efficient use of I/O and multiple CPU. The language has a fast-growing community and a framework like structure within itself which makes a good language to start with. Rest API’s are easily built with golang. Revel, a back-end framework for the compiled language makes the development with golang simpler and faster. If you want a minimalistic web framework, you have Gin Gonic. A lot of startups are using golang, and there are more specialised frameworks which will help you to utilise the full potential of your newly learnt language.

Go is increasing in popularity and it’s predicted a lot of new opportunities around the language will appear. It’s projected to be one of the most popular languages of this decade. So, why wait? Learn Golang here.

Final Thoughts

The options might be overwhelming for you even if a lot of alternatives have been scrapped away. It’s natural for a human being to wander in hope for the best solution (happens with me too). But, back-end development is a way to solve problems and create impact. While starting this journey, you can pick anything(except PHP) and your world is not going to be different. It would be best if you focus on your problem-solving skills and master one language*. Different projects need different specialized and optimized languages for a specific task. That’s why API’s are there. If you need to jump to some other project specific back-end technology, whatever you have learnt can be transferred to another language and framework very easily.

Join the club,

stay in the loop.

Sign up to receive exclusive content around cloud native software development right into your inbox.

We don’t spam! Read our privacy policy for more info.

More stories from our blog

Three Monsters: The path to Self Growth

Three Monsters: The path to Self Growth

If you ever take a journey down your daily journal, you would find certain traits that set you back and harm your trajectory to success. Now, if you are busy and don’t have time to write a journal (aka no time for self-discovery) but want to discover these traits (I...

Proxy Servers: The Captivate Shield

Proxy Servers: The Captivate Shield

If you have been scrolling the web, you would have heard about the terms proxy and reverse proxy at least once. You might know a bit of them or might be completely unaware of what they are. This is completely okay with me, and if you have the desire to understand...

Service Mesh: The Gateway to Happiness

Service Mesh: The Gateway to Happiness

Microservices have lead the human race away from monolithic applications to a cloud native landscape. The dominance of microservices (containers) has impacted the modern development environment to be scalable, flexible and continuous. But as the number of...

CNCF: Forefront of the Cloud Native Landscape

CNCF: Forefront of the Cloud Native Landscape

Cloud Native Computing Foundation or CNCF is a term you would see flying all around the cloud native landscape. You might know about it a bit as a prominent organization that maintains your frequently used open source tools like Kubernetes, Prometheus (and more!)...

Kubernetes: Everything You Need to Know about it

Kubernetes: Everything You Need to Know about it

The demand around scalable and reliable services is increasing every day exponentially. The market is driven by customers demanding their favorite services to have zero downtime and companies that lose millions of dollars for every minute they’re down. If you have...

Turbo-charge with Container Orchestration

Turbo-charge with Container Orchestration

Managing containers while traffic increases or decreases in cost-effective ways round the clock sounds challenging and complex without tools. We, as cloud-native citizens, crave scalability and agility. But our containers going into production without the cloud-native...

Unikernel Vs Container Vs VMs: Here is what you should use

Unikernel Vs Container Vs VMs: Here is what you should use

If you’d gone through Containers, Unikernels and VMs, I would bet you’re confused about which one to try for your new venture. It’s normal and happens to everyone while experimenting with adopting new technology. Remember the age-old dilemma of you thinking which...

Interested in what we do? Looking for help? Wanna talk about software strategy?