I’m interested in computers since I’ve learnt that they exist. And I’ve always wanted to work with them. But life is strange and I’ve landed with MA in Marketing and Management. Thankfully these days education doesn’t chain you to one type of work and currently I work as a, sort of, software engineer. But I’ve been always feeling like an imposter, because I don’t have official CS education.
The Imposter’s Handbook to the rescue! This book is exactly for people like myself. It helps to fill in the blanks. The part about algorithms is simply brilliant. Finally someone has described Big O notation in the way which is easily comprehensible. All the other books I’ve read started with a deep math and simply bored me before I’ve got to the main idea. Here you get the essence of the thing.
It’s definitely not the title for the people who are just starting their journey through computer science. And for sure it shouldn’t be your last one. Without prior knowledge I don’t think I would’ve really grasped the part about data structures. Not to mention software design patterns which are described in such a rush that you can barely keep up.
The power of this book is in its author’s ability to explain things without unnecessary bullshit, which is not so common in the tech literature coming from the US. Where most of the books are overly descriptive and repetition is their second name. Here you are served with raw information, but arranged in a really beautiful way. And yeah, I mean drawings as well;) Which are maybe not state of the art, but really help to understand things better.
Database part is also fantastic. I love how first it builds my initial understanding and I’m all like “yeah, that’s how you should do it”. And then shatters it to pieces by describing real world examples where these concepts won’t work if applied strictly. It’s also refreshing as OO and functional programming chapters were a bit weak. Here author is back on track.
Then we have a chapter about TDD. Which is fun, but still hasn’t convinced me. However I agree with the author that I probably don’t see benefits of TDD simply because I’m a sole developer where I work. It’s probably more useful and efficient in pair programming. But then he persuaded me to BDD. Which seems to be really promising, I’m yet to do the real project with it, but I’m definitely going to try it. And I must admit that I was really sceptical toward BDD the first time I’ve read about it.
I’ve just took a glimpse at Unix part as I’m quite familiar with the subject already, but still managed to learn a new thing or two from it. What can I say about the book other than Wow! Last time I was feeling so good after reading a technical book was after finishing The Practice of Programming. I don’t know if Imposter would become as legendary, but I definitely wish it to the author. Really great job!
The way the author describes things is so incredible that I’m considering buying A Curious Moon. Even though I have no interest in PostgreSQL;)