Some Books I Like // One Year of NULL BITMAP
This is the 52nd NULL BITMAP, which means I have been doing this for a whole year! I skipped one week before I decided that this was going to be a weekly thing, but besides that there has been a NULL BITMAP every Monday. If you have read any of them then thank you for partaking in this whole deal I am very grateful :)
I wasn’t sure what an appropriate anniversary issue was so I decided to just pluck a bunch of books I like off my bookshelf and talk about them a bit. Some of them are database-related, some of them are computer-related. They’re all of my general interest areas so if you generally enjoy the kind of stuff I talk about here then you would probably enjoy any of them.
A Book of Abstract Algebra by Charles C. Pinter
This is a great book if you’re just some person with some vague math background who is interested in learning about abstract algebra (groups, rings, all that stuff). I think this book works better for independent study than most textbooks, structurally, where it’s mostly organized around the exercises and less around the “lessons.” Since if you’re doing independent study you’re not going to have access to a lecturer to contextualize things and ask questions to, it’s good that most of the learning here, and the new concepts, are introduced in the context of exercises that you work through. That said for anything like this I’d recommend having a designated Math Friend you can go to with questions since there’s a lot of unwritten knowledge around this stuff about “how to think about it” that you don’t typically get from books.
The University of Waterloo CS442/642 Winter 2016 Course Notes
Don’t know what that stain is. Never noticed it before. Not going to think about it.
These are the course notes for the programming languages course I took. I remember I held onto this thing because it contained what struck me as the only remotely coherent presentation of the unification algorithm I’d ever seen. Anyway. Here it is.
Structure and Interpretation of Computer Programs
It’s a classic for a reason! If you are at all interested in computation as a “thing” then you gotta read this thing. If you have been programming for a long time already it’s the kind of book you’ll read and you’ll constantly have the experience of like, “oh yeah, I knew that, but I wouldn’t have been able to state it in such a lucid way.” Hard to say much about this that hasn’t been said. I like the book.
Crafting Interpreters
This book is about how to build interpreters, but it has the texture that a lot of my favourite computer books have where it uses that as a skeleton to hang off a lot of random, interesting side tidbits and tricks that you don’t see in “the literature” all that often. It also just has a really personal, friendly voice that I think is lacking in a lot of computer books that I really appreciated. This one is completely available for free online, and it’s great fun to work through.
Dynamic Programming
Okay. I’ll admit it. I haven’t actually read this one. But it was a gift from my friend and I love seeing it on my bookshelf and I love dynamic programming. My casual flipping through of this book is what gave me my current Twitter bio:
A Funky Guide to Enterprise Datalog for the Disco Era
A recent thrift store find, and a surprisingly coherent read for something so old. Mostly it’s about defining business processes in Datalog, and a lot of the book is dedicated to trashing SQL with bizarre phrases like “that wet blanket Codd couldn’t get busy with graph traversal, baby,” but it’s got lots of fun examples and also contains the only real good explanation of the magic sets transformation I’ve ever seen.
The Manga Guide to Databases
This is really a guide to using databases. Like, it’s about how to define and manipulate a SQL database. People never believe me when I tell them that this is how I learned SQL. But it’s a good book! It’s a good book!! I think I read it at an age when I was like, not really all that willing to take smart people’s word for things. So when people would be like “normalizing your data is good and here’s a reason why” I’d be like “eh. I’m unconvinced. I think maybe it’s bad.” And this book managed to explain to me why stuff like that was actually valuable.
I pirated this back in University and then my friend Paul got me a physical copy of it. Maybe as a joke. But I treasure it.
In Pursuit of the Traveling Salesman
This is a book by a professor at my school about the Traveling Salesman problem. It’s…reasonably accessible. It’s not like, a super easy read. It’s not like, narrative, chill, lean back, let it wash over you. You do have to pay pretty close attention and think through what’s being said, but if you have any interest in things like discrete optimization or combinatorics this is an absolute banger. Bill Cook’s class on discrete optimization was one of my favourite classes I took in school and I have always regretted not taking the follow-up.
Designing Data-Intensive Applications
Every self-respecting database guy has to read this book. It sounds like some kind of buzzwordy big data-y book but it’s a really great overview of a lot of the main ideas in databases and distributed systems. I have two main caveats that I suggest this book with:
It doesn’t go very in-depth about anything, really, and while it provides pointers to things, it really is just a surface level introduction to a lot of topics, so don’t go like, citing this in an argument or something, because it’s not that kind of book. Find a real source if you want to have a substantive discussion about something.
I think due to Martin Kleppmann’s interest, this book and his writing more broadly overrepresents how prevalent things like CRDTs are, and I think centers them a bit too much in a lot of the context, which can make some of the framing in this book weird.
It’s been a couple years since I’ve read it, so those take those points with a grain of salt. I think if you are into databases it would be silly not to read this, though.
Bye bye
Okay that’s all I got! Again, if you read NULL BITMAP every week thank you, your readership is appreciated and especially if you’ve ever sent in a kind word I appreciate that from the bottom of my heart as well.
NULL BITMAP shall continue! Until I get bored of it.