fpsvogel/learn-cs
Learning resources for computer science, C, etc.
I'm second-career web developer (writing mostly Ruby) since 2022, meaning I didn't get a computer science degree and don't do any low-level programming for work. So this list is me catching up on those.
My "Learn Ruby" list slightly overlaps with the material in this list, namely in the sections "Foundations" and "Beyond Ruby".
💲Code: The Hidden Language of Computer Hardware and Software
NandGame and solutions: 1, 2, 3
From Nand to Tetris: Part 1, Part 2
Practice building a computer in CircuitVerse, Logisim Evolution, or 💲Turing Complete
Dive into Systems
💲Digital Design and Computer Architecture
💲Computer Systems: A Programmer's Perspective
Operating Systems: Three Easy Pieces
xv6, a simple Unix-like teaching operating system (MIT course)
Is Parallel Programming Hard, And, If So, What Can You Do About It?
Distributed Systems
Gossip Glomers (distibuted systems challenges)
How does a relational database work?
Architecture of a Database System
How Does a Database Work?
💲Database Internals
Transaction Processing
The Internals of PostgreSQL
Readings in Database Systems
Destroy All Software - A Compiler from Scratch
Writing a compiler in Ruby, bottom up and related resources at the bottom of that page
💲Crafting Interpreters
💲Build Your Own Compiler from Scratch
💲Data Structures and Algorithms in Java
💲The Algorithm Design Manual plus lecture videos
💲Algorithm Design
💲Algorithms
💲Introduction to Algorithms
Tech Interview Handbook
💲Cracking the Coding Interview
💲Beyond Cracking the Coding Interview (solutions for free at interviewing.io)
💲Elements of Programming Interviews
Ruby solutions: 1, 2, 3, 4, 5
Algorithms Ruby gem that is included in the LeetCode environment.
Grind75
14 Patterns to Ace Any Coding Interview Question
20 Essential Coding Patterns to Ace Your Next Coding Interview
Coding Interview Patterns
AlgoMonster - Patterns
LeetCode Patterns
💲Grokking the Coding Interview: Patterns for Coding Questions
An interview algorithms tier list
Another algorithms tier list
Other resource lists: 1, 2, 3
Introduction to Zig: a project-based book
Zig - "Learn" page listing other resources
Zig + raylib: raylib-zig (based on RayZig?), examples, a template with raygui
💲C Programming: A Modern Approach
CS50 problem sets (1-5) and solutions: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Tutorial on pointers and arrays in C
Exercism - C
Advent of Code: CLI/runner written in C; I can't find any repos with solutions for all years, but probably there are repos with solutions for a specific year.
Look into other "better C" languages besides Zig: Odin, Beef, V, Jai, C3, MiniLang, and others (minus the C++ replacements like Rust, which are too complex for my purposes)
Handmade Hero videos plus Handmade Penguin to follow along in Linux
Handmade Quake videos and source code
Kohi Game Engine videos
Make a game, taking inspiration from high_impact, raylib, Box2D 3.x (or see box2d-raylib)