This follows Kamran Ahmed's Backend Developer Roadmap.
The path to follow in order to become a backend developer:
Pick a language
-
There are myriads of different options
- Scripting Languages
- Python
- Ruby
- PHP
-
Node.js
- TypeScript (Optional)
- Functional Languages
- Elixir
- Erlang
- Clojure
- Haskell
- Java
- .NET
- Other Options
- Golang
- Rust
Practice what you learnt
- Implement some commands that you use e.g. 'ls'
- Command that fetches and saves reddit posts on /r/programming
- Command that gives you directory structure in JSON format
- Command that reads JSON from above and creates director structure
- Thank of some task that you do every day and try to automate that
Standards and Best Practices
- Read about the best practices for security.
- Read the OWASP guidelines and understand different security issues and how to avoid them
- Best practice of storing configuration files
Make and Distribute Some Package/Library
- Distribute your own package with pip
- Distribute your own package with NPM
-
Contribute to some OpenSource project
- Refactor and implement the best practices that you learnt
- Look into the open issues and try to resolve
- Add any additional functionality
Learn about Testing
- Learn about how to write Unit and Integration tests
- Understand different testing terminologies such as mocks, stubs, etc.
- Write unit tests
Learn Relational Databases
- MySQL
- MariaDB
- PostgreSQL
- MSSQL
- Oracle
Practical Time
- Create a simple app using everything that you have learnt this far. It should have registration, login and CRUD.
- Create a blog
Learn a Framework
-
Python
- Django
- Flask
-
Node.js
- Express.js
Learn a NoSQL Database
- Understand what they are, how they are different from relational databases and why they are needed.
- MongoDB
Caching
-
Learn how to implement app level caching using Redis or Memcached
- Redis
- Memcached
Creating RESTful APIs
- Understand REST and learn how to make RESTful APIs to make sure to read the part about REST from the original paper of Roy Fielding
Authentication/Authorization Methodologies
-
Learn about the differences and how to implement them
- OAuth
- Basic Authentication
- Token Authentication
- JWT
- OpenID
Message Brokers
-
Learn about the message brokers, understand the "Why" and pick one.
- RabbitMQ
- Kafka
- SQS
Learn a Search Engine
- ElasticSearch
- Solr
- Sphinx
Learn How to Use Docker
- Docker
Knowledge of Web Servers
-
Learn their differences and limitations.
- Apache
- Nginx
- Caddy
- MS IIS
Learn How to Use Web Sockets
Learn GraphQL
- See what it is all about and why they are calling it the new REST
- Look into Graph Databases