5 ms·
I'm a physicist and I've used mathematica sparingly off and on for several years, mostly manipulating symbolic formulas. I still do not understand what I'm doi
by saboot 7y ago
I'm a physicist and I've used mathematica sparingly off and on for several years, mostly manipulating symbolic formulas.
I still do not understand what I'm doing half the time. Mostly just googling and stackoverflow answers get me by. For example, I don't understand why I can't use subscripts as symbols?
Any recommendations on trying to 'get' mathematica?
- vtail 7y agoMy advice is to find a good book that teaches the fundamentals. I'm currently reading "Power Programming with Mathematica: The Kernel" by David B. Wagner. It was published in 1996 and covers then-new version 3, but boy is it good (and still very relevant!). A scanned PDF was made available for free with the permission of the publisher: https://mathematica.stackexchange.com/questions/16485/are-you-interested-in-purchasing-david-wagners-power-programming-with-mathemat https://mathematica.stackexchange.com/questions/16485/are-yo...
- dr_zoidberg 7y agoThat's whay working on CS feels like all the time! /sarcasm Jokes aside, probably you're experiencing the part in learning a programming language where you can think what yu want to do but don't understand it enough to express it correctly. Usually the solution to this is more practice in said language, which is when pet projects come in handy. Maybe you can try implementing something that already exists from scratch? That way you can always look for help online implementing it, if you need it, but you get to excercise the language a bit. This way it takes effort and time, for sure, but it'll help you get a good grip.
- b215826 7y agoAs someone who started using Mathematica only very recently, I found The Wolfram Language: Fast Introduction for Programmers [1] very helpful. It's the quickest way to get started with the Wolfram language if you've seen a bit of functional programming before, e.g., Python's map(F, x) is equivalent to Wolfram's Map[F, x], reduce(F, x) equivalent to Fold[F, x], etc. There's also An Elementary Introduction to the Wolfram Language by Stephen Wolfram [2,3] which is available freely as Mathematica Notebooks, although I'm yet to read it fully. [1]: https://www.wolfram.com/language/fast-introduction-for-programmers/en/ https://www.wolfram.com/language/fast-introduction-for-progr... [2]: https://www.wolfram.com/language/elementary-introduction/2nd-ed/ https://www.wolfram.com/language/elementary-introduction/2nd... [3]: https://www.wolfram.com/language/elementary-introduction/nbs/EIWL2-Notebook-Archive.zip https://www.wolfram.com/language/elementary-introduction/nbs...
- brandonbloom 7y agoI've found the "Evaluation of Expressions" doc page to be super useful: https://reference.wolfram.com/language/tutorial/EvaluationOfExpressions.html https://reference.wolfram.com/language/tutorial/EvaluationOf... Read through it once to get the gist, then go back and read it again. The second time through, _play_ with each example. Try them out, see how they behave, attempt to apply other things you've learned to each. In no time at all, you'll have the basics down and then will be able to make heads or tails of the other doc pages much more quickly.
- bloaf 7y agoI think the reason Mathematica hasn't "caught on" is that it doesn't look like fortran/matlab type programming that scientists/engineers are more traditionally exposed to. I find that if I'm trying to write an explicit loop (as opposed to a map or vector operation) in Mathematica I am most likely doing something wrong. You'll drive yourself crazy trying to understand subscripts as a beginner, I would advise against getting too fancy with them unless you are fairly advanced. They work reasonably transparently in most cases, but there are a handful of situations where they are really frustrating (e.g. in With/Module/Block constructs). You can actually use them as symbols if you import the Symbolize package and Symbolize them, but then you lose the ability to "do math" to the subscript (e.g. you won't be able to use Table[] won't generate the symbolized variables.)