This is a collection of resources that I find very useful for learning programming.
Games to learn programming
- Human Resource Machine - to learn how a computer processor works.
- 7 Billion Humans - to learn concurrency and parallelism.
- TIS-100 - to feel the joy of assembler programming.
- Build a Modern Computer from First Principles: From Nand to Tetris
- Build a Modern Computer from First Principles: Nand to Tetris Part II
- Programming Languages, Part A
- Programming Languages, Part B
- Programming Languages, Part C
- Algorithms I
- Algorithms II
- David Crawshaw SQLite and Go
- Kill "Microservices" before its too late by Chad Fowler
- Concurrency is not Parallelism by Rob Pike
- Computer Science Distilled: Learn the Art of Solving Computational Problems
- Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
- Code: The Hidden Language of Computer Hardware and Software
- Clean Code: A Handbook of Agile Software Craftsmanship
- Clean Architecture
- Test-Driven Development: By Example
- The Pragmatic Programmer: From Journeyman to Master
- Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
- Scalability Rules: 50 Principles for Scaling Web Sites
- Designing Data-Intensive Applications
- Structure and Interpretation of Computer Programs