97 Things Every Java Programmer Should Know book review

I don't remember the exact thing that made me start reading this book, but most probably this was due to its marketing campaign or I saw a paid blog post sponsored by the publisher. Why do I think so? Mostly because how heavy this book's authors wanted it to be hip and trendy. It badly wants to be a better version of Effective Java, however completely missing the main point of Josh Bloch's book.

I won't say that it wasn't worth it, as to be honest I actually learned a few new tricks of the trade. But I can't think of all that time spent on reading obvious thrusts that should be a no-brainer to anyone who still writes code in Java in 2022. Catched exceptions are bad? C'mon, every IDE will scream and shout at you if you're creating a new class with catched exceptions. Not mentioning every Java for Dummies book. When Josh Bloch wrote his book the internet was not as widespread as it's today and sources of good knowledge were scarce back then. However, that's not the case anymore. The writing is on the wall.

My score is 2/5. Better spend that money to pay for your home internet.

Author's profile picture Michael Koltsov on books

Kubernetes up & running book review

This is a review for the second edition of K8S U&R, even though early access for the third edition is already available on some of the platforms.

Reading this book feels like walking in a park. Almost no code snippets to follow, no excruciating technical details. Read yamls and a very few imperative CLI commands. If all books for system administrators are like that, I'm curious, why the OPS guys are paid on the same level with developers.

Speaking of the book itself, I can't say that I've learned much from it. It definitely covers all the basics and gives a few tips.

Definitely better than the manual, better skip it if you already know the basics.

My score is 3/5

Author's profile picture Michael Koltsov on books

Crucial conversations book review

I wish I read this book a long before I actually did it.

I don't know any person who shouldn't at least glance through this book. We all had such conversation when you have to confront your opponent and in the end you both end up angry at each other without any real progress done as you both feel right and no one wants to listen other person's arguments and no one want to back up.

This book promotes the power of dialogue and its main idea is that in any circumstances you can transform a heated discussion to a pleasant conversation that ends up as a win-win situation. How does it want to do that? That's actually the most interesting part. As it's based on lots of analysis it applies scientific method to human interactions. Honestly, that's the first time when I read a non-technical book that's written in a way that only a pure techie would do. Lots of data, lots of examples and analysis, tables, diagrams you name it and it has it.

One of the best non-technical books I've read so far. Added +5 to my conversation skills.

My score is 5/5

Author's profile picture Michael Koltsov on books

Refactoring book review

This year was supposed to be full of reading and learning new things, but the reality has shown that it had different plans for my time. That's why it took me much longer that usual to finish this book and therefore I may forget some of the things that I found interesting in it.

I must admit that as a writer Martin Fowler has his unique style that you start to grasp after finishing just a few pages of any of his books. He's one of the father figures of the "make code for humans not for the machines" movement that some may also call "clean code & architecture". It's always interesting when in his books his starts to mention his buddies who'd contributed a lot to make developer's life easier. In this book for example I found out that "smelly code" saying was invented because Kent Beck had to fight two things simultaneously: someone's bad code as well as smelly diapers. A quick glance to other people's lives is something that you can't often find in technical books.

Speaking of the book itself I don't think that there was much to be surprised about since the first edition. More controversial refactoring methods have been added, it always frightens me when one example contradicts with the one that you read a few pages ago. But that's the art of writing elegant code that can pass code reviews. You never know what type of refactoring will be useful until you try all of them. And some of them can be opposite to one another, but that what makes good developers artists not just craftsmen.

I enjoyed the choice of switching to Javascript to illustrate the refactorings. It made the book much more concise and at the same time if JS is not your primary language it makes you think how this or that example would work in your language. That's the right way to go in my opinion.

My score is 4/5

Author's profile picture Michael Koltsov on books

Working effectively with legacy code book review

The world of software moves with such a pace that this book written in 2004 looks like a relict from the distant past. However, it's still capable enough to teach the old dog new tricks.

These days most of the software is written with a great help from IDEs that have become much more than just text editors. Every IDE gives you hints on how to optimize your code, most have static analysis tools built-in and most code can be verified even before it gets compiled/interpreted.

Although, most IDE have capabilities to help you refactor your code, they usually run away in tears when they see hundreds of lines of smelly code in one class not covered by any tests.

And that's the situation where this book actually shines. It still can teach you a few trick how to keep yourself sane when you're thrown to the snake pit of filthy legacy code. And no matter how dated this book is, I'd still recommend it to anyone who finds himself in a situation where he has do maintain what he doesn't even want to touch.

My score is 3+/5 Every developer should read this book, but it desperately needs an update

Author's profile picture Michael Koltsov on books

