Personally I choose to program in straight C for ‘heavy lifting’ calculations where I’m writing the whole simulation engine myself.
I use Python where the code I’m writing is not so time critical as it’s much nicer to work with, and to manipulate objects (& even interface with C programs or other libraries).
I also do a fair bit of statistics work in ‘R’.
Practically I mostly use pre-written scientific programs to do most of my serious calculations, and these often need lots of little bits of wrapper program written to shovel data one way or another. I often use Bash, Awk & Python for this.
Sometimes I have to edit a program written in Fortran. This terrifies me, and gives me a headache 🙂 But I understand that it’s actually a nice language for compilers to understand & rewrite automatically for super computers, as it’s so brain dead it can’t do anything complicated!
If I was going to learn just one language to do scientific computing in, I’d probably choose Python as it’s pretty easy to learn (& fun to program in), there’s lots of support + documentation out there and you can interface with other libraries + graphics really nicely.
Programming gives you magic powers that will help you in almost anything you choose to do in the future. Everyone uses computers, and if you understand how to program, they work for you.
I do most of my programming in MATLAB, which is kind of a pseudo language (by which I mean there is a lot of ‘help’, for example mathematical functions, already built into it). MATLAB is relatively user friendly and, whilst it can run more slowly than programs written in ‘proper’ languages like C or Fortran, with modern computers this isn’t usually an issue.
I also do some programming in Fortran, like Jarvist, this gives me a headache 🙂
I usually really enjoy programming (in MATLAB at least), it can be like solving lots of little puzzles and is one of my favourite parts of my job.