Over several years of working with cash-strapped early-stage startups, I’ve seen dozens of non-technical founders hire software development interns to help get their initial product off the ground. But in almost no cases have I ever seen this go well.
While founders may feel that they are "saving money" by hiring a cheap engineering intern instead of technical co-founders, this decision usually ends up being more expensive in the long run.
Interns coding? Only if your experienced in-house tech team is big enough.
The problem is that software engineering has a much longer learning curve than most traditional intern work. Your existing (expensive!) senior developers end up having to spend a disproportionate amount of time recruiting, training, managing and entertaining interns to get them to a point where they are actually productive.
And by the time interns are finally up to speed on your code base, they're usually going back to school or accepting a full-paying job. That means you lose all that institutional knowledge you spent so much time investing in. (This argument is similar to the one against hiring an external development shop to build your initial product.)
Even in cases where your intern can become productive sooner (e.g., if this person is very good, or if your product is relatively simple/early), he or she often ends up writing code that is much buggier, or harder to maintain, than a more experienced developer might have written. The result is expensive technical overhead that has to be paid off later. Your cash-poor startup cannot afford such inefficiencies.
Non-technical, early-stage startup founders would also be much better served by hiring another full-time senior engineer to join the team for the longer haul. If founders cannot afford to hire experienced engineers, they should spend 90 percent of their time evangelizing their idea until they can either (1) raise money, or even better (2) find a technical co-founder who will work for equity.
As a general rule of thumb, I recommend that startups not hire software development interns (or external "dev shops") until they have at least three to five full-time engineers on the core team, among whom they can spread responsibilities for managing the intern. This will also ensure that the intern actually has a better learning experience.
[A quick aside to say that non-technical interns are a very different beast, and there may be a stronger case for hiring them at different stages. See my 9 tips for successfully hiring and managing interns.]
To any readers who are computer science students seeking startup internship for themselves, I recommend exploring more established startups that have a large enough engineering team to learn from. And, if you can’t find such an internship, you will probably learn a lot more by working on your own project than attempting to become the temporary “lead” developer on some other non-technical entrepreneur’s vision.
Best of luck to all the aspiring founders and interns out there!