I have read the book by Oliveira and Stewart.
I guess, this is what happens when a long-standing, respected software engineer writes a book about his own profession. Speaking frankly, the best trait of this book is the bibliography. The authors collected a truly magnificent list of books concerning numerical algorithms, programming, tricks and techniques. The main contribution of the book is rather the “glue” which connects together all these dispersed bits. It’s not that the books doesn’t contain information in its own right. But it seems more like an experience transfer book rather than a knowledge transfer book.
As a practicing scientific programmer, I can’t stop complaining about the fact that the floating point numbers still generate so much trouble for the developers to sort out. It’s a shame that a huge share of such a book is still dedicated to combating floating point problems. Still, the guys are right in doing so.
Other noteworthy parts of the book are dedicated to a comprehensive survey of different scientific software packages available, such as BLAS. Again, this information is probably findable on Google, but nevertheless, it’s great that there is a place to sum everything up.
Who would be the best target audience for the book? I would suggest every beginner scientific workers to read it. It’s not that difficult, end even solving the two small problem sets doesn’t seem much of a burden, and it is probably a good introduction into what may be actually required from a junior scientific contributor in a modern laboratory.
Even though experienced scientific developers probably already know the lion’s share of the book, some “design patterns” and lifehacks can be also useful for this audience.
To sum up: do I recommend reading the book? Rather yes than no, but probably not as thoroughly as various scientific workers are may be inclined to.