Some websites with a huge amount of free content on computer science topics
- Items marked with
⚠️ are incomplete/work in progress. - Publication years (Pub. Year) are based on information I've found on the websites and might not be completely accurate. They are only meant to give a rough idea if the content might be outdated. (C.U. means Continuosly Updated and a - means Not Found)
name | topic | Pub. Year | author |
---|---|---|---|
Operating System in Rust | OS, Rust | 2020 | Philipp Opperman |
How to make an Operating System |
OS, C++ | 2018 | Sammy Pessé |
Linux Insides | Linux, C | 2020 (C.U.) | 0xAX |
OSDev Wiki | Operating Systems | 2020 (C.U.) | Many Authors |
Raspberry PI OS |
Raspberry PI, Operating Systems | 2019 | Sergey Matyukevich |
Making our own executable packer | Linux, Rust | 2020 | Amos Wenger |
name | topic | Pub. Year / Last Update | author |
---|---|---|---|
Lisperator - Implementing a programming language in Javascript | Parsers, Javascript | - / - | Mihai Bazon |
Crafting Interpreters | Compilers, Java, C | 2015 / - | Bob Nystrom |
Let's Build a Simple Interpreter | Interpreters, Python | 2015 / - | Ruslan Spivak |
Build Your Own Lisp | Compilers, C | 2015 / - | Daniel Holden |
Make a Language with Rust | Parsers, Lexers, Rust | 2020 / 2020 | Aramis Razzaghipour |
name | topic | author |
---|---|---|
Scratch A Pixel | Computer Graphics | Jean-Colas Prunier |
Tiny Renderer | Rendering | Dmitry V. Sokolov |
The Book of Shaders |
Shaders | Patricio Gonzalez |
3D Game Shaders for Beginners | Shaders | David Lettier |
Vulkan Tutorial | Computer Graphics | - |
Physically Based Rendering: From Theory to Implementation | Rendering | Matt Pharr, Wenzel Jakob, and Greg Humphreys |
Raytracing In One Weekend | Rendering | Peter Shirlay |
Learning Modern 3D Graphics Programming | Computer Graphics | Jason L. McKesson |
3D Math Primer for Graphics and Game Development | Computer Graphics | Fletcher Dunn, Iann Parbery |
Computer Graphics from Scratch | Computer Graphics | Gabriel Gambetta |
name | topic | author |
---|---|---|
Game Programming Patterns | Game Programming, C++ | Bob Nystrom |
Unreal Cpp | Game Programming, Computer Graphics | Harrison McGuire |
Roguelike Tutorial in Rust + Tcod | Game Programming, Rust | Tomas Sedovick |
Roguelike Tutorial in Rust | Game Programming, Rust | Herbert Wolverson |
How to Make a Roguelike | Game Programming, Kotlin | Adam Arold |
Game Programming Tutorials | Game programming, C++ | Gilles Bellot |
name | topic | author |
---|---|---|
Refactoring Guru | Design Patterns | Alexander Shvets |
System Design Primer | System Design, Scalability | Donne Martin |
name | topic | author |
---|---|---|
SQL Server Tutorial | SQL Server, T-SQL | - |
MySQL Tutorial | MySQL | - |
PostgreSQL Tutorial | PostgreSQL | - |
name | topic | Pub. Year | author |
---|---|---|---|
Practical Criptography With Go | Criptography, Go | 2015 | - |
name | topic | author |
---|---|---|
Interactive Coding Challenges | Algorithms | Donne Martin |
Data Structures with Java | Data Structures | Joshua Hug |
Codeforces Algorithms And Data Structures | Algorithms | Many Authors |
Codeforces Competitive Programming Tutorials | Algorithms | Many Authors |
CodeChef Data Structures And Algorithms | Algorithms | Many Authors |
E-Maxx Algorithms | Algorithms | Many Authors |
Topcoder Tutorials | Algorithms | Many Authors |
name | topic | author |
---|---|---|
Data Science Notebooks | Data Science, Python | Donne Martin |
The Foundations of Data Science | Data Science | Ani Adikhari and John Denero |
Machine Learning Topic Explanations | Machine Learning | Leonardo Araujo Santos |
Interpretable Machine Learning | Machine Learning | Christoph Molnar |
Neural Networks And Deep Learning | Machine Learning | Michael Nielsen |
MIT: Convolutional Neural Networks for Visual Recognition | Machine Learning | Andrej Karpathy |
name | topic | author |
---|---|---|
Typealias | Kotlin | Dave Leeds |
The Rust Book | Rust | Steve Klabnik and Carol Nichols |
The Rustonomicon | Rust | - |
Learn Go With Tests | Go | Chris James |
Effective Go | Go | - |
Go by Example | Go | Mark Mcgranaghan & Eli Bendersky |
Go 101 | Go | - |
Eloquent Javascript | Javascript | Marijn Haverbeke |
Javascript Garden | Javascript | Ivo Wetzel |
Understanding ES6 | Javascript, EcmaScript 6 | Nicholas Zakas |
Javascript Enlightenment | Javascript, EcmaScript 6 | Cody Lindley |
Javascript For Impatient Programmers | Javascript | Axel Rauschmayer |
Deep Javascript | Javascript | Axel Rauschmayer |
Tackling Typescript | Typescript | Axel Rauschmayer |
Typescript Deep Dive | Typescript | Helmut Tammen |
F# For Fun And Profit | F# | Scott W. |
Learn You A Haskell For A Great Good | Haskell | Mirân Lipovaca |
Real World Haskell | Haskell | Bryan O'Sullivan, Don Stewart, and John Goerzen |
Edulinq | C#, LINQ | Jon Skeet |
name | topic | author |
---|---|---|
Mostly Adequate Guide to Functional Programming | Functional Programming, Javascript | Many Authors? |
Functional Programming in OCaml | Functional Programming, OCaml | Many Authors |
name | topic | author |
---|---|---|
MIT - The Missing Semester of Your CS Education | terminal tools | Many Authors |
Pro Git | Git | Ben Straub |
Learn Vimscript The Hard Way | Advanced Vim | Steve Losh |
Software Tools in Javascript | Software Tooling | Greg Wilson |
name | topic | author |
---|---|---|
Mathematics for Programmers | Mathematics | Jeremy Kun |
Nature of Code | Mathematics, Artistic Programming | Daniel Shiffman |
Interactive Linear Algebra | Linear Algebra | Dan Margalit, Joseph Rabinoff |
I made this repository because I couldn't keep all of the websites that I found with good content in my head, so I decided to put on github since it's the website I use the most. It currently doesn't have a lot of websites, but if you know any that isn't listed here, please do a pull request.