I consider myself a pretty good Mathematica programmer, but I'm always looking out for ways to either improve my way of doing things in Mathematica, or to see if there's something nifty that I haven't encountered yet. Where (books, websites, etc.) do I look for examples of good (best?) practices of Mathematica programming?
We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.
Here's a collection of resources that I started on Mathgroup (A collection of Mathematica learning resources ) and updated here at StackOverflow. As this site is dedicated to Mathematica it makes more sense to maintain it here. This represents a huge amount of information; of course it's not exhaustive so feel free to improve it! Also, don't hesitate to share it and suggest other interesting links! Remember, you can always search the online Documentation Center of Mathematica, that is identical to the built-in help of the latest software version.
Links to more advanced aspects of the program that you can start to appreciate once you understand the basics are provided in separate answers (below) as this post became too large.
Basic advices for people new to Mathematica
Avoid iterative programming using loops like
Transpose and dimensions
Get familiar with shorthand syntax (
Other related sites
Mathematica one liner competition
Wolfram technology conferences
Resources on other languages
Links to some packages
Packages for preparing publication-quality scientific figures
Useful non-free tools for development, deployment, distribution, linking, etc.
My original post above became too big so I'm splitting it in two posts. The tips and tricks section that I used to keep track of interesting new posts mostly on this site was big so here it is.
Note the tags at the end of each question on this site in order to read related questions.
I'm further dividing this post. See my third answer on Advanced evaluation, patterns and neat algorithms below.
Tips and tricks
Tips for writing faster code
Reap and Sow
Using links to other languages
Traversal of an expression
Accessing data in different ways
Rules and replacement (the backbone of Mathematica, more advanced)
Getting ideas from Lisp
Mathematica functions and environment
Finance (but not only)
I highly recommend examining the included packages under your Mathematica installation directory:
You can also find examples of good practice, framework guidelines, and insider methods in the presentations from various Mathematica conferences. A mere sampling:
I'm not sure this has already been posted but I found these tutorials really helpful as a beginner (http://www.ece.tamu.edu/~hpfister/13lectures.pdf). They are problem based (similar to the Euler Problems) and the author takes you through the solutions in a step wise fashion. Hope it helps.
In my opinion, rules and pattern matching are central to mastering Mathematica. I strongly recommend Demystifying Rules by Nancy Blachman published in The Mathematica Journal, Volume 8, Issue 4, for a solid grounding in this area. It is available on-line at The Mathematica Journal
Not strictly a Mathematica blog but Rip’s Applied Mathematics Blog is a very nice resource for advanced Mathematica problem solving. Rip makes regular weekly posts on whatever interests him that week and they usually include some neat implementation in Mathematica.
And another very good reference Mathematica blog by Kris Carlson with interesting methods and examples:
Nobody's mentioned the packages that come with Mathematica. There's a heap of great coding examples in there, especially the later packages.
The Mathematica GuideBook by Michael Trott always gives me lots of inspirations. Beside of it (and other places been mentioned above), I like exploring the SystemFiles folder. Some interesting tricks (especially about interface and FrontEnd) are hiding there.
The 'Mathematica GuideBook' series by Michael Trott has tons of good examples that go much further than typical 'toy-examples'. I found it a very valuable and thorough ressource for learning the ins and outs of the Mathematica language.
For neat tips and tricks, there is a daily tip posted to the MathematicaTip twitter page.
Besides the documentation, which I find very helpful, I also like the following resources:
As noted above, however, I normally use the documentation and look through examples of uses, as that's my best way of learning.
protected by rm -rf♦ Dec 6 '12 at 4:56
Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.
Would you like to answer one of these unanswered questions instead?