One of our goals—in fact, our biggest goal—is to grow the pool of people who can teach Software Carpentry workshops, so that we can reach more researchers in future. We've learned that having scientists teach scientists works better than having professional programmers (or computer science grad students) teach scientists, but that raises a question: what do we teach the average neuropsychologist or geophysicist about software engineering to prepare her for teaching our stuff? Ideally, we'd like them all to have read a double dozen books, and to have ten or more years of experience in industry, but that's not going to happen. Instead, we've settled on a very short list:
- Robert Glass: Facts and Fallacies of Software Engineering.
- Karl Fogel: Producing Open Source Software.
We'd like people to read a lot more than this, of course, but I think that if someone has digested these two books, they're ready to teach the big-picture stuff we want to get across. I also think that would-be instructors should read one or the other of:
Both books are group efforts, which is why I haven't listed authors. The first dates from 2000, but all the material is still relevant; the second is more recent, but less applied. Both have lots to chew on, and they complement the software-specific material nicely.