> You are also likely to get some input on the way future engineers are hired and the way your technology team interacts with the business team.
This is true, and not entirely a good thing. I was interviewing new technical hires within a year or two at the organization. I asked stupid nerd questions (if you knew C++ like you claimed, you'd know the ins and outs of this template expansion), instead of important ones like: if you're stuck, will you ask for help, or just silently beat your head against the wall and not have anything to show weeks later?
> An environment that encourages learning and experimentation keeps engineers more motivated than one that stifles its technical talent.
It's also an environment that encourages reinvention of the wheel, especially by younger engineers with little supervision that don't necessarily realize that a particular wheel already exists and is ready to use.
> One of the best skills you can learn if you intend to work for a startup is the ability to figure out things on your own.
This is an existential issue at a startup, and particularly important if you're fresh out of college, because you don't know anything and thus must learn everything. This is both good and bad. On one hand, I learned a lot more in a short time than my friends that went to work for big organizations. On the other hand, I always felt like I never really learned how to do things "right" because a startup is a setting where you don't necessarily have the time to dot your I's and cross your T's.
> It seems like startups move faster and create solutions to difficult problems more efficiently than large companies, but the truth is that they normally have a lower quality threshold than their corporate counterparts.
This rings true to me. It was really a revelation to me when I joined a large organization for the first time. It was a well oiled machine, with roles for everyone and someone whose job it was to do anything that needed to be done. Startups have many advantages, but they're not necessarily productive or efficient places.[1] You can spend a lot of time yak shaving at a startup.
Anyway, I'd do it over again in a heartbeat, but I'm not sure if I'd advise someone to go to a startup straight out of school.[2] Maybe one of those well-funded, well-established ones where they're far enough along to have real internal processes and real management, but I'd save the "three guys in a basement" stuff for later, when you know what you're doing. Again, YMMV.
[1] Of course, I imagine they can be if we're talking about a shop run mostly by highly experienced engineers. But in general, I think big organizations are better at getting more output from less-skilled labor.
[2] At least if you intend to make programming a long-term career. If your intention is to jump over to the business side relatively soon, that advice would change. You'll get far more exposure to the business side at a startup than you will at a large company.