Hackathons teach new skills, strengthen developer communities, and push the limits of new technologies.