# Where to begin? [duplicate]

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.

-

## marked as duplicate by Ajasja, Sjoerd C. de Vries, Michael E2, Yves Klett, R. M.♦May 12 '13 at 16:36

Thanks guys. That discussion about programming references seems like a great place to start after having watched the few intro videos. – evf May 12 '13 at 0:55
I'm sure you'll get used to it quickly, but to start with I would advocate a little hesitation before extrapolating your experience with other languages to Mathematica, because despite many superficial similarities, it really is quite different to almost anything else. A particularly good and reasonably paced reference for the programming side of Mathematica (rather than the mathematical or presentation aspects) is David Wagner's book, now freely available thanks to the hard work and persistence of several of our own community members. – Oleksandr R. May 12 '13 at 2:44
Browse mathematica stack exchange -- once you get to the point where you are answering questions, you'll find it's a great way to learn. – bill s May 12 '13 at 4:20
You probably have found the following pages in the built in documentation center, but to be sure: random sampling, number theory, linear algebra overview linear algebra guide. – Sjoerd C. de Vries May 12 '13 at 8:12
Btw there is a 30 day trial, so you could try that first before buying. – Sjoerd C. de Vries May 12 '13 at 8:15

Where to begin? I'd pick a problem that is easy, but not trivial, and work it out in Mathematica. After a couple of such exercises, you'll be ready to use it in your real work. Since you mention linear algebra, how about something that gets you using EigenSystem or SingularValueDecomposition? Or maybe you have something you'd like to plot? There are great commands like Plot and Plot3D, but for data you would use ListPlot or ListPlot3D. Or stretch out and try GraphPlot or GraphPlot3D, you can visualize most anything. And then there's Manipulate that let's you animate your plot to see how things change with particular parameter values. Surely you have some data somewhere you've always meant to visualize? And there are a zillion functions involving randomness, like RandomVariate for generating random points/vectors/matrices but also symbolic commands that know a surprising amount about different distributions. Hang out here for a while wrestle with some questions... in no time you'll be answering them, and that's the best way to learn. And don't worry, we won't hold that Ph.D. against you.