Ok. this one is slightly better than "The System Design Interview" by Lewis C. Lin, Shivam P. Patel, but still far from being good. As usual with thisOk. this one is slightly better than "The System Design Interview" by Lewis C. Lin, Shivam P. Patel, but still far from being good. As usual with this genre it consists of two parts: theoretical intro, practical examples. The problem with theoretical intro is that it is too shallow. If you know this stuff, you wouldn't learn anything new, if you don't know it this is a very bad book to read about it. The practical part is slightly better. First the examples are indeed pretty common design interview questions: design twitter, design google search, design url shortner. Been there, done that. The main problem with this part is that the solutions to the problems are very hand-wavy. If you just give the solution from a book during a real interview most likely you wouldn't pass. The authors come up with descent and common template on how to give an answer: 1) clarify requirements 2) define data model 3) make some estimates 4) create high level design 5) design components in detail. 6) main interfaces & protocols
And the failure of the book is that point 5 for most of Design Questions is very short and paradoxically lack details. And I would argue that this is the meat of any challenge that would be given on a real interview. This is where THE solution to a challenge lives. The interviewer can't be sure that you know how to solve it unless you've provided the mapping of a data model to a real database, unless you've described your main data structures, unless you've showed the main flows in your system.
Points 1-2-3 and even 4 are usually pretty generic. Yes, there will be different numbers and slightly different boxes-and-arrows for high level, but from challenge to challenge these parts it's pretty much the same. And that's what makes the second part of the book boring and repetitive. After you've read Design Question 1 and 2 there is no need to read the rest of them, you wouldn't learn anything new. ...more
The books was slightly underwhelming given how many people have recommended it to me.
The history bits about apple at its prime of creativity were supThe books was slightly underwhelming given how many people have recommended it to me.
The history bits about apple at its prime of creativity were super interesting. The war stories about safari and iphone keyboard are great. What i found disappointing is that meat of the problems were always described via analogies and metaphors. I guess it's widen the audience of the book, but for geeks this makes it boring and uninspiring, it felt dumbed-down. At the end I liked juxtaposition apple way vs google way, but the conclusions felt a little bit far fetched and have a bit of survivorship bias in them Between 3 and 4 stars. ...more
Nice intro to category theory. The first part is pretty laid back and can be bed time reading, the second part is noticeably more challenging and requNice intro to category theory. The first part is pretty laid back and can be bed time reading, the second part is noticeably more challenging and requires attention and googling for alternative explanations.
To be honest by the time I got to yoneda I was completely lost and the big reveal did not have knock off effect on me. Overall I think it's a good companion to Bartosz Milewski cause this one is all about math and functional programming hasn't been mentioned even once. This book helps to wrap your head around the fact that category theory is an abstraction that by itself has nothing to do with any applications (like FP)
Surprisingly good read. I would appreciate little bit less of gore porn in the middle of it, but I guess this was one of the first books in this genreSurprisingly good read. I would appreciate little bit less of gore porn in the middle of it, but I guess this was one of the first books in this genre and back then it wasn't a cliche....more
3.5 stars. The book is not cathedral of knowledge, but more of a sampling buffet. It's an easy and fun read that shows yoDisclaimer: based on v2022.48
3.5 stars. The book is not cathedral of knowledge, but more of a sampling buffet. It's an easy and fun read that shows you application of rust and is semi-jokingly focused around hacking. No, reading this book alone is not enough to become rustician or a hacker. But that's not the goal, the aim is to have fun and see how to use language in different domains. Just to start your appetite. Don't take it too seriously. This book is somewhat similar to "rust in action" in spirit. This can't be your first book on rust, but it's a good candidate to be the 2nd or the third. Overall it's a nice read and can be finished in one sitting, if you are not planning to do your own coding experiments. ...more
Between 4 and 5 stars. This books is pretty good at: * covering history behind ipods & iphone and that period of Apple * biography of building nest compBetween 4 and 5 stars. This books is pretty good at: * covering history behind ipods & iphone and that period of Apple * biography of building nest company * laying out key aspects of product design * mapping out how to build career in IT: starting from junior dev ending on being CEO or having chair at a board of directors.
I wish I read something like this when I was starting as a software developer. The books has a lot of common sense advice, inspiring ideas and in general fun to read/listen to. I'll be recommending this book to junior folks around me....more
On one hand I'm at awe of breadth and depth of this book. Out of all books about software performance, tIt's hard to give a fair rating for this one.
On one hand I'm at awe of breadth and depth of this book. Out of all books about software performance, this one goes deep. Really deep. "Here is the experiment of how to measure L1 associativity level" deep. (Most books on software performance don't even mention the fact that CPU caches have associativity sets)
But on the other hand, the writing style leaves a lot to be desired. Almost every time I've stumbled upon something I didn't already know i had to fallback to "rephrase this please" chatgpt prompt or just google for alternative explanations. The book assumes pretty high level of familiarity with the topics but also tries to dip into explanation. I wish it would just referenced learning materials instead of providing short and cryptic paragraphs that are not really helpful for newcomers.
The second half of the book is dedicated to custom tracing tool. KUTrace is super cool and the design walk-through is excellent. The demo of its powers for troubleshooting in the last chapters leaves you salivating. But from a pragmatic standpoint convincing people that there is a need to patch linux kernel is a royal pain in all body parts. For 99% of regular software shops this is a non-starter. Honestly, it's a bitter-sweet ending to an uneven book.
My conclusion: the book is excellent for skimming and learning about gaps in your knowledge, but probably not so great for covering those gaps...more
Between 3 & 4 stars The book is a bit uneven. I agree with may be 60% of it. And then some parts sounds very silly to me.
Example of good part: "InterfaBetween 3 & 4 stars The book is a bit uneven. I agree with may be 60% of it. And then some parts sounds very silly to me.
Example of good part: "Interfaces with a single implementation are not abstractions and don’t provide loose coupling any more than concrete classes that implement those interfaces. Genuine abstractions are discovered, not invented. "
Example of bad part: "Making bugs manifest themselves quickly is called the Fail Fast principle, and it’s a viable alternative to integration testing."
Overall I liked a lot theoretical part of the book: that explains properties of good tests, explains difference between mocks and stubbs, etc. I was disagreeing a lot with practical part, it felt either really dogmatic to me or just plain wrong. At the end i don't know if I would recommend this book for junior folk.
The good news the book is short, the "cost of reading it"/"benefit of reading it" is pretty good...more
Surprisingly interesting read! The way James Gleick connects the dots and creates cohesive narrative out of events stretched through multiple centurieSurprisingly interesting read! The way James Gleick connects the dots and creates cohesive narrative out of events stretched through multiple centuries is pretty amazing. Never in my mind I've seen a connection between Charles Babbage and Andrey Kolmogorov. I would say the central figure of the book is still Claude Shannon, but it's only 40-50% of the book. The books has pretty much everything: history of telegraph & telephones, information theory, complexity theory, pretty descent walk through work of Alan Turing, theory of quantum information, etc. And it's all nicely tied together. I've switched from dead-tree version to an audio in the middle of it and don't regret. The book is pretty thick for non-fiction of this kind, but it's very digestible in audio form (you'll miss maybe 4-5 formulas here and there, but it easy to look them up)...more