_Build Your Own Z80 Computer_ by Steve Ciarcia is fantastic. You will learn the basics of computer architecture, digital logic, assembly language, power supply design, and a basic operating system. Even though it's a book from the early 80s using chips from the late 70s the parts are still available.I believe the author has posted a pdf of the book on his website, but there are used copies on Amazon and Ebay and it's a lot of fun doing a project like this without using the internet by relying on nothing but the paperback and a mouser catalog. https://www.amazon.com/Build-Your-Own-Z80-Computer/dp/007010... https://archive.org/details/BuildYourOwnZ80ComputerSteveCiar...
The Elements of Computing Systems is being discussed in a front-page thread at the moment (https://news.ycombinator.com/item?id=26036790).
- Writing an interpreter in Go [1]
- Writing a compiler in Go [2]
- Build a distributed service (append log) in Go [3]
[1] https://interpreterbook.com/
[3] https://pragprog.com/titles/tjgo/distributed-services-with-g...
I recommend The Ray Tracer Challenge: https://pragprog.com/titles/jbtracer/the-ray-tracer-challeng...
Guides you through a language-agnostic test-driven development of a primitive ray tracer. Could be done in a weekend or so of persistent work. And at the end you can bask in the glory of your fans running at 100% during rendering!
For Python:
* Tiny Python Projects (https://www.manning.com/books/tiny-python-projects) by Ken Youens-Clark
* Impractical Python Projects (https://nostarch.com/impracticalpythonprojects) and Real world Python (https://nostarch.com/real-world-python) by Lee Vaughan
This discussion thread is nice if you want to explore what people are automating using Python: https://www.reddit.com/r/learnpython/comments/k5k1h0/what_do...
52 Random Weekend Projects: For Budding Inventors and Backyard Builders
https://www.amazon.com/Garage-Science-Incredible-Projects-Ba...
Let's Build a Compiler[1] (old book but still good, you can use Free Pascal if you want to use a modern compiler).
We did https://codewithrepl.it recently which is a collection of beginner and intermediate Python projects - would love any feedback if you try them out!
https://builditwith.com/nitro — Seven web application projects from corporate message board to stock ticker. Learn Erlang as you go.
"Hands on rust" has a couple of game based projects that you work with using rust https://www.pragprog.com/titles/hwrust/hands-on-rust/ - one is a flappy dragon game and the other is a dungeon crawler.
Data is Beautiful, where each short section is on building a different visualisation with Python https://datacrayon.com/shop/product/data-is-beautiful/ (my book)
"Agile Web Development with Rails [6]" (2020) teaches TDD and agile in conjunction with a DRY, CoC, RAD web application framework: https://g.co/kgs/GNqnWV
_Python Crash Course_
This book is aimed squarely at beginners, but it's excellent for that purpose.
“Mazes for programmers” was a nice thing to read and then implement something from what you learned.
Not a book, but https://hackattic.com/ is in this vein. It's not the standard coding challenge website it may seem to be, instead a collection of small projects representative of the core ideas underlying "real world" systems. It provides just enough scaffolding and direction to get one started down the path of autodidactic exploration; satisfying and enlightening without being frustrating.