The first startup I worked at did this. They hired kids straight out of (or in) high school, like me. They hired recent Indian immigrants who couldn't work anywhere else because of visa issues. They opened an office in Shanghai where they could get programmers for $20k/year.
It worked, well, terribly. The startup folded in a year and a half mostly because of code-quality issues. I remember talking to the founders near the end of my gap year, where they said that of the 10-ish or so high schoolers they hired, only two of us really produced more than we cost (even on our piddly $20-30k/year salaries), and even then we needed a fair bit of management support.
These were also not random people - one of the founders had been a teacher at my high school (he'd been an entrepreneur with a successful exit before then), and he basically skimmed the top of the class off and got them to work for him. Many of us later had successful careers at Google, Bain, or hedge funds.
But there's only so much that you can do to compensate for inexperience. There's a lot that you learn in your first job or two, even if you already know how to program. And until you learn it, there's a good chance that you'll be negatively productive.
Perhaps the problem was a poor balance between experienced and novice developers. I wouldn't expect a company with hardly any experienced people to succeed.
It was, but that's ultimately the problem with hiring novices. We had a couple senior engineers. Most of their time was spent mentoring novices. Startups are cognitively demanding enough to take a highly-skilled engineers full attention. If the bulk of their time is spent managing, who's writing the code? You end up with a bunch of novices who gain a lot of experience, and a bunch of code that's crap.
If you have to hire the senior engineers anyway, why not hire only the senior engineers, at least in the early stages of the company? They'll be able to get actual work done, you'll have a decent codebase, and you might actually be able to ship a product that can get you additional funding and revenue. Then, once you've taken care of the money problem and the startup is no longer fighting for its life, you can hire some junior devs to flesh out the product and exploit market opportunities that you didn't have the resources to explore in the startup phase.
Well, because you can't, as all these posts whining about how hard it is to find people allude to. Since there aren't enough senior engineers to go around the next best thing is to hire some talented novices and turn them into senior engineers.
Then you're still in the same boat. Over the timescales that startups typically operate under (weeks to months), one senior engineer is more productive than one senior engineer and five junior engineers. The former can get a lot of code done and produce something that works. The latter spends all their time mentoring the junior engineers, who might or might not produce something that works, but it will undoubtedly be ugly and require much refactoring if it does.
Over longer timescales (years), this relationship doesn't hold true. This is why Google, Microsoft, and many of the other big players in the industry can afford to hire junior engineers. That one senior engineer and five junior engineers will turn into six senior engineers, all of whom have worked closely together, and then you have a gelled team that can accomplish great things.
But you have to get there first. When a startup's fighting for its existence daily, it's not cost effective or prudent to make an investment that will take a couple years to pay off, when there's a good chance that your company will be out of business in six months.
I don't think were talking about startups on the weeks to months scale. That's the time period where it's a couple people in an apartment. Yeah, you probably don't have time to train people at that stage.
You jump from that stage to Google as if there's nothing in between, but almost every other company is in between. Plenty of startups have been around for years, and plenty of them have enough funding to ensure that they'll still be around for years. At that point it becomes possible to make the short-term sacrifices necessary to ensure long-term success, like training.
It worked, well, terribly. The startup folded in a year and a half mostly because of code-quality issues. I remember talking to the founders near the end of my gap year, where they said that of the 10-ish or so high schoolers they hired, only two of us really produced more than we cost (even on our piddly $20-30k/year salaries), and even then we needed a fair bit of management support.
These were also not random people - one of the founders had been a teacher at my high school (he'd been an entrepreneur with a successful exit before then), and he basically skimmed the top of the class off and got them to work for him. Many of us later had successful careers at Google, Bain, or hedge funds.
But there's only so much that you can do to compensate for inexperience. There's a lot that you learn in your first job or two, even if you already know how to program. And until you learn it, there's a good chance that you'll be negatively productive.