Having had a few conversations with engineers in person and on Twitter, it would appear that those that have coded or written complex spreadsheets all advocate that young engineers should make the time to learn at least a simple programming language or some other means that lets them model a problem through a construction they've made themselves rather than a packaged piece of software. The ability to write your own analysis routine to test for various variables is invaluable when testing out a new structural system, or even for automating tedious calculations. If you're really clever you can get Mathematica to do fancy things like the animation below in a single line of programming code.

The downside is that some of the packages to let you do this can be quite expensive, even for academic licences. Whilst a student licence of MatLab can be purchased for about £30, grabbing a copy of Mathematica or MathCAD is going to set a student back around about £90. If you're a practicing engineer then you're going to have to purchase a full licence which is going to be about the £1,000 mark.

So if you've never programmed or written code before in one of these sorts of languages, that can be quite an investment and one that could be seen as a bit of a gamble. For example, most of our water engineers within the department swear by MatLab for manipulating large matrices and from the reading I've done it would appear to be much quicker than Mathematica on very large matrices, but speed is only half the story. If speed really was the biggest concern, then users would write code in Fortran, C, or even the newish language Julia. Personally I've never really got on well with MatLab, it just feels quite clunky to learn and I prefer to use Mathematica for tinkering and meddling with bits of code, it has lots of mathematical routines embedded so I'm not wasting lots of time writing routines to invert matrices etc and I can just get on and write.

I know that lots of engineers in industry are quite positive about MathCAD, but again this is an expensive program to purchase, particularly if you're not sure if it's what you need really and just fancy having a tinker about with it to learn. If only there was a free version perhaps? Well there is! In the form of a program called SMATH Studio which is very similar to MathCAD and is free to download and use, which has to appeal to your inner Yorkshireman if all you want to do is try and see how to use a piece of software like this for creating your calculations and a few simple models. In fact it also has the ability to let groups work on the same sheet and collaborate in real time which is great if you're working on a session and there's an ocean inconveniently between you or you want to show someone else how to do something specific in the software.

If you're more mathematically minded and want something that has a bit more grunt with symbolic mathematics, then again there are various free packages out there and one that received warm praise is called SAGE. I can't pretend that I've used it in anger myself, but it appears to create a local server that you edit files through a browser session on and several other PhD students I know all sing its praises.

But once you've created mountains of data from your laboratory testing and you want to undertake some statistical analysis, most institutions would reach for SPSS but the student licensing costs for this are mental compared to other pieces of mathematically focused pieces of software and from memory they're on a term by term basis as well rather than a perpetual licence. This is where free alternatives such as the R project come to the rescue and their increase in popularity is gathering momentum with really good quality text books being published to help users learn statistics and the software in one fell swoop.

The added bonus for me is that these pieces of software are available for PC and Linux, so if you've an old computer kicking about that you don't know what to do with, then throw on a copy of Ubuntu and breath in some life to your old machine and start tinkering and messing with these bits of software... if you kill the computer through excessive tinkering, then it doesn't matter, simply repair, rebuild, and carrying on meddling... it's the best way to learn. Particularly when there's no money to be lost as all of the software is free, you just need an existing computer, some time, and a desire to have a go.