A while back I bought Martin Fowler's book, Patterns of Enterprise Application Architecture. I had grand learning plans and was prepared to take it all in.
I read the introduction and loved it - great information that made sense. I then read the narratives. They made some sense but the information was complicated and full of references to unknown patterns. The love was fading. Then I came to the actual patterns. Huh? It was like a foreign language. I was so confused and disheartened that I sent the book back.
As time passed I had a gnawing suspicion that there was some important information in that book that I really should know (or at least know about). And then a funny thing happened.
I was playing around with my little web app that I use for learning and I was rolling my own object/relational layer. I had a few design theories but every time I started to make progress some detail came up that made me rethink my approach. I realized that I could use some outside help. And then I remembered the book. I borrowed a copy and started reading.
Active Record. Hmmmm. Data Mapper. Interesting. Unit of Work. Ok. Identity Field. My head was nodding.
As I was pondering the patterns (the many patterns) I realized that they made sense. I had a problem context and in this context some of the patterns jumped out as possible solutions.
So, in addition to learning some new patterns I also learned an important lesson: Books can't teach but they certainly make learning easier.