I'm second-career web developer (writing mostly Ruby) since 2022, meaning I didn't get a computer science degree. So this list is me catching up.
My "Learn Ruby" list slightly overlaps with the material in this list, namely in the sections "Foundations" and "Beyond Ruby".
- Networking / the Web
- Hardware systems
- Operating systems
- Concurrency
- Database internals
- Compilers
- Math / logic
- Data structures and algorithms
- Low-level programming
- HTTP:
- Beej's Guide to Network Programming
- Experiment with CDNs or reverse proxies (e.g. Nginx, Varnish, HAProxy, Cloudflare) to understand caching, TLS termination, load balancing, and security filtering (rate limiting, WAF, etc.).
- π²Grokking Web Application Security and the free accompanying site Hacksplaining
- PortSwigger - web security exercises
- π²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
- 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
- PGTune
- π²Build a Database Server
- π²Build Your Own Database From Scratch in Go
- Build Your Own Redis with C/C++
- Build Redis from scratch
- 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
- π²Logic for Programmers
- π²Math for Programming
- π²Concrete Mathematics: A Foundation for Computer Science
- π²Coding The Matrix: Linear Algebra Through Computer Science Applications
-  π²Data Structures and Algorithms in Java along with VisuAlgo
- Maybe this instead: π²A Common-Sense Guide to Data Structures and Algorithms
- Or: π²Algorithms Unlocked
 
- π²Practical Analysis of Algorithms
- π²The Algorithm Design Manual plus lecture videos
-  π²Algorithm Design
- Maybe this instead: π²Algorithms
- Or: π²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.
- NeetCode 250
- 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
- π²Systems Programming with Zig
- 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)
- Or make a text-based game: see How to program a text adventure in C and Knuth's C port of Colossal Cave Adventure (which, incidentally, is an example of literate programming, now reincarnated in Entangled)
 
- Handmade Network