My first job was in a startup, and my second was in a large corporation, so I might be able to shed some (hopefully unbiased) insight on the matter. Obviously, companies (startup or not) vary drastically, so your experience is is guaranteed to be unique. You'll want to consider the specifics of the companies you're looking at, and what you want in life.
The Pros of a Startup:
- It's small enough your opinion (probably) matters.
- A tiny company usually equates to more personal flexibility. There are no broad sweeping policies in place. If you've got to leave at 2:15 to get your kids home from school, they're far more willing to just let you.
- You often get to work with cutting edge (sometimes bleeding edge) technology. In a large company, they often get hung up on old versions of software or outdated technology, just because that's what the product was originally built on.
- You sometimes (but not always) get equity in the company, which means if you do really well, you could make serious bank. There's always a lottery-like chance that the business will take off and you'll get filthy rich. That effectively can't happen at a large company.
- You'll actually get stuff done. Not that lines of code are that great of a metric, but at the startup I worked for, I wrote about 90K LOC per year. When I switched to the large corporation, it dropped to probably 5K. There's a lot more red tape and maintenance to do.
The Cons of a Startup:
- Generally speaking, you'll be working lots more hours. There are exceptions (mine was) but for better or worse, most startups will expect you to put in longer hours than an established company.
- If you don't like your boss or coworkers, there's no room to switch teams.
- Things will only work out at a startup if you're almost as excited about the product as the founders are.
- You're almost guaranteed to be paid very little. All startups are strapped for cash. Most will use that as justification to pay you significantly below market rates. It shouldn't happen, but it does.
- No real job stability. You'll always be worried that the funding might dry out, or that the smallest mistake might cause you to lose your customers. (Note a large company also can't guarantee you a job; things change quickly.)
- Startups usually come with fewer perks.
Some double-edged swords that can be both good and bad:
- You're responsible for a lot more in a startup. At a large corporation, you can get lost in anonymity. A cog in the corporate machine. At a startup, when things go wrong, the fingers will frequently (and usually correctly) come pointing your way.
- There are more hats to wear than people to wear them in a startup. You'll be doing more than one role. If you're a software developer, you should be prepared to do UX design. Maybe even some graphic design. You'll definitely be taking your garbage out to the dumpster and cleaning the fridge. If you want to focus solely on one area, a larger company will let you better specialize. If you want to have a broader experience, then a startup may be better.
- Learning the trade is... different. At a startup, you have few people to learn from. Having people around who can serve as mentors can be a good thing. But fewer people to learn from isn't a problem if the founders around you are the right people to learn from. And as nice as it is to have veterans around, sometimes those veterans can be set enough in a specific mindset (perhaps based on a bad experience) that they aren't open to alternatives when you/they otherwise should be. If you go the startup route and there's no one around to mentor you, you'll want to go out of your way to push and challenge yourself. Read books from experts in your field, go to conferences and meetups, etc.