Folks, I got accepted into a master's degree in statistics. It was harsh progress since I was out of school for a while, and in my country, the master's programs tend to be tough to prepare students for Ph.D.s in other countries.<p>Now, during my entrance exam studies, I saw in the Casella and Berger book a recommendation to learn Mathematica (or something equivalent).<p>I already program quite well (Python, R, Go, Lisp some C) so no challenge on that side.<p>I'm somewhat insecure with my algebraic manipulations (takes me a few tries to find the correct way to solve a few problems).<p>So, I'm wondering if those types of symbolic manipulation software are something I should take some time to learn. I don't know anyone that uses them so I don't have anyone to ask.<p>If it makes sense, do you guys know of a nice introduction resource I could use?
As a student, I say just try everything you can and decide for yourself. Mathematica is basically a huge collection of already-implemented scientific algorithms. So, no more hunting for Python packages that may or may not work. The main downside is most people outside academia avoid proprietary languages -- and it's expensive for commercial use.<p>I'd say <i>out of the box</i> Mathematica has ... nicer visualizations, more available functions, better symbolic math, etc. It might be possible to get some similar functionality in Python, but it would be a hassle. On the other hand, Python will have the bleeding-edge latest implementations since more people code in it.<p>That said, Mathematica does keep up to date. For example, the latest version auto-imports neural net/LLM weights, visualizes their structure, and lets you capture values from anywhere in the circuit. IMO it's great for learning how they work. And it has some neat ChatGPT integrations, auto-runs code, etc.<p>- This is my favorite intro Mathematica book (for programmers/academic-minded people): <a href="https://www.amazon.com/Mathematica%C2%AE-Problem-Centered-Approach-Undergraduate-Mathematics/dp/3319275844" rel="nofollow">https://www.amazon.com/Mathematica%C2%AE-Problem-Centered-Ap...</a>.<p>- There are also good free tutorials like their Fast Intro for Programmers: <a href="https://www.wolfram.com/language/fast-introduction-for-programmers/en/" rel="nofollow">https://www.wolfram.com/language/fast-introduction-for-progr...</a>
If you already program quite well, then I expect that you will find this software quite easy to learn. Sage, in particular, is built on top of Python.<p>That doesn't mean the math you implement in this software will be easy! But I expect that the programming itself won't prove to be much of an obstacle.<p>I definitely recommend you learn one or more of these languages -- but not necessarily to the scale where you're writing large and complicated programs. I use PARI/GP, a software package similar to Sage which is well suited for number theory in particular -- and my particular use case is a 40-to-150 line program that carries out some particular computation I'm interested in. Usually it will just be simple functions, array manipulations, for loops, computations, library calls -- programming at the level you'd master by the end of an intro CS course.
I suggest staying away from proprietary systems like Mathematica or Maple.<p>What to use depends on what kinds of problems you need to solve. SymPy is really good for a lot of things, very simple to use, and just a Python library. Sage is more powerful in some areas (which may be irrelevant for your needs), but a much bigger beast. There are several old, powerful, clunky CASs like Maxima, Axiom, FriCAS, that you probably don't need.<p>I suggest starting with SymPy. Working on getting better at doing things by hand will be useful even if you mostly use a CAS in practice, since knowing how to do it by hand will mean you know what to tell the CAS to do.
Yes, I have a PhD in a mathy STEM field despite also not being that good at algebraic manipulation. Mathematica is much better at that than I am, I used a lot for my course work and research. Recommend you get a free student copy and just try it out, I don’t know any good resources I just dove in.