O'Reilly logo
  • joseph isaac thinks this is interesting:

The trick to getting the most bang for your design buck is to acquire an understanding of the theories of design and to apply these theories appropriately, at the right time, and in the right amounts. Design relies on your ability to translate theory into practice.

What is the difference between theory and practice?

In theory, there is none. If theory were practice you could learn the rules of OOD, apply them consistently, and create perfect code from this day forward; your work here would be done.

However, no matter how deeply theory believes this to be true, practice knows better. Unlike theory, practice gets its hands dirty. It is prac...

From

Cover of Practical Object-Oriented Design in Ruby: An Agile Primer

Note

Practice makes perfect - Always write code when learning.