Overview

This page gives you an overview of how the tutorials are laid out and suggested pre-requisites.

Assumed Knowledge

Each tutorial includes a recommended level of general technical knowledge, classified like so:

Table 1. Tutorial Levels
LevelDescription

Beginner

Basic familiarity with Linux, knows how to SSH to a server, and one higher-level programming language (e.g., python, ruby, perl)

Intermediate

More in-depth knowledge of linux; you could install kernel modules if you had Google handy. Understanding the basics of what a file is and how memory works. Comfortable with at least two languages, one preferably statically typed.

Advanced

Expert in Linux; full knowledge of what Docker is, can utilize tracepoints, can setup nginx, haproxy, and other common software.

What’s a Tutorial, Anyway?

I mention this because I want everyone to understand that I don’t think long lists of technical steps are the only things that qualify as tutorials. There’s a lot of thinking, reflection, pondering, and musing that occur when designing and building large-scale projects. This part of the process is covered in the tutorials as well, and are often more important than the technical information.

Terminology

Below are some definitions you may find helpful. I try to follow them consistently.

Try.

Table 2. Terms and Meanings
TermMeaning

Project

A project is a specific application or system that is the end of product of a series of tutorials.

Article

A short, self-contained article on a more theoretical subject; used to give background info on a subject.