Leave a comment
Get the GH Bookmarklet

Ask GH

There’s been a lot of debate about the importance of learning to code. IMHO, there’s a strong need for non-technical, traction talent to solve startups’ weakness: acquiring and retaining users. This might be a biased question to the GrowthHackers.com community but I know there are several technical people in this community as well.

Here’s my take: http://ryanhoover.me/post/67471168540/dont-learn-to-code

  • SE

    Sean Ellis

    almost 6 years ago #

    Great question Ryan. I think it's a "nice to have" skill rather than a "must have" skill. Once you have product/market fit, driving growth is a function of the quality of ideas and the velocity of testing ideas. Someone who can code is likely to be able to test ideas at a higher velocity than someone who has to convince a coder to implement them. Additionally, an idea rarely works on its first implementation, so having the ability to quickly tweak the implementation is also very helpful.

    UPDATE - here's how I ranked the skills (IMHO) necessary to be an effective growth hacker in a different comment:

    1) Creative/resourceful problem solver
    2) Pure ambition and drive
    3) Empathetic to understand human needs and psychology
    4) Discipline to follow a process
    5) Analytical (right tools can help fill a void here)
    6) Coding skills to have autonomy to quickly test your own ideas
    7) Bravery/boldness to take risks and ask for forgiveness

    • BP

      Brandon Pindulic

      over 5 years ago #

      How important would you say design is in terms of being able to sufficiently use HTML5/CSS3 photoshop etc…That’s one of the areas I’m focusing on learning, so just curious

      • CC

        Chris Conrey

        over 5 years ago #

        Of the three things you listed knowing HTML/CSS is far more valuable than Photoshop up front, but a passable knowledge of HTML and CSS is key for anyone in a web or mobile based startup. They loosely fall under coding skills in Sean's post above, but to me, they are soon to be as valuable as being a good writer is today.

        • JQ

          Jamie Quint

          over 5 years ago #

          I think you need to know enough to bend bootstrap templates to your will, but becoming a CSS expert is overkill.

    • JQ

      Jamie Quint

      almost 6 years ago #

      I am biased (I'm a developer) but I think that knowing how to code is borderline "must have".

      The reason it is important is much less about the ability to make changes yourself (although that is occasionally useful) and much more about the ability to understand the limitations of what is possible and in what approximate timeframe.

      You don't necessarily need to be a programmer to understand this but it sure helps a hell of a lot. As a developer who has built a ton of stuff on standard web stacks I have a very clear understanding of what is required to implement metrics/analytics/product changes on that stack, when things should be front-end vs backend (for metrics/analytics), and how long doing certain things will take. When I first started working on mobile growth I found myself asking the dev team for things that were technically difficult or technically impractical due to my lack of mobile experience. I've gotten better at this over time, but the biggest contributing factor was actually just going and building an iOS app so I really deeply understood the limitations of the platform. My previous, tacit understanding was OK, but not ideal.

      Anecdotally, there have been a number of times where I spec-ed out really really important metrics work that I would not have been able to do without a dev background. Specifically, I was able to figure out a hack to attribute paid mobile installs by channel and campaign within mixpanel using MobileAppTracking postbacks. You really really don't want to be reliant on someone else to tell you if stuff like this is possible or not because often times the solution is obscure and you need to be able to find it out yourself.

      Additionally, I find that when it comes to product marketing, growth is as much about being a good product manager as it is about thinking up good ideas. Part of this is dev schedule management and prioritization. I like to know two things here 1) what is the expected impact, and 2) what is the expected cost (usually time cost).

      Without being an experienced marketer #1 is difficult, without being an experienced developer #2 is difficult.

      • DM

        Dave Marcello

        almost 6 years ago #

        BINGO. The key here is "understanding". It will help you understand your limitations, your growth path and patterns, and will help you speak the language (or at least a basic version of) of the people you need to build your solutions.

        (This is coming from a word of mouth marketing guy and startup founder who is hell bent on learning code.)

  • MB

    Morgan Brown

    almost 6 years ago #

    I think it's helpful, but not a necessity. I do think there are several advantages to it though:

    1) Understanding at a code level what's easy and hard to implement can help you better communicate with engineers and prioritize opportunities.

    2) Being able to code up functional prototypes via HTML/CSS lets you deploy new tests faster, and lets you iterate outside of the release cycle.

    3) Having the ability to query a database or API can get you the data insights you need in early days that can uncover new growth opportunities.

    4) If you can hack something off an API or even get it to an MVP stage, you validate it and get data on it before pushing to get it on to the product road map.

  • CC

    Chris Conrey

    almost 6 years ago #

    In my opinion you need to know and understand enough to have the conversation with developers on your team about how things are going and where they are going. You can't be a luddite, but you don't need to be good enough to be in the trenches with them.

    At least be able to understand and help communicate and prioritize things with them from both a technical and a customer's perspective

    • RH

      Ryan Hoover

      almost 6 years ago #

      I completely agree. I've worked with product managers that have very little to no technical understanding. This results in frustration as engineers have to educate and "slow down" when making product decisions and discussing ideas.

    • NT

      Nicky Todorov

      over 4 years ago #

      Hey Chris?

      Thanks for your answer! I fully agree with you. The question that rise up is how to achieve that? As Ryan said techies get angry really fast when you don't speak their language, however it is really hard starting to do so without upsetting some. What's the best way in your opinion to learn that?

      • CC

        Chris Conrey

        over 4 years ago #

        I don't think anyone would throw a fit if you came to them with a sincere request to know more about their job and skills so that you can communicate better. So long as you don't structure it in a way that detracts from them actually getting things done.

  • MB

    Matt Boys

    almost 6 years ago #

    Two thoughts:

    1) "Coding" is too broad a term to be useful. Writing SQL and building Excel spreadsheets involve coding (SQL is an example of a domain-specific language; Excel modeling is a form of functional programming). However, when people talk of "learning to code", they are generally referring to learning some full-stack development like Ruby on Rails (or sometimes just HTML and CSS).

    2) "Coding" is a means, not an end. The end could be anywhere on a spectrum from 'simple pleasure' to 'becoming the next Jeff Dean'. First figure out your end, or your purpose, and then figure out what gaps you need to fill in order to get there.

  • JC

    Jeffrey Chew

    almost 6 years ago #

    I'm of similar mind to Sean. In reference to your question-inside-the-question: does a startup team need a mix of technical and non-technical....my answer is yes. diversity will allow for much better problem solving and execution. I always use the Toolbox analogy - have as many tools in the toolbox so that you have the right tool available to build/fix/change.

  • DL

    Dylan La Com

    almost 6 years ago #

    It seems to me that the best situation is one where you'd have both technical and non-technical talent in your growth team. A growth team of only technical talent may find themselves getting too deep in the weeds of programming, while a team of only non-technical talent may not have the resources to test and build quickly. To answer the question, I'd say choose to be technical or non-technical, focus on whatever you choose, and find someone to work with that complements your skills.

  • TK

    TaeWoo Kim

    almost 6 years ago #

    I see the most advanced growth hackers coming from some kind of technical background.

    Another thing..every time some platform opens up an api (or in case of airbnb/craigslist, a technical flaw).. it's helpful if you have the technical apt to see how you can use it to your advantage)

  • AT

    Amanda Thomas

    almost 6 years ago #

    Being able to code will help you move faster, but I don't believe it's a requirement.

    However, you should have enough of a technical foundation to be able to:
    1) understand the possibilities and limits
    2) understand how it works
    3) read through code if necessary
    4) basic troubleshooting
    5) figure out and use tools on your own
    6) Most important - be able to communicate technical requirements/issues/etc effectively with coders.

    Personally, I have a great team of developers that I work with. With having a pretty good technical foundation, It's a better use of my time to focus on other skills/techniques required in GH than tune my programming skills.

    But if you're not in the same boat, learning to code might be a requirement.

  • RL

    Rob Lennon

    over 5 years ago #

    One thing I've noticed is all the jobs about growth and growth hacking require technical skills. You may very well be able to perform the function without coding skills, but it will probably be difficult for you to find a company willing to let you try.

  • DS

    Dan-ya Shwartz Bar-El

    over 5 years ago #

    I believe there's a difference between writing and reading code.
    I READ and alter code very well and it allows me to 'hack' and solve almost any technical challenge I've encountered.
    And I have amazing team mates who can help when my reading and copying skills aren't enough.

  • NT

    Neeraj Thakur

    over 5 years ago #

    It's better to express through speaking than to express through the use of sign languages.

  • AL

    Alfred Lua

    over 5 years ago #

    Hi, I hope to get some opinions from a broader pov as a startup founder, not just growth hacker or marketer. Not sure if it fits the context of this forum though.

    Should a startup founder learn to code?

    When I read Ryan's article, I agreed with him. I feel that there is a strong emphasis on the need to learn coding but learning how to market (and other aspects of startup) is very important too. Personally, I'm interested in startup marketing and have not much coding knowledge. I want to be good at startup marketing but struggle on whether as an aspiring entrepreneur, I should learn to code. This is partially due to this article by Yongfook: http://www.yongfook.com/10-reasons-why-i-self-funded-my-startup-and-so-should-you.html (There's a small part at the end about learning to program)

    Also, as I do not have a product now, it seems easier to practise coding than to practise marketing. Would love to get some opinions on this, especially how I can practise marketing without a product. Thanks! :)

    • JY

      Jon Yongfook

      over 5 years ago #

      Alfred, you only get better at things with practice and practicing marketing on your own products is one of the best ways to learn marketing.

      You can come up with 10 ideas, build prototypes, and market them in different ways. Just for practice. You'll be able to learn a lot faster than if you were waiting for other people (co-founder / colleague) to implement your ideas and since these are just going to be scrappy prototypes or tests, you really don't want to be waiting around.

      Learning to code is like removing the speed limiter on your learning. It also opens up the possibility that one of your products ends up becoming your job one day!

      I'll echo what some others have said here - you don't need to be the world's best programmer. I certainly am nowhere near that. But you should learn how to hack things together.

      This is more than "understanding" code. I think that sugar-coats things. You need to have practical knowledge. You can begin simply by learning how to install something like Wordpress and hacking around with it to get it to do what you want (install plugins, tweak the design etc). Even that is already enough to start prototyping products / services and practicing your marketing.

      By learning to code, you enjoy so many benefits as a marketer or entrepreneur. You are definitely at a disadvantage if you don't and really, it's not as hard as it may look. Some of us even enjoy it greatly!

      • AL

        Alfred Lua

        over 5 years ago #

        Hi Yongfook, thank you for such a detailed reply and advice! Personally, I would like to be able to eventually build a product myself too so I started to learn Python.

  • SC

    Shana Carp

    almost 6 years ago #

    This is a totally personal opinion, but it is in part based on what I am working on currently:


    You should be able to at least get through at least the beginnings of a CRUD application. It doesn't need to live on the web* (I'm just short of that, but I will be able to soon), but it should still Create, Read, Update, and Delete. The reason is without building, you won't know the limitations of what can and can't be done to use the app itself as a growth engine. Having a good feeling for CRUD helps.

    Caveat of the above: One of the reasons I believe this is because the startup I'm working on, which the best way to describe it is dynamic personalization/parametric optimization in real time on a conversion basis via api, is in part built in such a way where you only need to know the basics. But if you don't know, you also will have a harder time figuring out how to use it.

    The other reason and a half:
    Excel is a f***ing nightmare for a number of tasks. Outside of a couple of quick calculations, if I have any order of rows over 1000 with a number of datapoints I need to think about, Python/Pandas is orders better. Plus knowing how to use Pandas often puts me in a similar place with data scientists, and they are often doing things I wish I could do as a marketer at scale. I at least can see where the hockey puck is going.

    *I've built small CRUD applications for ipython notebook/pandas/matplotlib for some specific growth hacking things. I have it just live in memory, and never deal with the database itself.

  • TC

    Tyler Cecchi

    almost 6 years ago #

    If you're in marketing you should know how to at least understand and read code. At a large company you probably won't ever touch code; at a start-up you might. Either way to actually be good at your job you can't be mystified by how things operate, which in turn helps a lot in giving direction and put's you at the top of the dev department and the rest of your team's go-to list. However, remember that if you are committed to being a good marketer, you will never be as good as those who have committed to being good programmers.

    On a slightly similar note, as a marketer you need to be able to DO something. People who are 'planners' or 'strategists' are typically full of it. Soft skills are critical to a business's (and your own) success in the long run, but knowing how to actually get in and do something to provide value is equally as important.

  • AA

    Austen Allred

    almost 6 years ago #

    "Does a fashion designer know how to sew?"

    I don't think I'll ever be an incredible computer scientist, nor will I be a technical co-founder. But there are a few important skills I want to have:

    1. I want to understand the technical limitations of things. I don't want to be a fashion designer that doesn't know how to sew.

    2. I want to be able to build my own tools

    3. I want to be able to tweak things without feeling like I'm handicapped as I wait for someone "technical" to help me out.

    To that end I've been spending two hours every morning and 4 hours every Tuesday night and Saturday morning just learning how to code. Some pretty basic stuff; rails apps, the basics of Ruby and the front-end, but I think it's immensely important.

Join over 70,000 growth pros from companies like Uber, Pinterest & Twitter

Get Weekly Top Posts
High five! You’re in.