The ‘Programming for Scientists’ training montage

September 29, 2009 – 3:35 pm
photo by Iwan Gabovitch

photo by Iwan Gabovitch

As any attentive movie-goer knows, self-improvement can be a great way for the hero to overcome the obstacles in their path and generally do great stuff.  As it is with Rocky Balboa, so it is with programmers, and particularly with Scientist-Programmers.  Finding the time to develop your skills means that everything you do subsequently, you’ll do a little better, and over time you become much better at what you do.  We think every Scientist-Programmer should be a little obsessive about self-improvement and here are a few articles that show you how. Read the rest of this entry »

The ‘Programming for Scientists’ software project primer

September 2, 2009 – 3:56 pm
photo by vali...

photo by vali...

The purpose of this blog is to help scientists program more effectively and efficiently, so they can get more science done.  For those of you who’d like to be systematic in your learning, we present the prog4sci software project primer!  Read the rest of this entry »

How to explain programming to your Mum

August 18, 2009 – 5:15 am
Euclid, as imagined by Raphael in this  detail...
Image via Wikipedia

This article will hopefully be helpful for those times when you have to explain to your mum/dad/girlfriend/person on the bus what it is you do all day. I can’t help you explain the intricacies of your particular scientific field but I can help explain how all the computers get involved.
Read the rest of this entry »

Building scientific tools that are actually useful

August 4, 2009 – 8:05 am
Photo by flattop341

Photo by flattop341

Lots of scientists write bits of software to get things done.  Sometimes they offer to give someone else (a collaborator, student, postdoc etc) a copy of some of their code, to help that person out.  Sometimes a given piece of code is useful enough that it gets handed out multiple times, and so starts to look a lot like a publicly-available scientific software tool.

That’s great, but think about what could have just happened, back in the first sentence of this post.  A scientist wrote a bit of software to get something done.  Not “a scientist developed a robust, well-tested software tool”.  Maybe it was, but maybe it was a knocked-together, prototype-y little chunk of code that was only meant to be used once.  And now suddenly that prototype is in widespread use.  We hope this fills you with horror!

The problem here is that this is a way that a prototype can end up being distributed as if it was a finished product.  But it doesn’t have to be this way; in this post, we’re going to discuss the considerations of producing good scientific software tools. Read the rest of this entry »

The basics of … Python

July 21, 2009 – 5:46 am
CPython
Image via Wikipedia

Python (named after the TV series Monty Python’s Flying Circus, not the snake) is a high level programming language that aims to have a clear syntax and only one correct way of doing something. This post will look at how it can be used for scientific computing.
Read the rest of this entry »