What a delightful coincidence! I just posted the next chapter on my in-progress book "Crafting Interpreters" which walks you through implementing an interpreter (well, two actually) from scratch, a chapter at a time: http://www.craftinginterpreters.com/ I really liked "Build Your Own Lisp" too. Fun book. :) |
I can really recommend this book, I've worked through it and am implementing the interpreter in Rust. I've just finished the latest chapter and am looking forward to the future instalments. Edit: here is the (WIP) intepreter: https://github.com/HarveyHunt/loxr |
I remember The Unix Programming Environment by Kernighan and Pike as an excellent introduction to Unix shells and general Unix programming. IIRC, throughout the chapters, it has you build some kind of interactive command line music organizer, which really demonstrates how much you can get done with a few simple shell scripts. Amazon link: https://www.amazon.com/Unix-Programming-Environment-Prentice... |
I came here to recommend Assembly Language for the PC(https://www.amazon.com/Assembly-Language-Brady-programming-l...) which I believe is actually the same book, possibly with some updates. I was probably 14 years old and bought a boxed copy of Borland Turbo Assembler for $100 at the software store at the mall. Totally worth it. I've never actually written assembly professionally, but the understanding of what's going on at the CPU level has been invaluable. You could probably run FreeDOS(http://www.freedos.org/) in a VM, looks like it comes with a couple different assemblers. |
I remember seeing a C++ (Borland) book that was entirely about building a flight simulator. Google is betraying my attempts to find it though, and i'm not sure who the actual publisher was. That was during the 90's when I was 14 or something so it was a bit above my head, but I remember almost buying it anyway. Edit: It may have been this: https://www.amazon.com/Build-Your-Own-Flight-Sim/dp/15716902... |
Aaron Reed has a terrific book, "Creating Interactive Fiction with Inform 7" (http://inform7.textories.com) that walks you through building a complete (and fairly sophisticated) text adventure. Inform 7 is very much a niche programming language, but it's really interesting and unusual, well worth investigating if you want to broaden your horizons. Vaguely Prolog-like, but written in natural language. |
I bought this a year or two ago: https://www.amazon.com/Tricks-Programming-Gurus-Advanced-Gra... It's basically a set of tutorials that lead you through the steps of building a software 3D graphics rasterizer. It covers rasterizing, lighting, shading, shadows, textures, etc, and the math behind each set of concepts. It's built on late-90s C and DirectX, but the capabilities used are covered by just about any game programming library. The author builds kind of an abstraction library on top of the DirectX code, and that's pretty easy to rewrite in whichever language and toolset you're comfortable with. |
Hacking the Xbox by Andrew 'bunnie' Huang. (http://hackingthexbox.com/) The book is free and can be downloaded online. It goes from adding the LED to the XBox to tapping the security mechanism. Plus, the original Xbox is cheap nowadays too, so you won't have to shell out a lot of money doing it. Local craigslist should have plenty of them. |
OK, you don't build a complete project, but it's a similar approach: Think Stats: Probability and Statistics for Programmershttp://greenteapress.com/thinkstats/ Here, you learn statistics by implementing statistics functions in Python along the way and use them to solve the questions in the book. |
How did you get started as a technical reviewer? I love reading technology books. It would be great to get early access and be able to talk to the writers directly. |
During my bachelor's we used this all-encompassing book by two of the teachers called Distributed Systems for System Architects (DSSA for friends). It followed a case study of a fictional company that wanted to implement a distributed system, but the level of detail and technical complexity it covers is just mind boggling ( http://www.springer.com/us/book/9780792372660 ) To this day it's probably the best CS book I have ever read. |
I had an interface electronics course back in the day that was like this. Bandit Algorithms book is sort of like this. starts out simple and touches different methods |
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.