Software Carpentry is a non-profit organisation that teaches computing, coding and programming skills to researchers using face-to-face and online courses. I’ve found Software Carpentry to be very useful throughout my computing career and would definitely recommend it to anyone looking to gain a good understanding of computing principles.
Software Carpentry Not Software Engineering
The term “Software Carpentry” is a play on “Software Engineering“. Engineers and carpenters both build things, but on different scales, and the exact skills they need to do so are different. In the same sense scientists and researchers would do well from having a basic, professional understanding of software engineering, but applied on a more appropriate scale for the problems they need to solve.
I first encountered software carpentry some years ago, when it only offered a few online lessons in Python. Even then I found the content to be useful and highly readable. The website and organisation has now grown, and now hosts dozens of workshops around the world, and offers lessons in Python, R, and Matlab.
A Practical Education
For me the main appeal of Software Carpentry is that it provides a practical education to get you started working on real projects and solving interesting problems. The course content gets you quickly stuck in to topics including:
- version control
- databases
- automation
It’s also worth noting that there are archived lessons which also cover other useful subjects including:
- testing
- regular expressions
- program design
An Excellent Starting Point
I think Software Carpentry is an excellent starting point for getting to grips with the most important areas of practical computing. As with any course in programming you may find you need to look elsewhere, such as Codecademy, for further clarification in some areas.
Data Carpentry – Software Carpentry’s Younger Sibling
In addition to Software Carpentry, there is now also a sibling organisation called “Data Carpentry“, which follows similar principles, but aimed more at data science than computing. There is of course quite a lot of cross over between these two courses, but it is handy to know it’s there in case you need some more data-specific information.