Books I found at my parents'
Tags: beginners, discuss, books
Published: 2018-11-06 20:14:40

If you had a semi nomadic phase you know how your parents' house is the perfect long term storage place. So, most of my programming books are there. You should see how "happy" they are to have had them lying around for years.

Some are missing (kindle for the fireplace?) but I piled up those I found today and decided to turn them into a post.

But first, the photos:

![](https://thepracticaldev.s3.amazonaws.com/i/aifpum0q5d40uygvkq2b.jpg)

![](https://thepracticaldev.s3.amazonaws.com/i/v8jg4n6dahc0j72pfu7w.jpg)

Let's talk about some of the books.

* Python Cookbook, 2nd edition. There was a time when Stack Overflow didn't exist and a book like this was worth gold (SO is from 2008, the book from 2005). A lot of its content was collected on a Python dedicated website but the book was expanded, contained better explanations and was full of anectodes written by a Python master, [Alex Martelli](https://en.wikipedia.org/wiki/Alex_Martelli). I wouldn't recommend it right now, neither its 3rd edition based on Python 3.

* Despite the title, [Introduction to algorithms](https://mitpress.mit.edu/books/introduction-algorithms-third-edition) is not really an introduction. It's edited by MIT Press and was on my university curriculum. I hated it: it's pedantic, boring, uses pseudo code and math notation and well... there are better books to uplift you from zero, especially if you're not a mathematician but a software developer. Still, its value is in its depth.

* [Head First: Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124) is the best book about design patterns. Better than the classic GoF. It's that good.

* "Getting started with Arduino" is the result of me going to a workshop about Arduino in Milan, getting the kit for free, going back home and losing interest in hardware tinkering in three nanoseconds.

* [JavaScript: The Good Parts](https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742) is still a solid book. It's pre-ES6 but the core of the language hasn't changed much (after all Babel can translate ES6 to ES-before-6). Back in the day this was a picture going around a lot:

![](https://thepracticaldev.s3.amazonaws.com/i/xzb7jt1r70pehz7d0yl1.jpg)

There's something to be said about how weird JS used to be :-D

* "Linguaggio C" is the [K&R](https://en.wikipedia.org/wiki/The_C_Programming_Language), one of the few books that's so famous that it's known by the initial of its authors. It's probably the first book about a programming language I read. It's really, really good and C can fit in your head. I mostly forgotten it though, damn you higher level languages 😂 A lot of language designers have to thank this book
* I don't know how useful it's still is (these good practices are more widespread now) but [High Performance Web Sites: Essential Knowledge for Front-End Engineers](https://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309) was a nice read. Written by Steve Souders which is a dude that knows one thing or two about speed and websites. I believe back then he was "Chief performance engineer" at Google or something like that. He also wrote one of the first tools to measure the performance of a website and its rules still have more or less the same names in Chrome's Lighthouse so many years later.
* Programming Erlang was a breath of fresh air. I remember the first time I watched the famous "[Erlang: The Movie](https://www.youtube.com/watch?v=uKfKtXYLG78)" and discussed with fellow developers and we were all "WTF is thing?!? amazing!!" (kids and their toys :D). Nobody was using Erlang (well, apart from Ericsson and some obscure companies). Elixir wasn't even an idea I think. It made me play a little with [ports](http://erlang.org/doc/tutorial/c_port.html) and other ways to make Erlang talk to Python (or was the other way around?)
* [Practical Common Lisp](http://www.gigamonkeys.com/book/) is one of the best programming books full stop. Up there with K&R. It's even engaging, which is not that common in programming books. I think I read this one in my phase of "learning random languages just because". I had no intention in becoming a Lisp programmer and I still hate the parenthesis, but the book is awesome. You even write a database of MP3 files at some point. Talking about practical examples (Spotify didn't exist and people had lots of MP3 files on their hard disks :D)
* RESTful Web Services was a book about REST written to the explain to the world the [doctoral thesis](https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) that invented REST, but also a book that probably nobody actually finished reading (including me) so we all partly implemented REST but we call it REST because we're all hipsters of the web (yes, you too). I'm sure neither the guy who invented it, nor the authors of the book are very impressed by our REST architectures. DHH, Rails creator, famously said *"Every developer working with the Web needs to read this book."*. He went on implementing a non complete version of REST in Rails, like the rest of us. "Who needs hypermedia" was the "640 KB of memory should be enough for everyone" of its time.
* Refactoring by Martin Fowler is the dead tree version of [refactoring.com](https://refactoring.com/). The website is enough.
* Twisted (born Twisted Matrix) is the cool uncle of a lot of concepts we found in more recent server side frameworks. Essentially is a framework to do single-process-event-driven networking stuff. From TCP to SSH to HTTP to IMAP to a lot more. It was also one of the best implementations of both the reactor pattern and the event loop I've seen. When I came upon Twisted the documentation was mostly a tutorial and *read the source code, Luke*. Oh, and it had deferreds (like JS promises but back when JS was neither the good parts nor ES6 :D). One of its former maintainers is around here on dev.to but I'll say no more because it's not my place to reveal identities :D
* I don't think I've read The Ruby Way, didn't know I had it :D