But then I had to get into the "big" companies for visa reasons, and honestly I don't miss start-up world anymore. The learning has been pretty steep, yes in a start-up you wear more hats.
But in my experience, the attention to detail and investment on engineering is higher in bigger companies, simply because they can afford to. Whereas an early stage start-up works more or less on a thin deadline, and if the founders are not engineers themselves, usually engineering gets compromised over velocity. Also, scale. The bigger the company the more challenges they will have (whether in vertical or horizontal scaling). And IMO working at scale, teaches you a lot more than people think.
As a software developer, the differences in goals have a significant impact on how I design and implement code.
I prefer big companies because I am usually a stickler for good conventions and proper coding structure.
As for learning, obviously it depends on the specific companies and what you're interested in. But what Naval is talking about here is becoming a founder. At startups you're wearing more hats, can have a bigger impact and are closer to how things work. You'll probably learn a lot more about being a founder than at a big company where your role is more defined and sandwiched between layers of abstractions, many levels away from the CEO and decisions being made.