Ask HN: What are some books where the reader learns by building one project?
I'm about halfway through 'Build You Own Lisp' and I'm really enjoying it. Each chapter builds on the last by adding something new to the same project (and thereby explaining some new concept). I find that the books I'm least likely to bail on are the ones that lead me through the building of one big project like this. What are some of the best titles in this little subgenre?
231 comments
[ 2.9 ms ] story [ 274 ms ] threadDoes it walk through the basics will enough? Or will I have built something with no idea how it actually works?
I would say maybe, from a language/syntax point of view pair it with "Programming Elixir", which is a good introduction to the language, again going through the concepts of it and building them up well - the Phoenix book goes pretty quickly over the language constructs, just giving you them when needed to understand how Phoenix is doing stuff.
You can learn how to build a todo list manager in Go.
This book is about building a webapp from scratch without using a framework.
I don't know if it's one of the best, but it teaches Docker concepts with a single project, and as you progress through chapters, you will find different ways you can deploy applications using Docker containers.
https://www.packtpub.com/virtualization-and-cloud/orchestrat...
https://www.cs.princeton.edu/~appel/modern/c/
Just a joke: the course is by Noam Nisan & Shimon Schocken
The accompanying book is "The Elements of Computing Systems" and Part 1 is available as a course on Coursera. I highly recommend it; just finishing the Coursera course myself and I'll definitely be doing Part 2.
Charles Petzolds "CODE The Hidden Language of Computer Hardware and Software"
http://www.charlespetzold.com/code/
I started with Elements of Computing: creating a half-adder and then a full-adder chip. But, I couldn't understand how I reached my solution—I was relying on my intuition. Then, I started reading "Code", which takes the reader on a journey from shining flash lights to communicate with your neighbor, all the way to bridging the gap between boolean algebra and building a relay.
There is an associated book. Great intro to the fundamentals of computer engineering.
Bandit Algorithms book is sort of like this. starts out simple and touches different methods
http://products.tamizhvendan.in/fsharp-applied/
First chapter of the book takes you through creating your own "Suave" functional web development library, which was a lot of fun and eye opening.
It'll run you through building a twitter clone and introduce you to git, heroku, a bit of CSS/HTML, and even goes into AJAX a bit.
I can't recommend it enough to people looking to get into rails.
Any recommendations in this area?
You can use docker compose and swarm but at some point you need to interface with how the cloud offering does elastic scaling (for example google has instance groups and deploy templates).
I haven't seen a good resource on this last part other than PaaS/IaaS doc itself. So I am curious as well.
There sort of needs to be a packer of deployment + composition but I suppose that is what chef and puppet are sort of for (I despise those tools).
Can't recommend it enough.
Is this true? I know RSpec is the popular one in open source, but last I checked the two were still pretty even as far as big name recommendations. I used to believe RSpec was the default when I first started Rails development, but as a professional dev I had seen plenty of Minitest implementation.
If you don't mind drawing out your learning process, you could walk through Hartl's tutorial and do the equivalent in Python (probably with much help from google). So you couldn't use his code examples, but you could set up the same DB structure, the same types of tests, etc, and hit all the important parts of the web dev process.
Edit: found this in another comment below. Just thought I'd include it in case you gloss over it! https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial...
It goes through making an app in Django, but is heavier on TDD than Hartl's book.
http://django-unleashed.com/
Full Disclosure: I'm the author.
If you're looking to go nuts, I recommend reading the first twelve chapters of Django Unleashed, following it up with Harry Percival's Test Driven Development with Python book (also written as a step-by-step guide), and then finishing Unleashed.
http://chimera.labs.oreilly.com/books/1234000000754/index.ht...
Two Scoops of Django (not a guide) is great to have after that.
https://www.twoscoopspress.com/products/two-scoops-of-django...
Hope that helps!
Michael's book is fantastic and I really wanted something similar for people getting into go. My book doesn't cover git or testing but that is because rails is a framework with tons done for you, and in my book you basically build all of that from scratch. You learn a ton, but it is long and adding git or testing would have made the book like 600 pages (instead of ~400ish).
If you are interested in Go I'd love to get your feedback :)
What I am thinking about doing is writing a companion book that covers git, testing, etc. Eg after every chapter the companion book then walks you through writing tests, committing to git, merging it into master, etc. That way someone could optionally choose to do those things along the way. I might also experiment with other formats, but time will tell.
About how to build a subset of git's functionality in NodeJS
https://handmadehero.org/
https://www.amazon.com/Retargetable-Compiler-Design-Implemen...
A most excellent grimoire.
You build 5 projects through the book - a programming language, paint program, a dom game and a skill sharing website using node js.
This book teaches you python through a series of example projects. You can get it online or order a physical copy and help support the author here:
https://automatetheboringstuff.com/
https://www.discovermeteor.com/
I love reading technology books. It would be great to get early access and be able to talk to the writers directly.
https://www.amazon.com/Build-Metal-Working-Scrap-Complete/dp...
I will say that the first book (metal casting) is very useful, because you can learn to make aluminum castings easily and then machine them on your cheap import/worn out old American Iron.
It's on my todo list. Never enough time, but I've got a little forge already, at least!
These days, not so much.
Strongly recommend it.