The “learn to code” theme (or meme as some have dubbed it at this point) has taken the startup industry by storm this year. Even Michael Bloomberg, the New York City mayor, tweeted in January that learning to code was his New Year’s resolution. Much of this demand is now being met by free, online educational tools such as Codecademy, Treehouse, Code Racer, and a number of others.
While many have embraced this call to action with enthusiasm, others have not been too keen on it. For example, Jeff Atwood implored people, “please don’t learn to code.” Yet others—programmers included—have challenged his argument and highlighted the potential ways a non-technical person could benefit from learning some basic programming. But the subject remains hotly-debated and the question still stands—if you’re a non-technical person, should you learn to code? Why or why not?
3 reasons for “Yes!”
1. You love building things to solve problems.
Whether it’s a product you wanted for yourself, or a tool to solve a challenge at work, being able to put something basic together (e.g. simple web app, VBA macros for Excel) can be an incredibly gratifying experience. You get to harness your creativity and be completely immersed in the process. For your employer, you can add tremendous value, and may even become indispensable if you are the only one who can execute on the solution.
2. You genuinely aspire to be a tech entrepreneur.
In an early stage startup, it’s nearly all about the product, especially if it’s consumer-focused. Learning how to code a basic MVP will enable you to iterate on your concept faster, when you’re the non-technical lone wolf. Armed with some validation and willingness to “get your hands dirty,” you are more likely to earn a technical cofounder, as Jason Freedman puts it on his blog.
As a bonus, you don’t have to rely on outsourcing the design/UI, if you’re able to code in HTML, CSS and even jQuery. This will also give your cofounder more time to tackle the complex challenges. If you are able to advance your coding skills quick enough (e.g. server-side programming and databases), you may even leverage your coding skills to do some basic “Growth Hacking,” a term coined by Andrew Chen, to grow your customer base initially.
3. You are interested in a challenging, well-salaried, and meaningful career.
As Chris Dixon suggests, businesses all over the world are on a hiring spree for top programmers, many of whom earn $100K+ right out of college. Codecademy also agrees and argues that learning to code can create higher-level opportunities for underemployed young people to work for companies that now rely on technology to move forward in the 21st century.
3 reasons for “No”
1. You aren’t trying to solve a problem.
Software developer Jeff Atwood recently argued that the “everyone should learn to code” meme has gotten out of control, and that most people shouldn’t learn it. Gina Trapani at Thinkup, though mostly disagreeing with Atwood, emphasizes that simply learning to code for its own sake “puts the method before the problem.” If you’re learning to code to build a startup prototype, then you should first figure out what problem you’re solving, if the problem exists and whether code can solve it. Outside of this scenario, it’s best if you learn coding for automating tasks at work, training your analytical mind or for sheer enjoyment.
2. You are an entrepreneur who wants to keep all the equity to yourself.
Chris Dixon also argues that, as a non-technical person, your time is better spent recruiting people who have been coding for years, if your goal is to build a large-scale web product. Indeed, such product requires great engineers who have put in their “10,000 hours.” It would be naïve for any beginners to think that they can replicate such feat in a short time, and not give out the equity necessary to attract the right technical talent.
3. You want to sound cool or get rich overnight.
If you’re reading this blog, you’ve probably seen “The Social Network.” As you would expect, many people are joining the gold rush today, and the term “hacker” is getting overused among newbies. But many will soon realize the reality: learning to code is hard; building something awesome is even harder.
Where do you stand on this debate? Do you think everyone should learn to code? Share your thoughts below!