Thanks for joining the Manning Early Access Program of the "Object Design Style Guide"! By doing so, you inspire me and the team at Manning to bring the journey of book writing to completion and publish the best possible version of this book.
After many years of programming I’ve come to the conclusion that object-oriented programming is a very difficult thing to do. Maybe it doesn’t take too much effort to learn the syntax of the language (classes, methods, properties, etc.), but coming up with a proper design for your objects will be much harder. It involves coming up with good names for everything, deciding how much internal state an object should expose, making an object mutable or immutable, testing an object’s behavior instead of its implementation, and so on. Object design is hard, and it takes years to become good at it. And even then, you’ll learn something new about it every day.