Don’t try to reinvent the wheel. Just learn from those who have already done it well.

George Foreman

Design patterns are general, reusable solutions to common software engineering bugs. They are good practices developed by trial and error, labor, and countless hours of debugging by programmers in the past, so that developing can be easier, faster, cleaner, bug-free for us today. In short software design patterns are all about not reinventing the wheel.

Design patterns gained popularity after the publishing of the book Design Patterns: Elements of Reusable Object-Oriented Software was published in 1994 by the so-called “Gang of Four”…

This article is made for experienced engineers who want to dive into the core of node.js fast and kick-start their full-stack JavaScript career. Reading the code (instead of trying to understand concepts through words) is usually the easiest way to learn a new language. Therefore, there will be little, to no text.

Requirements for this guide:

  • Vanilla JavaScript (ES6)
  • Object-oriented programming
  • HTTP protocol
  • Basic understanding of cryptography
if (beginner_programmer || want_detailed_tutorial): 



  • Build on C++, node.js allows developers to write server-side code with JavaScript, therefore making full-stack JS development possible.
  • It is fast. Node.js is single-threaded but handles…

We can think of natural sciences, as sciences that reverse engineer the system of the natural world. For instance, neuroscientists study the human brain, collect and analyze its data, and attempt to understand the way it operates.

On the other hand, we can think of computer science, as the science that develops a system — a technological world (instead of reverse engineering it). For example an artificial intelligence engineer, uses data and statistical methods in order to create a “virtual brain”, one could say.

In this context, computer science and natural sciences progress towards the same direction, but begin from…

Dimitris Prasakis

DevSecOps Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store