I got this question recently from one of my readers, and I think that it deserves a lengthy response.
“Should a startup founder know how to code?”
Before I get into whether or not you should invest the time in learning how to program, let me just say that as a non-technical founder, you’re going to have unique problems when trying to launch a tech startup.
As a bit of background, I first got introduced to programming when I was in 6th grade. I made my first game using a program called Multimedia Fusion.
I then took a few courses in 7th and 8th grade on Basic, HTML/CSS, and C++. Aside from HTML, all of the courses kicked my ass. I thought I was stupid, or just didn’t get this whole coding thing. Then, I started reading some books on my own and started to slowly get it.
I took C++ again during a summer class and it started making sense. I began to understand how CSS worked. I made some websites for my friends, and was even paid $100 to make a website for my friend’s mom and her business. I thought that was huge money then.
I then got into Java during the summer classes and programs like 3D Max. From my freshman year of high school until my junior year, I learned a good amount about Java and photoshop/illustrator.
It wasn’t until college that I got interested in PHP and then Ruby on Rails. I have dabbled a bit in Swift, the iOS development language, but I now know that I’m not a hardcore programmer, just a tinkerer.
All of these skills have played a role in the different ventures I’ve started (and failed at). They are also directly responsible for my success and confidence today. Here’s what I’ve learned.
1. You don’t control the crucial success metric.
Since you can’t code, you will never have full control over the primary fuel moving this venture forward.
We all know that what matters most in the early stages of a tech startup is your ability to iterate on your existing functionality and crank out new features and see how the marketplace responds.
If you can’t code, your energy is going to spent trying to motivate your technical cofounder to stay up late at night debugging your product, scrap working functionality that they just shipped because the users aren’t responding to it, and devote their time to your shitty paying venture, not their high paying full-time job.
Don’t get me wrong, there are certainly technical cofounders out there that are willing to do this. They should be passionate about the problem that you’re solving, after all. But, there is always that initial spike of passion which will fizzle out over time and it’s your job to motivate them when the going gets tough.
I was speaking with a friend recently who is building a tech startup and he was so frustrated that his technical cofounder wasn’t completing key tasks.
Since he didn’t have any coding abilities, he couldn’t hop in and put in the time and help that cofounder ship a core piece of functionality (that cofounder eventually quit).
2. It’s harder to control costs
Let’s say you’re outsourcing the development of your product, or at least the initial version of your product until you can get some traction and raise Angel or VC funding.
If you have no coding abilities, then it makes it very difficult to supervise developers and make sure that the product is being built well, that the costs accumulated make sense, and that, should the developer quit, it will be easy for someone else to take up the reigns.
In addition, since we both know that you’re going to be going through many feedback loops until you get product-market fit and know that you’ve created something that the marketplace actually wants, then your costs are going to be big until you get to that point.
If you had the ability to hack together a prototype, then yes, your time costs would be large, but the financial costs would be small. The name of the game is staying afloat. The less financial costs that you take on, the longer that you can stay alive and keep iterating until you get product-market fit.
3. Learning how to code IS a distraction
I’m a firm believer that everyone should do what they’re best at in a tech startup venture.
Learning how to code is going to be a huge time drain. It’s going to force you to get good at something that you’re not good at, and there is a steep learning curve, which means you’re going to suck for a while.
But, I think that the benefits of learning how to hack together a prototype and oversee developers far outweighs the costs of putting in the time to learn some coding skills before launching a tech startup.
Eventually, your coding knowledge will become obsolete. I remember that Mark Zuckerberg was asked to fix an easy bug for fun after having run Facebook for several years, and it took him hours to figure out how to do it, when it should have been a simple fix.
His longterm success is credited to the amazing programmers that he has working for him, but, he had enough coding knowledge that he was able to bang out a prototype of Facebook, even if it didn’t look pretty.
4. You could get lucky, but you probably won’t
“But what if I meet my Steve Wozniak?”
Steve Wozniak is Steve Job’s technical cofounder, and arguably, the reason that Steve Jobs was initially successful.
You could get lucky and meet that ideal technical cofounder. You bring the vision, he brings the coding chops. But, it probably won’t happen.
Just because programmers have the ability to make a cool product, doesn’t mean that they want to. Many are extremely comfortable working in a larger company with an awesome paycheck and healthy benefits.
In addition, you might think that you have a world-changing idea, but it’s unlikely that a programmer is going to want to work on your idea. They’d rather work on theirs, and chances are, they see it as something fun, a hobby, not something they want to work on for 12 hours a day.
Finally, it’s even more rare to meet that technical cofounder who is willing to try variations of a product until they succeed. It takes a lot of work and effort to be willing to scrap all of the code that they’ve written thus far and attack a same problem at a different angle, or to work towards solving a whole new problem that you’ve discovered while trying to solve the existing problem.
5. You’ll spot trends easier
It’s your job, as an entrepreneur, to figure out what’s possible but is not being done.
As new platforms emerge, technology improves, and devices change, new things become possible that weren’t before.
For example, Uber could only exist in a smartphone-driven world.
Facebook could not have been started (or it would have been much more difficult) in a world that has huge server costs.
The more in touch with technology and the development community you are, the easier it will be to spot new trends, needs, wants, and figure out the right thing to build.
Learning how to code gives you more confidence in assessing what can and should be built, given the constraints and changes in the current environment.
6. You’ll meet more programmers
Simply by learning how to program, you’ll meet more potential technical cofounders. Since you speak their language, it will be easier to get them to work on new projects and discover interesting projects that they’re working on
You could meet them online, through GitHub, at technical Meetups, or form friendships with other entrepreneurs who are learning how to code.
If you make something really cool and launch it on one of these sites, you might even get other programmers contacting you to find out how did or because they want to work with you!
I think that this is the coolest part of learning a new skill set. You insatiately gain access to a whole new community of people who can become your friends or partners.
But, I’d like to hear whether or not you agree with me! Leave a comment below and let me know whether or not you think it’s important for a tech startup founder to learn how to program.