Interning at big guys like Microsoft or Google is almost entirely unheard of. School never even told about the possibility of being asked technical questions during an interview; interviews are supposed to be a 15 minute conversation about ourselves and about the company. We're always assumed to get an interview. "Startups may hire only one or two interns" is normal, companies hiring more than that are extremely rare, and if they do it's usually because they're too poor to pay real employees. In fact, 3/4 companies I've been with hired interns because they're (very) cheap.
So that means no pay. Not that I'm looking for wages, I'm looking to learn something, but still. It turns out the better companies also pay more (or at all), but I only learned that very recently. I never even knew it was customary to get a monetary compensation for your work until a year ago. It became most obvious when I was (almost solely) working on code for mission-critical systems without payment...