What Entrepreneurs Need to Know About Coding

Summary: Today’s Entrepreneurs are generalists, and that means having proficiency in many skills including programming. Fortunately most people with limited programming experience can get a lot out having some basic skills.  Being a really good programmer is not practical or optimal.

I got a lot questions and startup help calls after my recent post: My Advice for Young Entrepreneurs? Learn to Code from people were confused about what they needed to learn and why. I’ll try to clear up some confusion here1.

We Need to Stop Thinking of Programming as a Can/Cannot Skill

Many people believe that programming is a skill that you either have it or you don’t. Those who “can” program are College Computer Science majors who spend years refining their craft in job experience. The rest of us are in the “cannot” category.

This just isn’t true. Programming is like any skill – everyone who does it has a range of aptitude and proficiency. And like any skill there is a “good enough” range.

Today’s Entrepreneurs are Generalists And Programming is One Critical Skill

Before 2000 starting a software company took a lot of money – you needed Sun servers, Oracle licenses, and lots of people. Money was so critical that founders could be great at shaking it out of investors and customers and no other skill mattered much. Entrepreneurs would spend half (or more) of their time building relationships with people who could get them money.

Today money is no longer as critical and most founders rely on a broad range of skills to get traction. Successful founders I know have some degree of competency in at least 6 skills

6 Critical Skills for Entrepreneurs

  • Writing
  • Selling
  • Management & Leadership
  • Design and UX
  • Programming
  • (Increasingly) Data Analytics

Nobody can be  really good at all 6 of these skills. In fact, maintaining a “great” level in any one of them will probably hinder your development in others. There are just only so many hours in the day.

Each Skill has an Optimal Level for Entrepreneurs – And Being Great Usually Isn’t Practical

Consider this conceptual “Optimal Skill Curve for Entrepreneurs”. To be an effective generalist entrepreneur you need to be in the 2-4 range for most skills.  If you’re <2 in any skill you’ll find that it holds you back – consider investing time in improving it before getting better at what you already do.  Since you can’t be great at everything you’ll need to recruit people who are >4 in their area of expertise.

entrepreneur_skill_curve

Optimal Skill Curve for Writing Skills

Before talking about programming, let’s talk about a skill we can all understand: writing. Entrepreneurs need to write Ad copy, email prospective customers, give team members written directions, blog….and on.2

Here is what a hypothetical curve for Writing Skills might look like for an entrepreneur trying to create web and mobile products for an American audience:

Skill Level Proficiency Implication
0 You written English is about as good as my 汉字 Improve Skill
1 You can write like a high-school educated American but don’t use written English much in your work Improve Skill
2 You write like a college-educated American and are very comfortable with day-to-day business communication like email word-processing and presentations Optimal
3 You have worked to develop basic sales and marketing skills like writing Ad copy and content marketing. You write regularly to maintain your skills and read guides like Copyhackers to get better Optimal
4 You’re an excellent writer and have worked in marketing or editorial departments where a key component of your work was writing copy Optimal
5 You make your living by writing and have the talent and skills to be able to work at top advertising firms or serve as an editor Hire at this Level
6 Don Draper and Bill Shakespeare call you when they’ve got writer’s block Hire at this Level

Imagine building web products for the American market if your English skills are a 1.4. Is it possible? Sure. But progress will be slower because you’ll have to explain to others what you want and have them write it. Worse yet you won’t be in a good position to hire great people because you cannot distinguish someone with 2.5 skills from someone with 4.5 skills.3

Let’s also assume that my Written English skills are a 3.0. Could I become a 4? Sure, but my time is better spent developing my weaker skills.

Optimal Skill Curve for Programming

Now let’s consider the Programming, the skill which is causing the most confusion.

Skill Level Proficiency Implication
0 You use the web but have no idea how it works Improve Skill
1 You’ve worked with programmers before and can participate in a basic business conversation about topics like databases/deadlines/bugs. You had a programming class in college once but never spent much time building anything yourself Improve Skill
2 You’ve done a few small programming projects yourself and basically understand how everything works although you’ve never deployed production-level application. When you hear a new term you can look it up and understand what it means Optimal
3 You can – albeit slowly – create and deploy a basic data-driven web application using a popular framework like Rails or Django. Your code is far from elegant and you first turn to StackOverflow whenever you try to do something new. You learn new skills and technologies as you need them Optimial
4 You’re good enough to work as a freelancer building web applications for clients. You participate in open-source projects just to improve your skills Optimal
5 You’re a great programmer and good enough to work for companies like Pivotal Labs. “It works” isn’t good enough – you pride yourself in creating elegant maintainable and scalable code Hire at this Level
6 No time for programming – you’re too busy laying out the vision for what comes after node.js Hire at this Level

Now let’s talk about what these skills mean for entrepreneurs. Hopefully you’ll see why the Optimal Skill Level for programming is 2-4 – because with this skill level you can build an MVP and start discovering what your market needs.

If Your Programming Skills are < 2 it will be Tough – but Marginally Improving your Skills has Big Returns.

If your programming skill are < 2 you’re going to have a hard time even if you have a team of developers. You won’t be in a good position to make critical product design tradeoffs because don’t speak the same language – you don’t have basic programming literacy. You’ll move slowly because you’ll spend hours communicating ideas to people you could implement yourself in 10 minutes. Possible? Of course. But the successful entrepreneurs I know with limited programming skills usually have lots of product experience and are very focused on selling.

But there IS good news for you!

