Operating Systems
Linux Journey
open-source
A guide to Linux, starting with terms and definitions and progressing through various topics such as processes, the filesystem, and networking.
Ten Steps to Linux Survival
A guide to Bash in the context of Linux, covering the operation of the shell, useful commands, and some history.
The Internet
Hello DNS
open-source
"This series of documents attempts to provide a correct introduction to the Domain Name System as of 2018. The original RFCs remain the authoritative source of normative text, but this document tries to make this venerable protocol more accessible, while maintaining full alignment with all relevant and useful RFCs."
Dive Into HTML5
open-source
"Seeks to elaborate on a hand-picked Selection of features from the HTML5 specification and other fine Standards."
Programming Languages
Crafting Interpreters
"This book contains everything you need to implement a full-featured, efficient scripting language."
The C Book
"Designed for programmers who already have some experience of using a modern high-level procedural programming language. The book will assume that its readers have already done battle with the notions of statements, variables, conditional execution, arrays, procedures (or subroutines) and so on."
wizard code
"Discusses the C language in depth from a low-level programmer's perspective. You will get familiar with how Unix-like systems execute code, how C code is translated to assembly (and later, trivially, to machine language), and such advanced topics."
Learn You Some Erlang
"A way to learn Erlang for people who have basic knowledge of programming in imperative languages (such as C/C++, Java, Python, Ruby, etc) and may or may not know functional programming."
Learn You A Haskell
A tutorial for the Haskell language aimed at those with some prior programming experience.
Eloquent Javascript
An online book that introduces the principles of programming through Javascript.
Javascript Garden
open-source
"A growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes and subtle bugs, as well as performance issues and bad practices, that non-expert JavaScript programmers may encounter on their endeavours into the depths of the language."
R for Data Science
"This book will teach you how to do data science with R: You’ll learn how to get your data into R, get it into the most useful structure, transform it, visualise it and model it."
SQLBolt
interactive
"A series of interactive lessons and exercises designed to help you quickly learn SQL right in your browser."
Advanced Topics
Crypto101
open-source
"Comes with everything you need to understand complete systems such as SSL/TLS: block ciphers, stream ciphers, hash functions, message authentication codes, public key encryption, key agreement protocols, and signature algorithms."
Deep Learning
"A resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular."