The thing that makes me crazy about hackathons is that they reinforce the school mentality of "I am going to do a thing for a small amount of time, get some approval, and then ignore it forever." For people doing anything real, it's poisonous.
I would much rather see people commit to a semester of weekly demos with the understanding that they were supposed to ship to real users by week 4 at the latest. Then the goals would all be about improvement. More users, better service, more polished product. That's the essence of startup life.
If people really want to do a weekend thing, I'd much prefer something like Lean Startup Machine, an event I occasionally mentor at. There the weekend isn't about building, it's about iteratively testing customer and product hypotheses. It basically ignores the tech side of tech startups and is mainly about customer development.
I think that's a great choice for novices to understand startup mentality because it teaches you that a) you know nothing until you have proof from your customers, b) your notions about your business are probably wrong, and that c) the best way to deal with that is to find out as soon as possible so you can get better notions.
- How to read other people's code
- How to write code that wont be immediately thrown away (a problem generally at school)
- How to interface with project maintainers and get your changes accepted into the project