Getting to the 2-3 range is a lot easier than you probably believe. Most of the programmers you know – people who have been doing it full-time for years – are in the >4 range. This shouldn’t be your goal.

You just need to be good enough to get an MVP working by coding yourself and bringing in others to help you get through the more challenging components. That is good enough to be in control of your product and discover what the market actually needs. You’ll be in a great position to hire >4 programmers – they’re the people who are better than you!

How Long Does it Take? About 3-6 Months for Most People

If you talk to people who have learned a framework like Ruby on Rails they will tell you that it took them a few months. In my experience it can take about 3-6 Months of full-time work to go from 1.5 to 2.5 skill level if you’re determined, pick the right programming language for you, and learn the right way. If you cannot go full time you can do it in 6-12 months while working on a part-time project.

Confused? I’ll be Happy to Help You

Of course I’ve simplified a lot in this post and your situation is probably unique. Feel free to schedule some time with me and I’ll be happy to help you think through it. Just schedule some time with me and I’ll be happy to help you.

About the Photo

I picked this photo of Ruby code because I find the language so easy to use that it makes programming fun.
Photo Credit: elliottcable via Compfight cc

  1. If you’re going to look for exceptions to my arguments you’ll find many of them. Of course some specialists and people who cannot turn on their computers build great companies. Here I’m addressing the other 99% of the world – the people I meet in my startup help calls worldwide who want to start companies building web and mobile app products
  2. Now you might think that “EVERYONE can write” but I assure you that you’re incorrect. I work with brilliant entrepreneurs who are not native English speakers trying to sell to the US market. I occasionally advise them that their customer development emails look like spam to me.
  3. I know what this feels like because I wouldn’t know how to hire a great Chinese copyeditor – I just don’t have the skills.

9 Comments

  1. Juho Vepsäläinen August 4, 2013 at 9:27 am #

    Excellent post. I was actually expecting to see a description for each of the critical skill you mentioned. Perhaps the remainder would fit in another post?

    • kevindewalt August 4, 2013 at 6:04 pm #

      So you’re looking for a description of all 6 skills I mentioned (I don’t suggest that this list is complete, incidentally)? Or more details about the necessary skill level for programming?

      • Juho Vepsäläinen August 5, 2013 at 1:15 am #

        I would love to see descriptions for the remaining four. I think the whole thing could be turned into a quiz. As a result you should have a rough estimate of your level and have a better idea on what to improve upon.

        By the way, check out programmer competency matrix. It would be awesome to have something like that for each of the categories covered. That would also serve as a baseline for a quiz.

        I probably wouldn’t benefit from extra information on programming given I’m a programmer myself. That doesn’t mean extra details on the topic wouldn’t be helpful for some, though. :)

  2. Maksim Ioffe August 9, 2013 at 7:34 pm #

    Couldn’t agree more! Business oriented founders should break out of the “I am not technical” mindset.

    Thankfully, these days there’s a lot of resources on the net catering to every type of programming student for every type of tech, from free tutorials (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book), to intensive months-long programming bootcamps (http://www.appacademy.io), to 1-on-1 mentorship via AirPair (http://www.airpair.com/code-mentoring)

    • kevindewalt August 9, 2013 at 7:44 pm #

      Great resources. Airpair looks interesting, looks like you’re one of the founders. I did customer development on this idea last year for a few weeks. I couldn’t find enough entrepreneurs in the sweet spot of being proficient enough to look for specific help but not so proficient to be able to do it themselves. So I moved on.

      But I was targeting founders and not programmers more generally who are looking to get better. I suspect you’ll find many more in the group you’re targeting. Just tough to get people to pay for the help…

  3. Tony August 28, 2013 at 9:53 am #

    Great article, however I am still curious about the age requirement to learn code as an entrepreneur. Are you suggesting that middle aged (mid 40s) entrepreneurs should also learn to code as you suggest for young entrepreneurs? I would be happy to hear thoughts on this one. Thanks.

    • kevindewalt August 28, 2013 at 10:15 pm #

      I sure hope middle-aged people can learn – I’m middle aged and I recently took classes on CodeSchool.

      Entrepreneurship is a profession of lifelong learning. It never ends.

      • Tony September 3, 2013 at 1:09 am #

        I agree on the lifelong learning in general but then how about the opportunity cost (new business idea vs learn to code)? Recently, I have read this article (http://is.gd/nmwIK6) from a technical cofounder who has a startup at Y-Combinator. He says “don’t find a technical co-founder (yet) and don’t learn to code. Use your current skills and try your hand at a service-first business.” Would you still advise a middle-aged entrepreneur learn to code?

        • kevindewalt September 3, 2013 at 8:57 am #

          Hey Tony,

          I think we’re talking about a few different things here…

          The “service-first” business is a great idea for ANY startup. This is a classic Lean Startup strategy and everyone should be looking any opportunity to mitigate their risks. See Eric Ries’s The Lean Startup book for some real case studies. The term most of us use is “Concierge MVP”. See the Food-On-The-Table video on justin.tv.

          Having said all of this…and speaking as someone who has done this multiple times…

          It only takes you so far. Pretty soon you have to start putting things into code in most instances. You don’t have to be an expert in it and you can start adding code little-by-little as you need it.

          And…

          “Would you still advise a middle-aged entrepreneur learn to code?”
          I sure hope so…speaking myself as a middle-aged entrepreneur myself…who still watches CodeSchool videos just like everyone else. Entrepreneurship is a profession of lifelong learning.

I read EVERY comment and want to hear from you