But a lot of larger companies have great programs for junior developers that ensure they learn a lot.
In my experience and stories I've heard it seems that you can have an amazing time as a junior developer at a startup. If it's a good one. It it isn't, you'll be absolutely miserable and have no support. Similarly, you can be at a large company with a fantastic program for junior developers and learn a lot. And you can also work at an awful large company where you'll learn nothing. "Startup vs large company" feels like a false choice in many ways.
My experience with (2) larger companies, and confirmed from conversations with friends, is that while you tend to have more support, you are often placed on individual siloed teams where you stay for years. I think the key benefit of smaller companies is that you can work across so many different aspects of the application. Process also tends to be less burdensome so you are able to devote more of your time to the text editor writing business logic.
Still, my experience and my circle is limited so I suspect some might have had the opposite experience.
I was interviewing at a megacorp a long while back, my interviewer was solely responsible for the pie charts in some old application. He mentioned in the interview that it was totally feasible to run your own startup on the side.
An acquaintance of mine worked at Google for one entire year on the functionality of one single button in GMail (I don't recall what it was specifically). He was very disappointed, left and launched a startup.
Engineering learnings at big cos vs startups are wildly different. If your goal is to learn what it takes to start your own company, you are much better off working at even a mid-sized startup, than a big tech co. There are a number of reasons for this, but a particularly consequential one is that you will learn to build/manage/deploy applications from 0, and if things go well, through a variety of scales thereafter. At a mid-size startup you'll have less of the "from 0" bit, but you are much more likely to learn to deal with the scaling issues that manifest as the software that was built in the early days starts degrade with growing load. You will also likely be using similar open source tools in both the early & middle startup stages.
Building features in a large, existing codebase, in the robust tooling context of a big company, is nothing like building services from the ground up.
In my experience and stories I've heard it seems that you can have an amazing time as a junior developer at a startup. If it's a good one. It it isn't, you'll be absolutely miserable and have no support. Similarly, you can be at a large company with a fantastic program for junior developers and learn a lot. And you can also work at an awful large company where you'll learn nothing. "Startup vs large company" feels like a false choice in many ways.