
The product of a unique collaboration among four leading scientists in academic research and industry, Numerical Recipes is a complete text and reference book on scientific computing. In a self-contained manner it proceeds from mathematical and theoretical considerations to actual practical computer routines. With over 100 new routines bringing the total to well over 300, plus upgraded versions of the original routines, the new edition remains the most practical, comprehensive handbook of scientific computing available today.
https://www.cec.uchile.cl/cinetica/pcordero/MC_libros/Numeri...
I will just add that I can recognize good technical writing in 3 stages of sophistication:
Stage 1) Someone who has barely mastered the topic and is at the most basic level just telling you the steps to reproduce the result or operate the items or workflow. Once you learn from the material presented (unless extremely complex or required to keep as reference), you rarely go back and study and appreciate this kind of writing repeatedly.
Stage 2) Someone who has done the analysis and exercise enough that the writing evolves into not just instructions or rote description, but narration through the reasons why they did it this way, the pitfalls to watch out for, what not to do. Starts you thinking about what to do next.
Stage 3) Someone whose telling of the technical detail is so fluid and practiced that the basics are unquestioned -- the writing now includes well-informed opinions and jokes about past attempts at the outcome, why they failed and their historical context in technical terms. Gives advice on the difficulties that will be encountered and the limits of the method. The writing is so informative that you may return to read it again and again throughout your career.
One of my favorite texts that reaches Stage 3 is Numerical Recipes in C (which unfortunately I don't have much occasion to refer to nowadays), and the way that programming philosophy, advice, and technical instruction combines in that work is very impressive. Also, many of Griffiths' physics texts, who manages to write with both technical and conversational/narrative mastery.
If only more writers could be like this.
1. Design Patterns (GoF) - This book is all about design, someday I aim to really understand all the patterns.
2. High Performance Parallelism Pearls Volume 2 (Reinders/Jeffers) - There are couple of other books similar to this one. But, if you want to know how myriad HPC applications make use of parallel programming models such as MPI and OpenMP, this provides a good introduction.
3. The Annotated C++ Reference Manual April 1995 hardbound edition (Ellis/Stroustrup) -- What a fantastic little book, also got it for $4.95 at Powell's bookstore in Portland :) IMO this books provides a gentle introduction to C++, you can flip to any page and just start reading.
4. Numerical Recipes in C (Press, Teukolsky, et al.) - If I need to quickly prototype some scientific computation kernel, this is my go-to book.
5. Effective C++ 3rd edition (Meyers) - I like to approach this book from the back (i.e., indices), pick up a topic, and then read the contents one by one. Repeat.
6. Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers (Gottschling) - I like and dislike certain portions of the book. It definitely contains a lot of code explanations of C++ idioms, which helps a beginner like me.
boolean logic, boolean algebra
What does O(n) mean?
The compound interest formula
matrix/linear algebra, numerical analysis
The statistics behind A/B testing
numerical approximation of a derivative, integral, differential equation
Read "numerical recipes in C"
Deitel & Deitel (all of them?)
Kernighan & Ritchie - The C Programming Language
Numerical Recipes in C