Contents

Home
Art
Biology
Computers and Electronics
  Electricity and Circuits
  Computer Hardware
  Algorithms and Data Structures
  Operating Systems
  The Command Line
  The Internet
  Software Development
  Programming Languages
  Advanced Topics
Foreign Language
Math
Physics

Computers and Electronics

Electricity and Circuits

Concise Electronics for Geeks
"An anatomically correct insight into the underlying physical phenomena needed to accurately understand the behavior of semiconductors, capacitors, or inductors - but far more readable and way shorter than a typical academic textbook."
All About Circuits
A series of books covering the basics of electricity through semiconductors and digital logic.

Computer Hardware

Build an 8-bit Computer from Scratch  video 
Learn to build a programmable 8-bit computer from logic gates.
Nand2Tetris
"A course and a textbook that guides students and self-learners through the construction of a modern, full-scale computer system - hardware and software - from the ground up."

Algorithms and Data Structures

AlgoXY  open-source 
"An open book about elementary algorithms and data structures. This book doesn't only focus on an imperative (or procedural) approach, but also includes purely functional algorithms and data structures."

Operating Systems

Operating Systems: From 0 to 1  open-source 
"Helps you gain the foundational knowledge required to write an operating system from scratch."
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.
linux-insides  open-source 
A book about the workings of the Linux kernel.

The Command Line

Learn Enough Command Line to Be Dangerous
"An introduction to the command line for complete beginners."
OpenVim  interactive  open-source 
An interactive Vim tutorial that covers basic modes and shortcuts.
Vim User Manual
A Vim tutorial that covers installation and basics through advanced usage.
RegexOne  interactive 
An interactive introduction to Regular Expressions (RegEx).

The Internet

20 Things I Learned About Browsers and the Web
"A short guide for anyone who’s curious about the basics of browsers and the web."
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."
Learn CSS Layout  open-source 
"A set of chapters about CSS layout for people who already know CSS."

Software Development

Learn Enough Git to be Dangerous
A Git tutorial for those who are complete beginners to the concept of version control.
Git in the Trenches  open-source 
"A book designed to help you both apply and understand the subtleties of Git."
Think Like (a) Git
"A simple strategy for safely experimenting with some of the features that make Git so insanely, awesomely useful. You should know how to create a repository, add and commit files to it, and you should probably have some idea of why you might want to use a branch."

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.
The Modern Javascript Tutorial  open-source 
A thorough guide to the Javascript language.
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."
Automate the Boring Stuff with Python
"Learn how to use Python to write programs that do in minutes what would take you hours to do by hand - no prior programming experience required."
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."
The Swift Programming Language
The official guide to Swift, maintained by Apple.

Advanced Topics

Reverse Engineering for Beginners
A book on reverse engineering software, assuming a basic knowledge of C/C++.
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."