Via Titus Brown, a new PLoS paper titled "A Quick Guide for Developing Effective Bioinformatics Programming Skills" by Joel Dudley and Atul Butte. Their recommendations are:
- Programming languages
- Embracing open source
- Unix command-line skills
- Keeping projects documented and manageable
- Preserving source code with version control
- Embracing parallel computing paradigms
- Structuring data for speed and scalability
- Understanding the capabilities of hardware
- Embracing standards and interoperability
- Put a high value on your time
I think all these things matter, but:
- How many hours do the authors think are needed to acquire these skills? We've tried very hard to fit Software Carpentry into 25 hours of lecture and 50-100 hours of practical work because we recognize that every one of those hours is time students aren't spending doing science.
- Shouldn't testing be in the top 10? Or the top 5, or 3? These days, I care a lot more about how (and how well) someone tests than I do about their mastery of any particular programming language.