Learn Mathematica (Wolfram) Language in one day

I would recommend these two, in the order listed:

  1. Wolfram Language: Fast introduction for programmers

Besides the generic edition, there are currently two special editions of this tutorial available for programmers with previous experience in Java or Python. It appears that they are working on more versions for programmers with backgrounds in various languages, such as C, R, Haskell, etc.

  1. Mathematica Cookbook

An hour is a little bit too short for the Mathematica Cookbook, but a day should be sufficient to read the introductory information about the important aspects of Mathematica, as well as trying out a few recipes to get an idea about what Mathematica can do.


The Official Elementary Introduction is also very good to learn some basic stuff.


For learning what I consider "just the wolfram/mathematica language" I would proceed as follows and start at the very low-level basics:

  • Learn what is meant by a symbolic expression:

    SymbolicExpression ::= Symbol | SymbolicExpression[SymbolicExpression, SymbolicExpression, ...] 
    
  • Ignore issues like $Context, consider a Symbol to be an arbitrary UUID. Ignore all the syntax shortcuts for now. Ignore all built-in atomic types besides nested expressions of symbols. The built-in atomic types can be considered optimizations (+syntax) - Integers could be implemented as symbolic expressions: integer[one,zero,one,zero,zero] and appropriate definitions for Plus.

  • Learn everything about the interpreter, i.e. the expression-rewriting system, including the basic magic cookies (Evaluate, Sequence, ..., HoldAll, SetAttributes, SetDelayed, DownValues, SubValues, OwnValues) and evaluation order. As an exercise, implement the Mathematica interpreter within Mathematica. Make it operate on held expressions.

Everything up to this point could be executed by hand on a piece of paper and you could make a mathematical theory of this symbolic rewriting system.

Now you can proceed to strip away from this idealization to get a usable real-world programming system.

  • Realize that you are given an imperfect implementation of this abstract system in an environment, on an operating system, with files and a timer and input-output devices and whatnot. On a computer with finite memory and an internet connection. This means you can do more than just implementing computable functions in a rewriting system. But it also means that computing things takes time and that things like $RecursionLimit are necessary.

  • At this point, you can proceed to learn about the "standard library" of built-in functions, knowing that you could implement all of this by yourself (except for the fancy syntax and graphical presentation within the notebook) within the rewriting system and by using an external C library. The standard library is vast and ever growing, you will never know or use it all. I would make a distinction between pure functions of the symbolic rewriting system (such as First) and functions that go beyond what is representable in the mathematical rewriting system implemented by Mathematica (e.g. Import). Realize that Mathematica functions can be implemented in C which can talk to the OS which can let you do anything your computer can.

  • Learn about the FrontEnd, what it can render in GraphicsBox and Graphics3DBox, what a Cell is etc. Press Shift+Ctrl+E. Realize that it is a declarative 2D/3D vector-graphics rendering framework and language, much like html/svg/x3dom in a web browser, but unlike opengl, directx, webgl and canvas. Realize that the front-end live-parses your code and allows you to navigate the AST (== expression tree) using Ctrl+.

  • Learn about Dynamic.

  • Consider learning about parallel kernels.

Note that this is not exactly how "the Wolfram Language" is advertised: It is usually considered inseparable from the "standard library" and its UI.

However, this way of learning about things has helped me understand what Mathematica/the Wolfram Language is and does.

keywords, key phrases: basic or fundamental principles of Mathematica or the Wolfram Language. mathematica just the language. mathematica from scratch. mathematica for dummies.