FOSK (Free and Open Source Knowledge) is a collection of tech-related books and webpages that are free to read.
I much prefer to study using books. Even though I enjoy taking classes (including video lectures) to get introduced to a new subject, I find that deeper knowledge is always restricted to written media, digital or not. Therefore I'm refraining from adding video courses to this list.
Also, if you're just starting out learning a subject, it's far easier to find a good video - or series of videos - than it is to find a good book.
Topics are listed in alphabetical order. Topics' contents are listed in the order which they were added.
Note
This project was born out of my necessity to find good study material for my self-taught journey.
Hopefully, it will help you during yours.
- Algorithms Design (in C)
- Open Data Structures (in C++)
- Open Data Structures (in Java)
- Practical Algorithms and Data Structures
- Beej's Guide to C Programming
- Beej's Guide to C Programming (Library Reference)
- Beej's Guide to Network Programming
- Modern C
Books and documents that I couldn't fit properly into other categories but are still worth a mention.
Linux specific entries. For topics regarding operating systems in general, see Operating Systems
- Operating Systems: Three Easy Pieces
- The Little Book About OS Development
- The Art of Unix Programming
- Project Oberon: The Design of an Operating System and Compiler
Resources on learning to make your own programming language, not on learning a specific programming language.
- Build Your Own Lisp
- Beautiful Racket: An Introduction to Language-Oriented Programming Using Racket
- Programming Languages: Application and Interpretation
- The Implementation of Functional Programming Languages