Building a career in software book review

Frankly, I'd never stumble upon this book if it wasn't recommended to me by my boss and he's learned about it as its author is his former colleague.

I really like the simplicity of this book as it aims to teach new engineers the very basics of what it takes to become successful. Though I need to argue that some of the approaches that the author talks about are controversial. Nevertheless, as the author is an accomplished individual I don't mind that he forces the reader to look at the software world from his perspective.

I wish I had this book when I was a fresh grad, it'd have made my career advance much faster and with much less bumps. Although I don't mind learning from own experience. However, I won't mind to be taught on someone else's mistakes.

This was supposed to be a soft-skills book, but surprisingly I learned a few technical tricks from it as well.

My score is 5/5 Every developer should read this book.

Author's profile picture Michael Koltsov on books

Designing data-intensive applications book review

This book is truly a masterpiece, though with its own flaws

It aims to cover every data-related principle and technology and I'm not joking. It literally starts with its view on how to write the code then covers every bit and piece of how to build your persistance layer and then goes on with what to do with that data.

As you can imagine this book is huge and as it goes into great detail sometimes I started to doubt my intelligence as some of the concepts were too complicated for me to digest after reading about a completely different topic a chapter ago

I struggled to finish this book, not because of that all of its concepts were completely new to me or it was written poorly. There's too much of information in this book. I can see it being used as a dictionary or a wiki for CS concepts.

Personally, I'd split this one book into multiple smaller ones. The topics are covered really great, but the number of concepts is mind-boggling. Readers will definitely appreciate that and the overall experience will not look like a torture.

My score is 4/5 Every developer should read this book.

Author's profile picture Michael Koltsov on books

Books I've read during my last vacations

As I had plenty of time during my last vacations and thanks to the COVID-19 pandemia I've spend most of it on reading various non-technical books that were relatively easy to read and I could finish each of them easily in one or two days.

Simple Habits for Complex Times

Honestly, I have no idea what this book is about. After completing it I barely remember anything.

Thinking fast and slow

Frankly, I really liked how easy was to read this book. Did I learn anything valuable from it? Not really.

The essential art of war

This was a re-read of the book I first opened more than a decade ago. Even though this particular issue had annotations with contemporary examples I could find it any helpful. The Chinese warlord from BC times didn't touch my feelings this time, even though I still have my first paper version which means that it was more touchy for me in the past.

The Stress Code: From Surviving to Thriving

Nothing new, but a great overall guide if you struggle with overcoming stress at your work or life.

Too Smart

Great read if you want to become paranoid and understand that we're living in an antiutopia now. Technocraties everywhere, your data is sold and bought at every corner. Shouldn't be read by anyone who's relatively tech savvy, you'll find it funny as hell. Good for protesters and rioters.

The intelligent investor

Neverdying classics, which once again proves and the core principals of investing have not changed for centuries.

The Courage Map

In overall, a grat book! Very motivational and with practical examples.

Mind Hacking

This book is an example of what happens when a technical person tries to write a non-technical book. During the first half of it I was forcing myself to continue reading and only in the middle of it I could find any value. Lots of cool technical buzzwords, not recommended to anyone really technical.

My Morning Routine

The opposite of what I expected, just a compilation of morning routines of various people whom I never heard of before reading this book.

Eat That Frog

Again, this was a re-read. The message of this book is stil valid after all these years.

Cracking the leadership code

Good book. I really liked the part on empathy and how important it is to listen to other people. Very practical.

Author's profile picture Michael Koltsov on books

Distributed Systems Observability book review

The best illustration for this book would be one of the Captain Obvious memes. Thanks to the book I was able to find a few tools I've never heard before, but that's it. Nothing new, nothing interesting in particular. It'd be better if this book was simply compressed into a series of blog posts. In reality, the author retells most of the books core concepts in a Medium post.

My score 1/5

Author's profile picture Michael Koltsov on books

Java Performance 2nd edition book review

This was one of the hardest book I've read and bear in mind that I've read the first edition many years ago. It took me a few months to read it cover to cover, mostly because I wanted to play with concepts presented and explained in the book. Sorry for whining, but I really enjoyed the proccess of reading, hence this sacrifice of reading one chapter and even less every week was absolutley worth it.

At first I expected it to simply copy concepts from the previous book and add features of more recent JVMs as Joshua Bloch does with "Effective Java". I was utterly wrong.

