The best way to learn the Wolfram Language is to use it. Wolfram Programming Lab is specifically set up for easy access in learning the language, though you can also use other interactive Wolfram Language environments.

In any of these environments, you enter input in the Wolfram Language, and the system immediately computes output from it. You can do this on desktop, web or mobile. On desktop and web, you typically type (Key1[shift, return]) to say you’ve finished your input; on mobile you typically press a  button. Your sequence of inputs and outputs—together with any text you may add—all exists in a Wolfram Notebook.

Within the Wolfram Notebook you’ll see a variety of aids to help you enter Wolfram Language input.

Wolfram Notebooks, with their interactive sequences of inputs and outputs, are an ideal way to learn, explore and write programs in the Wolfram Language. But the Wolfram Language can also operate without its own interactive interface, in a whole variety of software-engineering configurations. Inside, though, the language is still doing the same computations as in the interactive configuration we discuss in this book.

Do I need to know programming to read this book?

Absolutely not. This book is a self-contained introduction to programming.

What age group is this book suitable for?

Experience suggests that anything above about age 11 is appropriate. I’ve tried to choose examples that will be relevant and engaging to all age groups, very much including adults.

How much math do I need to know to read this book?

Nothing beyond basic arithmetic. This is a book about programming in the Wolfram Language, not about math.

Do I need to use a computer while reading this book?

You could read it without one, but it will be much better to try things out interactively with a Wolfram Language session, for example in Wolfram Programming Lab.

Where can I run the Wolfram Language?

It runs natively on desktop computers: Mac, Windows, Linux (including Raspberry Pi). It also runs in the cloud through a web browser, and on mobile devices.

Do I have to read this book sequentially?

It will be a lot better that way. I’ve constructed the book so it progressively builds up a broader and broader base of concepts. If you jump around, you’ll probably need to backtrack a lot.

Why are the topics in this book so different from other programming books?

Because the Wolfram Language is a different and higher-level kind of language, that automates away many of the details that programming books about other languages concentrate on.

Is the Wolfram Language an educational language?

It’s certainly used for education (and Mathematica is ubiquitous at universities). But it’s also very widely used in industry. It’s good for education because it’s powerful and easy to learn.

Will learning the Wolfram Language help in learning other languages?

Definitely. Knowing the Wolfram Language you’ll understand higher-level concepts, which you’ll then see played out in lower-level ways in other languages.

The Wolfram Language seems too easy; is it really programming?

Definitely. And because it automates away the drudgery you might associate with programming, you’ll be able to go much further, and understand much more.

Can this book be used for a course?

Absolutely! Check out the book website (wolfr.am/eiwl) for supplementary material.

Can sections of the book be omitted for a course?

The book is written to provide a sequential presentation of material, so the content may require some patching if sections in the middle are dropped.

What version of the Wolfram Language does this book assume I will use?

Anything 11.1 and above. Note that even some fairly simple examples (e.g. Table[x,5]) won’t work in versions earlier than 10.3. If you’re running the Wolfram Language in the Wolfram Cloud you’ll always be using the latest version, but if you’re running on a desktop system you may explicitly have to upgrade.

Is the code in the book “production grade”?

Usually, yes. Occasionally there is code that is slightly more complicated than it needs to be, because the concepts necessary to make it simpler haven’t been introduced by that point in the book.