Projects
Computers are as important to modern science as telescopes and test tubes, but few scientists have ever been taught how to use them effectively. The goal of the Software Carpentry course is to give them the skills they need to build and share software they can trust without superhuman effort. Unlike most other programming courses for scientists, Software Carpentry focuses on software development, rather than numerical methods or high-performance computing.
Right now, people all over the world are learning how to write programs and create web sites, but or every one who is doing it in a classroom there are a dozen free-range learners. This P2PU learning group will explore how we, as mentors, can best help them. The course begins in January 2012; topics will include:
- What does research tell us about how people learn?
- Why are the demographics of programming so unbalanced?
- What best practices in instructional design are relevant to free-range learners?
- What skills do people need in order to bake their own web?
- How are grassroots groups trying to teach these things now?
- What’s working and what isn’t?
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another’s mistakes rather than building on one another’s successes. This series of books seeks to change that. In each volume, the creators of different open source applications explain how their software is structured, and why. What are each program’s major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to these books provide unique insights into how they think.
People have been building complex software for over sixty years, but until recently, only a handful of researchers had studied how it was actually done. Many people had opinions—often very strong ones—but most of these were based on personal anecdotes, or on the kind of “it’s obvious” reasoning that led Aristotle to conclude that heavy objects fall faster than light ones. The aim of this blog is to be a bridge between theory and practice. Each week, we will highlight some of the most useful results from studies past and present. We hope that this will encourage researchers and practitioners to talk about what we know, what we think we know that ain’t actually so, why we believe some things but not others, and what questions should be tackled next. The blog is a continuation of the work begun in the book Making Software.




I just watched your talk on “What we actually know about software development, and why we believe it’s true,” and really enjoyed it. http://vimeo.com/9270320 That brought me to your site, and now I want to buy these books. Don’t worry, I can find my way to a web-store. I already have and like your book Beautiful Code. Best wishes.