This book is a complete redesign having not much in common with the first edition. Most basics like explaining how the classloaders work in Java (that are mostly unneccessary for experienced devs but may be needed for the newcomers) are gone now. The book is really condensed and purified now. I was often finding things I had no idea before while reading it. And I'm doing Java for more than a decade now, though I had breaks to work on other languages to learn to see things from another's perspective. It allows me to be multifaceted to a degree where I can choose whether to use Scala, Ruby, Golang, JS or Java to implement a certain feature. Offtopic aside this helps me a lot to understand how the JVM works and I can compare its implementation of certain features with other languages and compilers.

This book is a real pleasure to read though it requires a lot of thoughtwork from the reader if you want to get bang for your buck.

I'd put it on one shelf with "Effective Java", "Java concurrency in Practice". This book is a must have for anyone who wants to advance in his career connected to the JVM.

My score 5/5

Author's profile picture Michael Koltsov on books

LXQT impressions

Ok, I have to confess. I'm a fan of GTK+ X-s for more than a decade. It started with XUbuntu, then I've switched from XFCE to LXDE and that was a love made in heaven.

As recently LXDE has migrated from GTK to QT it changed its name to LXQT and if you want to have a modern build of it you need to get used to its new face and APIs.

And let me tell you how painful that it is. Well, not as painful as if you switch from something as overbloated as KDE or Gnome. But nevertheless, everything looks and feels different after the switch.

The results of my migration to Debian-based SparkyLinux+LXQT are astonishing, XWindows + OS consume less than 256 MB of RAM.

Bravo! That's definitely a win.

Author's profile picture Michael Koltsov on life

Building microservices book review

I had this book lying on my shelf for multiple years and couldn't read it for such a long time as reading it didn't look like a fun activity. Although it can be called procrastination, I was right postponing opening this book for years.

Although it's been issued just 5 years ago it's completely outdated now. Not so much if you weren't following the latest trends in tech.

This book looks like a shy attempt to cover what was new and groundbreaking back then but neither did the author knew what he was trying to teach the audience nor did he have a practical experience in most of the concepts described.

After all these years this book looks like a repetition of what was covered in "Release it" and "DevOps Handbook". That's the price you have to pay when you focus on what was new while the author was writing the book and became obsolete now. I would love to have this book if it was much smaller in size and focused more on the concepts and patterns rather than on technologies and what was on the bleeding edge back then and couldn't stand the test of time

My score 2/5

Author's profile picture Michael Koltsov on books

The manager's path book review

I don't have much to say about this book as it's mostly a compilation of ideas I've either heard or used during my career.

This book can be definitely replaced with a few blog posts. The examples that it gives are rather nonillustrative, I've never heard about most of the companies that the author uses as role models.

Regardless of what I just said the book was nice and easy to read and I really appreciate author's efforts to write it.

I can recommend it as a book you can start and finish during one weekend.

My score 3/5

Author's profile picture Michael Koltsov on books

Modern Java book review

Rarely, I want to purchase a book I've read as a hard copy. I wanted to buy this book badly.

Only after checking the cost of this book in Poland I realized that at a price of yearly subscription to Safari Books buying a huge pile of dead wood is not wise enough for me.

I had a huge gap in my Java experience due to the fact that I've made a switch to Scala and then to other languages most of them had nothing to do with JVM. Javascript, Ruby, Python, GO... you name it, I was paid to write in it mostly thanks to my employers' kindness and not because of any particularly need. The main reason why I've switched from Java to Scala was that the latter felt much sexier with lots of syntactic sugar and nice FP abstractions that felt much closer than the monstrosity I often saw in the java projects I wad to work on. Did I also mention that one of the first programming languages I've learned was LISP? Functional programming was a big part of my education.

And then after all these years I started to see a gradual change in the way way how the Java code is written that felt similar to Scala but without the complexity that it had. Especially, after loosing all my illusions with GO I decided to give new Java a try. I played a bit with streams and lambdas, but neither could I understand how their worked nor use them efficiently.

This book allowed me to fill this gap. If you're coming from Java 6 & 7 this book is a must for you. Lots of example, datailed explanations with multiple peeks under the covers of JVM.

The only minor issue is that after changing the release policy Java went quite far from the changes that are described in this book. Too bad this book isn't updated after every new Java version goes GA

My score 5/5

Author's profile picture Michael Koltsov on books

Track of the year

We're almost at the first quarter of the XXI century. Surprisingly, there's nothing more exciting to hear than the acid sounds from the 80's brought to life by Mujuice in 2019.

Unfortunately, this year hasn't brought any new fresh music to be delighted with, hence I was mostly busy with relistening great tracks from the early 00's. Kompakt, Boxer, Cocoon, Banger, Gigolo you name it.

This year I started to write my own music and hopefully I'm going to have something to present next year

Stay tuned

Author's profile picture Michael Koltsov on music