Most scientists have never been formally educated in computer science, yet, a ever bigger chunk of our daily work is in fact the work of a computer scientist – we organize and process large amounts of data, develop algorithms and write smaller or larger pieces of software and scripts. Eventually, everyone finds a personal solution for his problems in this area, but without a common curriculum in computer science, these solutions are often far from optimal, and they differ, which hinders collaboration.
On the other hand, most scientists are no computer scientists. It makes sense that they are somewhat more conservative when it comes to new methods from computer science – scientific projects are characterized by high specialization and low amount of resources, hence, they usually have considerable momentum when it comes to the choice of programming language or tools. So, what do you really need to know as a scientist about computer science?
A good starting point is the article “Where’s the Real Bottleneck in Scientific Computing?” by Greg Wilson, and a follow up “Scientific Software Development Is Not an Oxymoron” in PLoS Computational Biology. Greg Wilson is also maintaining a great page with a course about Software Carpentry, and a software carpentry blog. Tiziano Zito has modified the software carpentry lectures, so you may also want to have a look here .