A collection of (free) web books, guides, and references by category that I've found over the years. Suggestions welcome.
- Learn X in Y Minutes
- A collection of "tours" for every popular programming language. Intended for those with programming experience to quickly learn new languages.
- Crafting Interpreters
- A book on designing your own language interpreter. By Robert Nystrom, creator of programming languages such as Wren, Finch, and Magpie.
- Structure and Interpretation of Computer Programs
- Nature of Code
- "This book focuses on a range of programming strategies and techniques behind computer simulations of natural systems, from elementary concepts in mathematics and physics to more advanced algorithms that enable sophisticated visual results."
- Build Your Own Lisp
- "If you're looking to learn C, or you've ever wondered how to build your own programming language, this is the book for you."
- Build Your Own Text Editor
- A walkthrough tutorial on how to build a text editor with C.
- Beej's Guide to C Programming
- "This is a rather comprehensive guide to C for folks who already know how to program in another language. The first half of the book is written in a tutorial style, while the second half is a reference section complete with examples (inspired by the incomparable Turbo C Bible). The goal is to keep this up-to-date with the latest C standards."
- C++ By Example
- "Here you will find clear and up to date C++ code examples with concise and straightforward explanations."
- Learn C++
- "A free website devoted to teaching you how to program in C++"
- Learn Lisp The Hard Way
- "Lispers of all experience levels should benefit from this book. We'll be exploring the language through real, immediately useful source code examples, and dissecting the language down to its core."
- Janet for Mortals
- A web book about the Lisp-like Janet programming language.
- Beej's Guide to Network Programming
- "This document should give the average competent C programmer the edge s/he needs to get a grip on this networking noise."
- Ethernet and IP Networking 101
- A software engineer's attempt at understanding and explaining networking in basic terms.
- An introduction to creating webpages with HTML & CSS.
- Learn to Code HTML & CSS
- Yet another introduction to creating webpage with HTML & CSS. Great for beginners. Good alternative to the famous Jon Duckett book.
- Learn to Code Advanced HTML & CSS
- Shay Howe's second online book on HTML & CSS. Logical next step if you finished the book directly above.
- Mozilla Developer Network: HTML
- Good guide, but may be a bit dense. Great reference material.
- Mozilla Developer Network: CSS
- Like the HTML guide. Great reference material.
- HTML Tips
- A collection of beginner and advanced tips on HTML & CSS by Thomasorus.
- HTML semantics cheat sheet
- A semantic HTML cheat sheet. Use semantic HTML to make your sites more accessible and consistent in functionality across devices.
- Mostly Adequate Guide to Functional Programming
- Functional Light JS
- Thinking in Ramda
- Mixu's Node book
- Intro to C#
- An introduction to programming using the C# language.
- Tour of C#
- A brief crash course on C# intended for those with some programming experience.
- PHP Apprentice
- A beginner-friendly introduction to programming in PHP with best practices in mind.
- PHP: The Right Way
- Less of a tutorial, more of a collection of PHP best practices.
- 2018 Guide to building secure PHP
- A guide to common PHP vulnerabilities.
- Automate The Boring Stuff With Python
- An excellent and pragmatic introduction to programming using Python 3. Perfect for beginners.
- Python 101
- A more general introduction to programming with Python. Good for beginners.
- A Byte of Python
- Another intro to programming using Python for those who know "how to save text files." Beginner-friendly.
- Dive Into Python 3
- As the title suggests, this is a deep dive into Python 3, highlighting differences from Python 2. Good reference.
- The Rust Programming Language
- Official Rust Book.
- Rust By Example
- An official collection of runnable examples in Rust.
- Rust Cookbook
- "A collection of simple examples that demonstrate good practices to accomplish common programming tasks, using the crates of the Rust ecosystem."
- Tour of Rust
- An interactive tour of rust.
- Comprehensive Rust
- This is the Rust course used by the Android team at Google. It provides you the material to quickly teach Rust to everyone.
- Elixir School
- Comprehensive reference for Elixir.
- Learn You A Haskell for Great Good
- An introduction to Functional Programming with Haskell. Aimed at those with previous programming knowledge.
- Functional Programming in OCaml
- An introduction to Functional Programming with OCaml, adapted from Cornell CS3110.
- Beautiful Racket
- "An introduction to language-oriented programming using Racket."
- Harvard CS50 Introduction to Game Development
- A free course with lectures, slides, and source code on developing games using Love2D.
- Game Programming Patterns
- A collection of game development-related design patterns. By the great Robert Nystrom.
- A book published as a series of Github issues. Guides the user in creating a game using Lua and Love2D, with plenty of exercises. Intended for those with programming experience.
- How to LÖVE
- A gentle introduction to programming and game development using Lua and the Love2D game library.
- Riot Games Game Design Curriculum
- "Riot Games’ Game Design Curriculum is an entry-level course that teaches high school students the fundamental elements of game design using a framework and interactive workshops created by our own game designers."
- Calculus Made Easy
- An accessible and pragmatic introduction to Calculus. Originally published in 1910 by Silvanus P. Thompson.
- "Starts from the very basic fundamentals of electricity, and builds up to quite complex circuits and their workings."
- Not a book, but a short introduction to Electronic Circuits for kids, along with a collection of useful links accessible to young learners.
- A collection of literature in the public domain, available in multiple formats, with standardized and readable typography.
- Collecton of HP Lovecraft writings. A browser plugin or feature to improve readability is recommended (e.g. Firefox Reader Mode).
- The Wikimedia Cookbook
- A collection of recipes from a number of nationalities and cultures. Editable open-content.
#Tech Interview Prep
- Tech Interview Handbook
- Front End Interview Handbook
- Grind 75
- Not a book. This is a customizable study plan for grinding Leetcode problems.