One way or the other, most readers will share our goal: to learn just what they need in Mathematica in the shortest possible time. Often the newcomer debates the trade-off of beginning a new project in a familiar programming language versus facing the learning curve in a new language that may be superior for the work in the long run. A more intimidating trade-off is presented when a substantial amount of time has already been invested in writing a program in a language and one considers re-writing it in the new language.
I sympathize deeply with these concerns. But I would suggest that moving toward a higher-level programming language is a solid choice--like investing money rather than spending it. Because after a period of investment in learning the language, you will experience not only the joy and power of getting more done in less time, but also of having more control and conceiving your programs at a higher level. That value is inestimable.
Second, you might consider what I once heard a very experienced programmer say in an Object-Oriented Programming course: "Program for a month or two, and then re-consider the organization of your program and throw your rough draft away. You'll more than make up the time with a superior architecture and rather than struggling with one sand trap after another, glide through the fairways with the benefit of 20-20 hindsight." That remark applies to moving from a lower-level language to a higher-level one.
This book focuses on programming in Mathematica, but Mathematica is much, much more than a powerful programming language--it is a scientific computing environment. I predict it will grow in useful functionality quicker than any of us can keep up with it.