Startup internships tend to be semester-long job interviews, which means that you'll be doing the same thing that the full-time employees are doing but with more supervision at first. This is a huge win for you, the intern, for two reasons: 1. Instead of doing menial grunt work you'll be doing real work for real users, which is a _way_ better learning experience. Finding out what people want isn't something that can…
But what you'll be doing as an intern is not consistent across companies or even across teams. You might be QA, which is nothing like writing production code. You also might be assigned a project instead of working on the code base with the rest of the group. You might even be a sys admin or something similar.
If you're getting an internship, make sure you know what you're getting.