4 ms·
Ask HN: What are some books where the reader learns by building projects?
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
- brianjunyinchan 6y ago52 Random Weekend Projects: For Budding Inventors and Backyard Builders https://www.amazon.com/Garage-Science-Incredible-Projects-Backyard/dp/1250184509 https://www.amazon.com/Garage-Science-Incredible-Projects-Ba...
- Jtsummers 6y agoThe Elements of Computing Systems is being discussed in a front-page thread at the moment (https://news.ycombinator.com/item?id=26036790 https://news.ycombinator.com/item?id=26036790).
- tharne 6y ago_Python Crash Course_ This book is aimed squarely at beginners, but it's excellent for that purpose.
- rustyemu 6y agoI recommend The Ray Tracer Challenge: https://pragprog.com/titles/jbtracer/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!
- wanderingmoose 6y ago+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/ https://pbrt.org/ which has a new update coming out for rendering on gpu.
- TooSmugToFail 6y agoAt what age have you started working with your kid to get her into coding, and what would you suggest as the first step?
- lrPrentice1 6y agohttps://builditwith.com/nitro https://builditwith.com/nitro — Seven web application projects from corporate message board to stock ticker. Learn Erlang as you go.
- fokinsean 6y agoHave you done it? Elixir has interested me but I'm not sure if I want to learn Erlang.
- sixhobbits 6y agoWe did https://codewithrepl.it https://codewithrepl.it recently which is a collection of beginner and intermediate Python projects - would love any feedback if you try them out!
- bradtheappguy 6y ago_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/0070109621 https://www.amazon.com/Build-Your-Own-Z80-Computer/dp/007010... https://archive.org/details/BuildYourOwnZ80ComputerSteveCiarcia/Build_Your_Own_Z80_Computer_Steve_Ciarcia https://archive.org/details/BuildYourOwnZ80ComputerSteveCiar...
- synacksynack 6y agoNot a book, but https://hackattic.com/ 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.
- drivers99 6y ago“Mazes for programmers” was a nice thing to read and then implement something from what you learned.
- livre 6y agoLet'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/ https://compilers.iecc.com/crenshaw/
- westurner 6y ago"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 https://g.co/kgs/GNqnWV
- diehunde 6y ago- 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/ https://interpreterbook.com/ [2] https://compilerbook.com/ https://compilerbook.com/ [3] https://pragprog.com/titles/tjgo/distributed-services-with-go/ https://pragprog.com/titles/tjgo/distributed-services-with-g...
- asicsp 6y agoFor Python: * Tiny Python Projects (https://www.manning.com/books/tiny-python-projects https://www.manning.com/books/tiny-python-projects) by Ken Youens-Clark * Impractical Python Projects (https://nostarch.com/impracticalpythonprojects https://nostarch.com/impracticalpythonprojects) and Real world Python (https://nostarch.com/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_you_automate_with_python_at_home/ https://www.reddit.com/r/learnpython/comments/k5k1h0/what_do...
- DataCrayon 6y agoData is Beautiful, where each short section is on building a different visualisation with Python https://datacrayon.com/shop/product/data-is-beautiful/ https://datacrayon.com/shop/product/data-is-beautiful/ (my book)
- abhijat 6y ago"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/ https://www.pragprog.com/titles/hwrust/hands-on-rust/ - one is a flappy dragon game and the other is a dungeon crawler.