To beauty! - Thomas Leroy
I can't agree more. Beauty, it is probably the best word to describe what happens when we get touched by a piece of mathematics, or even a line of Mathematica code.
I found a free, Creative Commons licensed, book about Mathematica programming. I must emphasize that it is a book about programming the core Mathematica language. It is possible to solve and communicate about mathematical problems without actually programming Mathematica but there will come a time when your problems require ( some ) programming. Although Mathematica ships with extensive on-line documentation several ( excellent ) books have been written about the subject most of which I have reviewed in this blog. Among them, and not reviewed yet, is Mathematica programming: an advanced introduction.
An ideal reader for it would be a person who has some Mathematica experience as a user, needs to write programs more substantial than a few one-liners, and wants to understand the logic of the language and ways to program idiomatically, minimize programming effort and maximize program's efficiency. - Leonid Shifrin
I don't know why people write 'free' books. In general I am not in favor of free books simply because the author spent ( a lot of ) time creating the book and if it is of value to a reader some form of exchange needs to take place. Free does not mean 'of less quality' although it has to be said that an author of a free book is not helped by an editor. I can only say that I like Leonid Shifrin's Mathematica book and that I suggest you have a look at it. It can be read online, or downloaded as a PDF at his site http://www.mathprogramming-intro.org/