

Similarly, although you still need experience, you can shorten the amount of time you need to be an expert in your field by listening to people who are already expert. By knowing exactly what is possible and what is not, you may be able to save a huge amount of time and energy for your team. I think what makes me able to see those flaws is being intimate with known trade-offs and impossibilities that I have learned by reading in my area as much as I can. I have been told by my colleagues that I have good eyes for design flaws.

Sometimes engineers go after problems that have been proved to be impossible decades ago.

Why ignoring them and trying to come up with solutions by ourselves when the solutions are freely available? We don't want to go after impossible things either. Every year, some of very smart people publish the results of their hard work through conferences and journals. Also, we don't want to reinvent the wheel. Personally, nothing gives me more pleasure than being exposed to new ideas and organizing my knowledge around a subject. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.Having said that, I think it is still a good idea to constantly read technical books/papers for several reasons. Software keeps changing, but the fundamental principles remain the same. In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. What are the right choices for your application? How do you make sense of all these buzzwords? In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. Data is at the center of many challenges in system design today.
