#books
A collection of (free) web books, guides, and references by category.
#General Programming
- 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
- A legendary text book. Not an easy read. Also see the JavaScript Adaptation.
- 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."
#Network Programming
- 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.
#HTML/CSS
- MarkSheet
- 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.
#JavaScript
- JavaScript Allongé
- A guide to Functional Programming, using JavaScript.
- Mostly Adequate Guide to Functional Programming
- Yet another guide to Functional Programming, using JavaScript.
- You Don't Know JavaScript
- A series of books focusing on the underlying core mechanisms of JavaScript.
- Functional Light JS
- A pragmatic look at Functional Programming with JavaScript. By Kyle Simpson, writer of the You Don't Know JavaScript series.
- Thinking in Ramda
- A brief, accessible and effective introduction to functional programming using the Ramda JavaScript library. A series of blog posts.
- JavaScript for Impatient Programmers
- A modern guide to JavaScript for those with existing programming knowledge.
- Deep JavaScript
- More JavaScript knowledge by the great Dr. Axel Rauschmayer.
- Clean Code JavaScript
- A guide to the software engineering principles of Robert C. Martin, using JavaScript.
- 33 JavaScript Concepts
- Essential concepts for the experienced JavaScript developer.
- JavaScript for Cats
- A short, beginner-friendly intro to programming with JavaScript.
- Eloquent JavaScript
- More comprehensive introduction to JavaScript & General Programming.
- The Modern JavaScript Tutorial
- Comprehensive JavaScript reference.
- Learning JavaScript Design Patterns
- A collection of design patterns for JavaScript. The section on module patterns is fantastic.
- Mozilla Developer Network: JavaScript
- The gold standard of JavaScript references.
- MDN: A re-introduction to JavaScript
- A great introduction to JavaScript even for those with programming experience outside of JavaScript.
- How to manage HTML DOM with vanilla JavaScript only
- As the title implies, a collection of "common tasks of managing HTML DOM with vanilla JavaScript.
- Mixu's Node book
- A dated (2012), but beginner friendly introduction to server-side JavaScript with Node.js.
#C#
- 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
- 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.
#Python
- 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.
#Rust
- 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."
#Elixir
- Elixir School
- Comprehensive reference for Elixir.
#Haskell
- Learn You A Haskell for Great Good
- An introduction to Functional Programming with Haskell. Aimed at those with previous programming knowledge.
#ML
- Functional Programming in OCaml
- An introduction to Functional Programming with OCaml, adapted from Cornell CS3110.
#Racket
- Beautiful Racket
- "An introduction to language-oriented programming using Racket."
#Game Development
- 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.
- BYTEPATH
- 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.
#Game Design
- 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."
#Math
- Calculus Made Easy
- An accessible and pragmatic introduction to Calculus. Originally published in 1910 by Silvanus P. Thompson.
#Electrical Engineering
- All About Circuits
- "Starts from the very basic fundamentals of electricity, and builds up to quite complex circuits and their workings."
#Literature
-
- A collection of literature in the public domain, available in multiple formats, with standardized and readable typography.
-
Electronic Texts of H.P. Lovecraft
- Collecton of HP Lovecraft writings. A browser plugin or feature to improve readability is recommended (e.g. Firefox Reader Mode).
#Cooking
- The Wikimedia Cookbook
- A collection of recipes from a number of nationalities and cultures. Editable open-content.
#Tech Interview Prep
#Misc.
- Project Gutenberg
- An online library of over 60,000 public domain books, ranging on topics from literature, to cookbooks, and history.
- Wikibooks
- As the title suggests, these are open-content wiki-like textbooks on a myriad of subjects.