Wolfram Computation Meets Knowledge

Afterword: Being a Programmer

If you’ve understood what’s in this book, and can do its exercises, then you can now consider yourself a Wolfram Language programmer! There’ll always be more you can learn, but you’re ready to start using what you know to do real programming.
What can you do? An amazing amount! In fact, there’ll probably be something you want to program every day. With a traditional computer language it’d take too long to actually do it, though. But with the Wolfram Languagewith all its built-in knowledge and automationanyone who knows the language can write very useful programs even in a matter of minutes.
And this means you’ll routinely be able to write programs for all sorts of things. Things you want to understand, things you want to create, things you want to do for other people. Sometimes you’ll dash off a program, run it once, and never use it again. But much more often you’ll end up using your program many timesand maybe progressively making it more and more sophisticated over time.
For everyday programming, it’s normally best to write Wolfram Language programs directly in Wolfram Notebooks, that let youlike in this bookmix results and textual explanations along with code. After a while, you’ll probably end up with lots of Wolfram Notebooks, that do lots of different things.
Quite often you’ll just run your programs in those notebooks. But you’ll also often want to deploy the programs to create websites, apps or whatever. And one of the great things about the Wolfram Language is that this is easy to do.
There’s nothing to say that with a few well-chosen lines of Wolfram Language you might not be able to create something like a website that many people will want to use. But more often you’ll find there are all sorts of extra details you want to cover, and you’ll end up writing a significantly longer program to handle all of them.
In many ways, there’s nothing different about a longer Wolfram Language program. Even if there are millions of lines of code (as, for example, in Wolfram|Alpha), they locally all look pretty much like the code in this book; just a lot more of it.
In any programming project, however, there are some new issues that come up when programs get larger. You need to be sure to maintain systematic tests (which in the Wolfram Language you can do using VerificationTest). You need to organize code into properly separated packages. And particularly if multiple programmers are involved, you need version control, code reviews, and other management structures.
It might be something where computers have long been used. It might be something that’s only now conceivable for computers as a result of the Wolfram Language. Whatever it is, try to imagine a Wolfram Language function for doing it.
What input would the function get? What output would it generate? What might the function be called? Don’t at first think about how you’d write the code. Just think about what the function should do. And only after you’ve understood that, start writing the code.
Look in this book and on the Wolfram Language website for examples that are similar to what you’re trying to do. If you’re lucky, you’ll get everything you need. But maybe there’ll be some part that it’s just not clear how to achieve. And if that happens, it’s often good to imagine how you’d explain what’s needed to someone with infinite technical capability. Often just doing that will lead you to identify at least some definite taskswhich you can then start formulating in the Wolfram Language.
A great feature of the Wolfram Language is that it’s always easy to do experiments with. You can try all sorts of things, and see what works. It’s always worthwhile to be as systematic in your explorations as you can. And to recognize that in the Wolfram Language it’s usually less about writing lots of code than about understanding how best to think about what you want in computational terms.
Next Section