My Advice for Young Entrepreneurs? Learn to Code

Summary: Programming is becoming a new form of startup literacy – a language you need to effectively communicate with the team. Start learning this lifelong skill today and you’ll get more startup opportunities, will build better products – and you’ll enjoy it a lot more.

This post answers this week’s Startup Edition Question: What advice would you give young entrepreneurs?

I Wish I had Spent More Time Programming

What a great question. After helping nearly 100 Entrepreneurs worldwide in the past few months, so many answers came to mind. Pick your market first. Stop looking for a co-founder. Believe in Yourself. Stay Patient. Bootstrap.  Enjoy the journey.

Instead, I’m going to reinforce a theme you’ll see in all of my writing: learn how to program.1

I started programming computers when I was 12 years-old, more than 30 years ago. Unfortunately for most of my career I didn’t do much programming except for side hobby projects. People noticed I understood tech stuff and could communicate, so I was quickly put into jobs like Project Manager. When I started my first company in 1999 I raised Venture Funding and hired programmers – I never wrote a single line of code and would have never dreamed I’d be writing software in my 40s.

In retrospect, this was a big mistake – I wish I had always kept coding. Fortunately in 2008 I started coding again and plan on doing it forever. Here are some reasons why.

Programming is a New Form of Startup Literacy

10+ years ago you could work in software startups without really knowing how software worked. You could sell by simply knowing features and value propositions. You could market online by knowing how to write Ad copy. You could be a “Product/Program Manager” and deal with project plans and meetings.

Today? Software is involved in almost every aspect of working at a startup. Good luck developing a Growth Hacking marketing strategy without knowing how APIs work. Product teams communicate through software like GitHub. Sales itself is now largely done by software or people powering software. Services like Stripe are changing how product companies talk and think about accounting and billing. Even HR will become software driven as startups increasingly become virtual and global.

The trend is unmistakable: unless you understand how all this stuff works it becomes increasingly hard to work at – much less found – a startup. You simply cannot communicate with people. And the only way I know to learn this stuff is to use it yourself.

You will Execute Faster – Even if it Feels Slower

I’ve been mostly building the SoHelpful MVP myself these past few months – even though I could hire a team to help me.  Even while I was investing in other startups.  Why in the world would I do that, you ask?

It is faster.

Let’s put programming aside for a second and compare MVP development with a more familiar managerial activity – creating a Powerpoint Presentation. Even Fortune 500 executives create their own Powerpoint Presentations today. Why in the world wouldn’t they just ask their team or the graphics department to build them? Certainly the graphics department could make a more beautiful, visually stunning presentation. They do it themselves because they don’t always know what they want to say until they start trying to say it, so it is actually more efficient to work alone. Creating it helps them discover what they want to communicate. Their goal is communication – not building a presentation.

It turns out the same is true with an MVP: My goal is discovery, not building a product.

I can take vague concepts gathered from a few months of Customer Development discussions and pull them into a feature without having to communicate to other people what I want. Looking at the code I can see what is – and isn’t easy to build quickly. I see ways to hack things temporarily to see if they are really needed. I get inspiration from the code – seeing things work helps me discover better features I hadn’t considered.

At times it feels agonizingly slow working alone, knowing that an experienced developer could build so much faster than me. But experience has taught me that constraints force discipline and creativity – I can only do what is most important, so I have to build less. Less is easier to communicate to customers, easier to maintain and easier to rebuild. The product may be built slower, but the discovery happens faster.

You will be Creating New Products for the Rest of Your Life

Most of us have a romantic vision of entrepreneurship that goes something like this: I found company X and it gets bigger and bigger until I either sell it and do something else with my riches or continuing running X as the managing CEO.

Reality looks nothing like this. If you have the passion to be entrepreneur, you will always be making new things. Always. You startup will build 5 products before one works. You’ll start 4 companies until one starts making money. You’ll start working on a side project that unexpectedly turns into a startup. You’ll make lots of money and realize you enjoyed making products more than spending money. The best friend you’ve always wanted to work with will want to start something with you. You’ll raise a B Round of financing, get kicked out by the board, and decide to bootstrap your next product.

Face it: this is who you are, a person who wants to change the world by solving problems. That’s why you’re an entrepreneur, that’s why you build products. Until we run out of problems you’ll always be building products.  Learning to code is a lifelong skill, one  you will appreciate and value through the decades. Start learning today and building products will start to look like an opportunity instead of a challenge.

20 years ago there were not enough programmers.  Today there are still not enough programmers.  There will NEVER be enough programmers because our imagination outstrips our ability to execute.  You’ll enjoy entrepreneurship a lot more if you can build stuff without having to look for one every time you’re inspired.

I Know – There are a Lot of Good Reasons Why YOU Won’t Learn to Code

You may have good reasons for not learning how to code – for instance if you’ve tried it and hate it. Or perhaps you’re so insanely good at selling and raising money that doing anything else is a waste of time.

But most entrepreneurs I talk to wish they could code – and want to code. But they don’t think they can do it, don’t know how to learn, or for some reason don’t think they should. I had many of the same excuses for much of my career and gave myself lots of reasons why I wasn’t coding.I hope you’ll reconsider.

You don’t have to be great – or even good – at it. You can be incredibly effective with a wide range of basic skills.  With such skills you can build most MVPs to the point of figuring out whether you’ve discovered an opportunity.  You can talk about anything.  There is enormous value from knowing nothing to having basic skills.  There is actually less value in going from basic skills to expertise – and in some cases probably lost value.

You don’t have to do everything yourself.  Of course there will be things you can’t do yourself.  Paul Mederos did an awesome job with the SoHelpful profile design.  Devin Zhang is 10x the programmer I am.  These people are experts – I’m a generalist.  It is a whole lot easier (and cheaper) to bring in experts for specific problems than to hire generalists.

What you studied at college doesn’t matter – plenty of great programmers never even went to college.

It is easier than ever to get started. It is easy to pick the programming language for your startup. And if you tried – and gave up – I urge you try a different approach to learning such as learning to code after you’ve decided what you want to build.

Need Some Help Getting Started? – I’ll be Happy to Help You

I’ve helped dozens of entrepreneurs talk through the challenges of learning how to code.  I’m happy to help you as well, just grab a 30-minute slot on my schedule.

About the Image

I found this photo by  Nik_Doof of his “Portable Office”.   This type of freedom is one of the most amazing parts of being a technically-competent entrepreneur today – the ability to be mobile, live anywhere, and create products that reach the world from tools you carry on your back.

We live in amazing times, don’t we?

  1. For some reason people sometimes get angry with me when I make this suggestion. I suppose some people really feel it isn’t a skill they can ever hope to have. Suppose I suggested that programmers that they should learn how to sell – would anyone object as strongly to this advice?

