I was looking at the Mathematica website today and just decided to buy the software. I've spent too much time juggling annoying symbolic expressions by hand that actually learning to do things with a computer should be a worthwhile investment. Similarly for making conjectures about formulas etc. a computer would seem like a useful tool.
My question: Where should I begin? I have a Ph.D. in math and would consider myself an expert level programmer in C, C++, x86 assembler, OCaml and Perl. I understand the functional programming paradigm well, so I don't need any introductions. To begin with, I would like to be able to work efficiently with linear algebra, number theory and random sampling. Oh, and plotting would be nice too and how to embed formulas written in LaTeX into those plots.
Any advice?
a,bare vectors,a*bis much faster thanMapThread[Times, {a,b}]), and use built-in functions as much as possible. Learn how to juggle and transform Mathematica expressions (this is done a lot, in complex ways). – Szabolcs May 12 '13 at 18:54f[x_]:=x^2are just transformation rules in reality, read a bit about the evaluation sequence. Understand and learn aboutFullForm,Head,ReplaceAll,Map,Apply,Table(andDo),Select,Cases,Function. AvoidForas much as you can while you're a beginner (there'sDoinstead). This is pretty dense, but hopefully it'll give you a very quick start (given your past experience with programming languages). Ask when you get stuck. – Szabolcs May 12 '13 at 19:00