For beginners - Roadmap to being a great backend developer.
This article is intended for budding backend developers on how to get started in being a backend software developer.
1. Deeply understand what backend web development is all about
Backend development is a form of engineering done on the server-side as you get to, work with databases, create APIs that would be consumed by a frontend engineer, work with CI/CD pipelines, DevOps, working with a particular software architecture and many more. Primarily, it focuses on the logic behind a web application.
2. Choose a programming language and never skip to properly understand the basics
- First things first, I will suggest you try your hands on the most demanded or popular programming languages in the industry (this is quite relative) and go with the one you feel most comfortable with and in respect to how great you are at learning it.
- Do you love the ecosystem this particular language has? Do you love the kind of communities and persons or any other thing you see that surrounds it? This might also be a good reason to go with a particular one. You can read further on this wonderful article: mkdev.me/en/posts/how-to-choose-a-programmi..
After, choosing a suitable language for a start, make sure to never skip the basics. Practice more questions on Data Structures and Algorithms because this will help you become a better problem solver.
Everyone can learn a framework to build anything, but not everyone is a good problem solver
3. Choose good learning sites to learn with
There are many sites out there that provide a form of service for beginners to get started with a programming language I believe all are good but it totally depends on who you are and how you learn.
- If you love to read rather than watch videos for hours, you can try out: Educative.io
- If you love watching videos and rather get a course at a cheaper price, you can try Udemy
- I have tried out code academy and also many developers. Most times, experienced developers use this site to learn a new programming language and the depth of the courses are great.
- Others are PluralSight, Coursera, etc which are all equally good.
4. Good knowledge of HTML and CSS
As a backend developer, having sound knowledge of these web technologies have helped me work so well with frontend engineers and even made me transform easily into being a full stack developer. I highly recommend you have a knowledge of this, but I do not believe it is imperative.
5. Having a good and dedicated mentor
Most people do not have the opportunity to work with a good and dedicated mentor. But if you really want to push through and need to get to the desired point of yours. A mentor is highly necessary. You need someone that understands you, the way you learn, your goals and vision and also guides you through that path.
6. Learn a good framework
- Express is fast, reliable and easy.
- Easy to learn and work with databases like MongoDB and PostgreSQL when you start using Mongoose ODM and Sequelize ORM.
7. Begin to work on some projects
Nothing beats the knowledge you gain from finally working on projects (no matter how simple), you get to show off the knowledge of skills you have gained on your portfolio and also know how to bring all the pieces of what you have learnt someway together.
8. Deeply understand GIT, CI/CD tools, containerization tools
Git is a version control system that allows developers to collaborate and also tracks source code. You can use Github for a start because it houses a lot of open-source code. Having a good knowledge about GIT will help you work better with writing code and will also make it easy for you to join any team.
CI/CD stands for "Continuous Integration and Continuous Delivery." There are many CI/CD tools out there used in automation, most times a CI/CD pipeline has build, test, and deploy stages. Having the knowledge of CI/CD tools will allow a developer automate any written tests or builds for a given project.
You can learn how to host your APIs on some cloud platforms. Heroku is a good start for beginners. All the above are part of DevOps processes and no matter how little it is, it's great if you can have some knowledge about it.
Some knowledge of tools to containerize your code, for example, docker is great too.
It will also be solid to have an idea of popular architectures like monolithic and microservices.
9. Join a program/boot-camp or take a large course
If you have been learning all by yourself, and you can't account for an improvement or you can't successfully get a mentor. You can always strive to join a program, a boot-camp or take a course on Udacity. Remember that nobody is responsible for your growth but you!
One common problem with self-learners is that they always have gaps, so in order to fill in these gaps, you have to take extra measures to secure your knowledge gain.
Best P. Ls and FWs for beginners to start with:
- Python (Django or Flask)
- Java (Spring)
- Ruby (on Rails)
- PHP (Laravel)
- Travis CI
- Circle CI
- Code Climate
- GitHub Actions
- AWS lambda
- Digital Ocean
Project Management tools:
- Pivotal Tracker
- GitHub projects
All the above are tools purely recommended by me which I believe will be a great fit for budding backend developers.
Thanks for reading!
Thanks for writing this Funmilayo E. Olaiya. I have been searching for a roadmap lately! Subsequently, I will be reaching out with some questions! Bookmarked already!
Great article Funmilayo E. Olaiya.
I have a contrary view on express. First, it is a library, albeit a great one, with very basic features. It is a good first library. Once a dev has gotten the basics of express, it's better to move to a more mature framework like AdonisJS or NestJS. These frameworks have an inherent structure that teaches a growing developer some best practices to code organization.
Once more, great article. Thank you for sharing your knowledge.