I completely disagree with your summarization. The emphasis is on understanding both the problem domain and, more importantly, the codebase. Understanding the problem domain may come from reading books, but it may come from asking senior members of your team, too. Understanding the code base will not come from an appreciation of the theoretical, however. Modifying code whose interactions you don't have a solid understand of is a recipe for disaster, but occurs all too often.