Skip to main content
1 of 3
jcm
  • 78
  • 7

Geordie,

The simplistic answer is install a copy of Dartmouth Basic or Pascal and fiddle with it. Not necessarily a bad starting point, but I think a far more detailed subjective approach will offer longer term benefits. For what its worth I'll share my experience.

So, for me, learning other languages was and is a practical matter dependent on motivation and purpose, what you're doing, who you're doing it for and most important longer term considerations of what you want to do - the proverbial 'where do you want to be in five years'. Operating at the quanta level in some cosmic enterprise may immediately require various language skills, specifically mandated or clear in context. And, of course, in that situation it's important to be able to hold your own professionally. In contrast, in a start-up, Mathematica is very helpful stand-alone or to model and prototype for other coding. In this case, other code depends on you're circumstances and is less motivated by competitive professional pressures.

My second act was a start-up, and like you, Mathematica was my first programming language. I had started a boutique fixed income money management firm in 1989. Having come from twenty years at a large Wall Street firm with state of the art analytics, I understood that the ability to 'roll my own' analytics translated to a totally customized solution for clients.

As I researched languages and software, I tripped over an odd duo in a Palo Alto Mac software store, Wolfram and Theo Gray peddling Mathematica (literally, shirts sleeves rolled up talking to anyone who would listen, including me.) Wolfram made noises about aspects of his product that made little sense at the time, but when he talked about efficient programming relative to other languages, I plunked down my $299 and took home the package, v1 Mathematica. I suffered an horrendous learning curve ... many years.

But, by the mid-nineties I was writing Mathematica packages which included the usual suspects of fixed income packages, options and futures packages capable of moderate data access, a GARCH package (with significant help from Wolfram) and some customized indexes. I was quite pleased with myself, competitive, the clients were happy, billings were paid promptly.

By that time it was apparent that APIs might have value. So I fiddled with MathLink and learned some C. The number of pertinent vertical apps was too small to justify the time commitment. My needs were satisfied almost entirely with Mathematica.

From day one I had a significant problem with Mathematica and large data sets. ReadList and later Import were slow and painful, streaming was better but not much and the SQL interface introduced in v4 was better but marginally so. The problem persisted though 2005. In the last eight odd years, with the advent of Big Data solutions in the guise of Hadoop and its offspring and platforms like Talend Open Studio, my demands on Mathematica have morphed.

Being able to write Mathematica command line scripts has become invaluable. For example, Talend is a marvelous platform, but some of its GUI components lack granularity. In those cases it is far more efficient to write on the fly scripts than create new Java components for things like date and string parsing, analytics and file handling, you need a little Unix which if you don't have you should get it. (see Powers, Peek, O'Reilly, Loukides "Unix Power Tools")

Over the last eighteen-months I have happily learned enough Java and J/Link to effectively interact with in-memory database solutions, in this case VOLTDB, which is written in Java. This solution is exponentially faster than disk based solutions with an enormous benefit. I can write my own GUI in Mathematica.

Over the years, I've looked at a variety of languages and longed to learn them all. My work with Mathematica has allowed me to conceptualize various programming paradigms and techniques. And I've received invaluable help from folks like Roman Maeder, Stan Wagon, David Wagner, Patrick Tam, Tom Wickham-Jones, Hal Varion, Heikki Ruskeepaa, and Sal Mangano.They all make it look oohh so easy. If you can get their books you should. I have always found the cookbook formats to be useful. If it's practical for you, you might take a look at O'Reilly's SafariBooksOnline.com .

I would find an efficient way to grasp the basics (the Basic Pascal approach) but then be driven by circumstances and desire. And read read read.

Best of luck.

jcm
  • 78
  • 7