BACK-END DEVELOPMENT

The Basics

NODEJS

An asynchronous event driven JavaScript runtime, Node is designed to build scalable network applications.

Getting it done:

  • Learn the basics of NodeJs.
  • Understand modules and modular segmentation.
  • Practice, practice, and more practice.

PACKAGE MANAGERS: NPM / YARN

NPM - Package manager for JavaScript and the world’s largest software registry.

Yarn - Package manager for your code. It allows you to use and share code with other developers from around the world

Getting it done:

  • Look into NPM.
  • Look into Yarn.
  • Choose one that works for you and practice.

FRAMEWORK: EXPRESS

A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications..

Getting it done:

  • Learn the basics of Express.
  • Learn routing, middleware, serving static files & template engines.
  • Learn & understand RESTful routing.

Dive Deeper

DATABASES: RELATIONAL DBs

An organized collection of data, generally stored and accessed electronically from a computer system.

PostgreSQL - A powerful, open source object-relational database system that uses and extends the SQL language combined with many features that safely store and scale the most complicated data workloads.

Getting it done:

  • Learn & understand databases, DBMS, and database models.
  • Learn basics of SQL & Postgres.
  • PG module or Sequelize... pick your poison and run with it.

AUTHENTICATION

Authentication is for identifying users and provide different access rights and content depending on their id. In most cases the application provides a login form with certain credentials to verify a user.

Getting it done:

  • Learn about sessions & cookies.
  • Learn about encryption & validation.
  • Practice, practice, and more practice.

BACKEND TESTING

Testing that checks the Application and Database layer. Backend testing is defined as a type of testing that checks the server side or Database. It is also known as Database Testing.

Getting it done:

  • Learn how to write Unit tests.
  • Learn how to write Integration tests.
  • Practice, practice, and more practice.

Dive Even Deeper

CACHING & MESSAGE BROKERS

Caching - The act of keeping data in storage to allow retrieval without having to request the data from the original source, if that data will not change frequently. This is a commonly used technique to improve the performance of any application, be it desktop, mobile or web.

Message Broker - An intermediary computer program module that translate a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver.

Getting it done:

  • Understand the basics of caching and it's importance.
  • Learn about caching Redis(can be used to implement both caching and message queuing).
  • Look into other Message Brokers such as RabbitMQ, Kafka, ActiveMQ, etc.

SEARCH ENGINES

An information retrieval system designed to help find information stored on a computer system. As your application grows, simple queries on your database aren’t going to cut it and you will have to resort to a search engine.

Getting it done:

  • Learn about search engine functionality and importance.
  • Learn about the various options: ElasticSearch, Sphinx, Solar.
  • Start with ElasticSearch and practice.

DOCKER

A tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package..

Getting it done:

  • Understand Docker containers, virtualization, networking.
  • Learn about Docker Machine & Compose.
  • Learn the Docker CLI and proper orchestration.

WEB SERVERS & APPLICATION SERVERS

Web Server - Accepts and fulfills requests from clients for static content from a website (HTML pages, files, images, video, and so on). The client is almost always a browser or mobile application and the request takes the form of a Hypertext Transfer Protocol (HTTP) message, as does the web server’s response.

Application Server - Provides its clients with access to what is commonly called business logic, which generates dynamic content; that is, it’s code that transforms data to provide the specialized functionality offered by a business, service, or application. An application server’s clients are often applications themselves, and can include web servers and other application servers. Communication between the application server and its clients might take the form of HTTP messages, but that is not required as it is for communication between web servers and their clients.

Getting it done:

  • Learn about reverse proxies & load balancing.
  • Get deeper understanding for Express.
  • Look into the NGINX web server.

WEB SOCKETS

Makes it possible to open a two-way interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.

Getting it done:

  • Learn how Web Sockets differ from HTTP.
  • Learn how to use secure Web Sockets.
  • Start with Socket.io than work your way forward from there.

OTHER DATABASES

There are other databases out there such as NoSQL, GraphQL, Graph databases. Once you're comfortable with Relational Databases, move on to the others and work with them.

Getting it done:

  • Look into NoSQL.
  • Look into GraphQL.
  • Keep discovering.

KEEP EXPLORING