Computers and Electronics
Foreign Language
video  open-source  interactive  textbook  


In my time on the Internet, I've come across several instructional websites that are extremely straightforward in their presentation of material, and often maintain a sense of humor and self-awareness throughout. These tutorials, while usually isolated works, have proven invaluable to me.

Additionally, I've observed that for most topics there are few, if any, guides that facilitate first-principles approaches to learning.

Finally, there is not, as far as I know, a comprehensive guide to learning just about anything using freely available resources.

To that end, I present the Zencyclopedia, a categorized list of resources to assist in the learning of any subject from first principles. The name is a portmanteau of the Japanese word 全 (pronounced "zen"), meaning "all" or "everything," and the English word "encyclopedia."

The versioning of this document is handled using Git.

I expect there to be an initial skew towards fields I am familiar with or particularly interested in, but hopefully, with community effort, that bias can be corrected.

Sid Mani


Contributions are handled via pull requests to the Github repository.


The Zencyclopedia is released under the terms of the CC BY-NC-SA 4.0 license.



PurpleKecleon's Introduction to Color Theory
An introduction to the fundamentals of color theory, using Pokémon.

Drawing and Painting

Draw A Box
A set of drawing lessons that begins with simple boxes and progresses to more complex objects such as vehicles, animals, and other everyday objects.
Ctrl+Paint  video
"A free learning resource dedicated to the basics of digital painting. Each bite-sized video covers a different concept, allowing you to learn complex subjects in manageable increments."


The Bastards Book of Photography
"Learn how to move past depending on your camera’s automatic mode and onto operating its manual settings."

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.
"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

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."

Foreign Language


Tae Kim's Guide to Japanese Grammar
"A resource for those who want to learn Japanese grammar in a rational, intuitive way that makes sense in Japanese. The explanations are focused on how to make sense of the grammar not from English but from a Japanese point of view."
An Introduction to Japanese Syntax, Grammar, and Language  open-source
"This book explains Japanese the way one may find it taught at universities, covering everything from basic to intermediary Japanese, and even touching on some of the more advanced constructions."
A set of in-depth Japanese lessons spanning introductory to advanced concepts.


Talk To Me In Korean  video
Lessons, videos, and podcasts for learners of any level.



Pre-algebra (OpenStax)  textbook
"Introduces the fundamental concepts of algebra while addressing the needs of students with diverse backgrounds and learning styles."
Beginning and Intermediate Algebra  textbook
A standard introduction to algebra, beginning with a review of pre-algebra.
College Algebra (OpenStax)  textbook
"A comprehensive exploration of algebraic principles; meets scope and sequence requirements for a typical introductory algebra course."

Geometry and Trigonometry

Dave's Short Trig Course
An introduction to trigonometry that assumes knowledge of algebra and geometry.
Trigonometry  textbook
"A text on elementary trigonometry, designed for students who have completed courses in high-school algebra and geometry."
Euclid's Elements Redux  textbook
"An open textbook on mathematical logic and geometry based on Euclid's 'Elements'."
Euclidean plane and its relatives  open-source  textbook
"Designed for a semester-long course in Foundations of Geometry and meant to be rigorous, conservative, elementary and minimalist."


Precalculus  open-source  textbook
"Presented at a level that definitely prepares a student for Calculus while giving them relevant Mathematics which can be used in other classes as well."
mooculus  textbook
"A first and friendly introduction to calculus, suitable for someone who has never seen the subject before, or for someone who has seen some calculus but wants to review the concepts and practice applying those concepts to solve problems. "
Fundamentals of Calculus  open-source  textbook
"Covers the first semester of a freshman calculus course."
Yet Another Calculus Textbook  textbook
"An introduction to calculus based on the hyperreal number system. Although the book does not explicitly assume any prerequisites beyond basic algebra and trigonometry, in practice the pace is too fast for most of those without some acquaintance with the basic notions of calculus."

Differential Equations

Diffy Qs: Differential Equations for Engineers  open-source  textbook
"A one-semester first course on differential equations, aimed at engineering students. Prerequisite for the course is the basic calculus sequence."

Linear Algebra

Linear Algebra Done Wrong  textbook
"A first linear algebra course for mathematically advanced students. It is intended for a student who, while not yet very familiar with abstract reasoning, is willing to study more rigorous mathematics than is presented in a 'cookbook style' calculus type course."
Elements of Abstract and Linear Algebra  textbook
"A survey of abstract algebra with emphasis on linear algebra. It is intended for students in mathematics, computer science, and the physical sciences."

Proofs and Logic

A Gentle Introduction to the Art of Mathematics  open-source  textbook
"Covers several topics in the foundations of mathematics (logic, sets, relations, functions and cardinality) and introduces the reader to many techniques of mathematical proof (direct, indirect, contradiction, contrapositive, mathematical induction, combinatorial proofs and magic)."
Book of Proof  textbook
"Learn and apply the methods of thought that mathematicians use to verify theorems, explore mathematical truth and create new mathematical theories."

Advanced Stuff

An Infinitely Large Napkin  textbook
A broad survey of higher mathematics.



The Feynman Lectures
"A high quality up-to-date copy of Feynman's legendary lectures."
How to become a GOOD Theoretical Physicist
A guide to learning physics from the ground up by Nobel laureate Gerard 't Hooft.

Classical Mechanics

Mechanics  open-source  textbook
"A calculus-based book meant for the first semester of the type of freshman survey course taken by engineering and physical science majors."


Special Relativity  open-source  textbook
"A textbook on special relativity, aimed at undergraduates who have already completed a freshman survey course. The treatment of electromagnetism assumes previous exposure to Maxwell's equations in integral form, but no knowledge of vector calculus."
General Relativity  open-source  textbook
"A textbook on general relativity for upper-division undergraduates majoring in physics. Meant to be especially well adapted for self-study, and answers are given in the back of the book for almost all the problems."



"First-principle approaches to medical sciences. Learn how medicine affects our day to day lives from the micro to the macro."