11 Comments

  1. Nasser Ghanemzadeh July 21, 2013 at 4:20 am #

    Good Point Kevin,
    As I decided to run a new startup, I started learning to code about a week a go.
    It is more that 10 years from the last time I coded, but this time I found that I should learn to do it.

    • kevindewalt July 21, 2013 at 4:23 am #

      Awesome! Be sure to share with everyone what you learn. Lots of other entrepreneurs will want to hear about it.

  2. Lisa July 21, 2013 at 7:49 am #

    I think you make some great points, and you’re right that having a founder with the ability to code often speeds up time to market as well as securing IP. But I don’t think every founder needs to code, because the person with the vision, charisma, sales experience and ability to secure investment and customers may not have the same makeup – I’d argue rarely does – as the person who can invent and architect the technology needed to bring the vision of the company to fruition. What I think is imperative for founders who are the “creatives” is that they team up with a cofounder who can code. That,in some ways, creates a much stronger team since each can focus and thrive in their unique areas of expertise.

    • kevindewalt July 21, 2013 at 9:24 am #

      Hey Lisa,
      Sure, that can definitely work. Has worked and will work for some people. I did this myself as you can see in the post.

      But unfortunately stories of success like this are becoming just theories for a few reasons. Here is the biggest one.

      Go find a few non-coding “creatives” – to use your term – and ask about their search for a technical co-founder. You’ll hear stories like, “that mythical person doesn’t exist – I looked for 3 months.” It turns out that almost everyone you want as a tech co-founder – and this is NOT usually someone whose job is a “programmer” at a bigger company – wants to do their own startup. They have their own creative ideas and they’re – understandably – more excited about working on them.

      So unfortunately people who don’t have some general programming skills are being left out of the conversation. I’ve been in this position and it stinks.

      For years we’ve been thinking of Founder tech skills as a have-or-don’t-have situation. You’re tech – or you’re not. I hope we can start changing that and begin talking about the basic literacy and skills that entrepreneurs will need in this century.

      So I suggest that every Founder learn how to code.

  3. Joe July 21, 2013 at 12:40 pm #

    So what exactly am I to do with these coding skills??? Are you saying that if my interest is in starting my own company I should learn to code since some type off app is the majority if where the money is ?? Please tell me what I am to use these coding skills for.

    • kevindewalt July 21, 2013 at 5:30 pm #

      Joe,
      Not sure I understand your question, but I wrote the post for people who want to create a web or mobile startup.

  4. Charles Beyer July 22, 2013 at 11:55 am #

    As a fellow ‘life long coder’ who started in the days of the TRS-80, Vic 20, and Apple IIc and an entrepreneur at heart, I do not agree that ‘everyone’ needs to code. First of all, not everyone can code. Like many other skills, some people are born naturally gifted, others can perform well through hard work and determination, others can be ‘dangerous’, while others simply cannot attain the skill regardless of the amount of effort put in.

    In my opinion founders should be ‘dangerous’ (or better) so that they can understand basic concepts, current technologies, and how they can apply them to their business. (Many would be amazed at how common some of the features to mobile/web applications are and what off the shelf products can be adapted) This would enable the founders to whiteboard/storyboard their idea, shop it around, and know when someone is trying to BS them. As long as the founder sticks with readily available technologies and doesn’t diverge too far off the beaten path, they will have no trouble finding people to do the coding they need, etc.

    A few caveats though:

    – If your business is primarily a product / service that is heavily dependent on *custom* code, you really should have first hand involvement or have another co-founder/vested resource involved. Is the 3rd party consultant that you paid to put together your site/app going to answer the phone at 3 AM if something goes wrong?

    – Outsourcing the development DOES NOT absolve you from having any involvement. While you won’t be coding, you will be writing specifications/architecting, project managing, reviewing, testing, etc. ( I’ve found that when I outsource coding projects, I don’t save much time overall. I save time coding, but I spend more time in all of the other areas listed above.)

    Just my $.02

    • kevindewalt July 22, 2013 at 9:25 pm #

      Hey Charles-

      It seems that you’ve got more geek street cred than I – I didn’t start until the Commodore 64. 🙂 TRS-80? Vic 20? Wow.

      Based on the rest of your comments, I think we are in agreement. What you call “dangerous” I call basic programming literacy. But I think we’re talking about the same thing.

      Definitely agree on outsourcing. It really doesn’t save that much time when you add up everything involved. I’ve had the best luck on outsourcing specific components.

      • Charles Beyer July 23, 2013 at 1:50 am #

        Kevin,

        Vic 20 was 20x cooler than the 64. 🙂 Just kidding, I did eventually get a ’64 and thought it was way cooler. To further solidify my place in nerdom, I still have my 8086 and actually had to use it recently to get some data off of a 5 1/4 floppy…. That’s a conversation for another day, though! 🙂

        In regards to our comments, I did we feel we were on a similar wavelength; however, I’m just picky about the term ‘coding’ I guess as that means a different thing to me. I also a little hesitant about having the basic skill guy cobbling together the MVP. While practically anyone can put a program together with enough effort, that does not ensure that they have accounting a wide host of potential issues such as proper software security, data privacy, eCommerce requirements, etc.

        Once again; however, this could be a difference in our terminology as my whiteboard/proof of concept would be used internally only whereas the MVP would be rolled out to the masses/limited public audience. (Perhaps, like some people, you view the MVP as this first draft internal product?) I do think it is great for the non-technical/slightly technical founders to have a hand in the internal products; however, once you cross the line to a public product, it should really be a properly architected offering.

        Overall good stuff!

  5. Alex September 3, 2013 at 5:31 pm #

    Excellent article. I currently face a situation wherein my work/life balance is not. I’m quickly becoming the person I used to always mock in the “how do you get to that point” sort of way, the one who can’t relax when he’s not working, who talks about work all the time, even when at the beach. I’ve decided to get an expensive hobby. My theory is that, if I can get myself into a state where the sunk cost fallacy kicks in and I feel guilty for not using expensive toy Y, I’ll be able to excuse myself from work much more often. But, my side-project and work do indeed rule my life, at least for now.

    I do believe that every developer/programmer should have side projects. It should not be about making them rich either! If you do something you love, it should not be a problem. Because the programmer is employed, there will be a need to hire a virtual assistant to assist with the administrative tasks of the side project. Some VAs are very knowledgeable in software and programming technology. One website that software developers can hire VAs is VAnow.net. It is one of best that I know has certified, skilled VAs.

I read EVERY comment and want to hear from you