Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What are some books where the reader learns by building projects?
53 points by Shosty123 on Feb 5, 2021 | hide | past | favorite | 18 comments
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



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.


_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/

[2] https://compilerbook.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!


+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?


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).

[1] https://compilers.iecc.com/crenshaw/


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.


Have you done it?

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


"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.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: