Ask HN: What are some books where the reader learns by building projects?

53 points by Shosty123 ↗ HN
2021 Edition. This is a continuation of the previous two threads which can be found here:

https://news.ycombinator.com/item?id=22299180

https://news.ycombinator.com/item?id=13660086

Other resources:

https://github.com/danistefanovic/build-your-own-x

https://github.com/AlgoryL/Projects-from-Scratch

https://github.com/tuvtran/project-based-learning

18 comments

[ 5.4 ms ] story [ 53.3 ms ] thread
_Python Crash Course_

This book is aimed squarely at beginners, but it's excellent for that purpose.

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!

+1 This book is excellent. Going through it w/ my daughter as a learning project now. I've worked on renderers in the games and vfx industries, and this is a very satisfying and relatively easy introduction.

Once finished, you can jump in to PBRT https://pbrt.org/ which has a new update coming out for rendering on gpu.

At what age have you started working with your kid to get her into coding, and what would you suggest as the first step?
https://builditwith.com/nitro — Seven web application projects from corporate message board to stock ticker. Learn Erlang as you go.
Have you done it?

Elixir has interested me but I'm not sure if I want to learn Erlang.

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!
_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...
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.
“Mazes for programmers” was a nice thing to read and then implement something from what you learned.
"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