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.

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.

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.

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.

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.

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.

Last Updated: 8/29/2018, 11:17:02 PM