- The Full-Stack Developer’s Roadmap Part 1: Frontend
- The Full-Stack Developer’s Roadmap Part 2: Backend
- The Full-Stack Developer’s Roadmap Part 3: Databases
- The Full-Stack Developer’s Roadmap Part 4: APIs
- The DevOps Roadmap: Fundamentals with CI/CD
- The DevOps Roadmap: 7 Best Practices in CI/CD
- The DevOps Roadmap: Virtualization
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.
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:
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 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 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.
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.
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 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, 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.
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.