Backend Track
Pick a Language
TIP
There a couple of widely used Backend languages you may choose to learn. It's advisable to pick one and master it as languages are just tools to solve a probelm. Some of these languages are: Ruby, NodeJs, Python and PHP.
IMPORTANT
Don’t follow trendy tools and stacks, pick the one you are comfortable with and you can easily learn.
Resources
Project
Build as many projects as you can using any of the language you choose. Example: Todo List, Blog, Command line applications etc.
Package Managers
TIP
Package managers will help you include external dependencies in your applications and to distribute your own packages. Here, you can now learn a package manager associated with the language you choose. Example: Php has composer, Ruby has RubyGems, Node has NPM or Yarn, Python has pip etc..
Standards & best Practices
TIP
Each language has it's own standard and best practices. Now, you are required to learn these in order for you not to only be a successful Backend developer but also, write clean code.
Publish a library/Package
TIP
Create a library or package and distribute it to others to use and be ready to recieve feedback. Be sure to build it by following the standards and best practices.
Testing
TIP
Testing assesses the quality of your code. There are a lot of tools for testing. However, before you learn any testing tool, it is advisable to understand testing and it's importance. For now, you could learn about units and integration test in the language you picked. Some of the testing tools are: RSpec for Ruby, pyUnit for python, PHPUnit for PHP and Mocha for NodeJs.
Build Something
TIP
Add tests to the applications you already built.
Pick a Framework
TIP
By now, you have learnt a lot about the language you chose, it will be good to learn any framework associated with it. Frameworks helps you build applications faster and secure. Some of them are: Ruby on Rails for Ruby, Django for Python, Laravel for PHP and Express for NodeJs.
- Resources
Pick a Project
TIP
Pick a project of your choice. Build this using all what you have learnt from above and share for feedback. Do well to host this project on GitHub or any cloud hosting service. It should have CRUD functionalities.
No-SQL Databases
TIP
NoSQL encompasses a wide variety of different database technologies that were developed in response to the demands presented in building modern applications. Read and understand these databases and their importance. Have a look at all the ones available and pick one.
Caching
TIP
Caching is the term for storing reusable responses in order to make subsequent requests faster. There are many different types of caching available, each of which has its own characteristics. Learn how to implement app caching using Redis or Memcached.
APIs
TIP
Technically, API stands for Application Programming Interface. It is a software intermediary that allows two applications to talk to each other.A good API makes it easier to develop a program by providing all the building blocks. Understand REST and learn how to build Resful APIs.
Authentication / Authorization Methodologies
TIP
Authentication is the process of validating the identity of a registered user before allowing access to the protected resource. Learn about the differences and how to implement them. Some of these are: OAuth, Token Authentication, JWT and many others.
- Resources
Message Brokers
TIP
A message broker (also known as an integration broker or interface engine) is an intermediary computer program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Learn about this, understand it's important and pick one you want.
Search Engines
TIP
A search engine is a software program or script available through the Internet that searches documents and files for keywords and returns the results of any files containing those keywords. You can build one yourself.
- Resources
Design Patterns
TIP
Software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. They can speed up your development process.
Architectural Patterns
TIP
An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. The have broader scope as compared to software patterns.
Domain Driven Design
TIP
It is a software development approach that uses and builds upon Object-Oriented Analysis and Design (OOAD) principles and ideas, so it’s the next logical topic for you to learn. Read more about Domains and try setting up a server.
Docker
TIP
Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. It would be good to know this especially when you would love to be add systems administration.
- Resources
Servers
TIP
Servers are computers that are set aside to store data or manage network connections. Understand servers and how they work. It would be good to build one as well.
Web Sockets
TIP
WebSocket API is an advanced technology that makes it possible to open a two-way interactive communication session between the user's browser and a serve. This is not really neede but you need to understand it's technologies.
Graph Databases
TIP
Again, this may not be very important but you can read around it to understand some things.
- Resources