It will not, in itself, make you a better programmer but it will give you a better understanding of the tools of your trade.
There was recently a thread on
comp.lang.c++.moderatedconcerned with choosing a programming language or languages suitable for CS courses at college/university level. One important feature is trying to tie down what such courses should be doing. Teaching programming as a tool for some other course (engineering, mathematics etc.) is a different issue. In those cases the language should be chosen because it is a good tool for the main subject. However CS courses should address computing and programming as major issues. One element that I would consider important is an understanding of the fundamentals of computer languages. This should be taught is such a way that the successful student understands that different languages have different objectives and so the concept of a single best language is nonsense.
The main objective of the authors of this book is to present the fundamentals of computer languages in an accessible way. They choose to work by constructing interpreters (in Scheme) for a number of small languages that can be used to illustrate specific features such as types, parameter passing techniques etc.
I found the book well written, and comfortable to read but lacking access to Scheme and the time taken to get to grips with it, I am unable to comment on the code, or practical examples.
This is not a book for the novice or, in my opinion, the first year student. However, I would hope (probably in vain) that all those successfully completing a degree course in Computer Science, Software Engineering etc. would have studied the subject matter it covers. This book seems to me to be a good text for providing such coverage. It has the added advantage that the diligent student (formal or otherwise) can cover the ground even if their course fails (or failed) to do so.
If you are the kind of professional who wants to understand more than the syntax of a single language then this book is worth the price and the time taken to study it. It will not, in itself, make you a better programmer but it will give you a better understanding of the tools of your trade.
Put simply, this is a book aimed at helping you understand the semantics of code written in a variety of different languages. Achieving such understanding will not be easy, but is surely worth while.