Archives For coding

A lot of people have been asking me why I am leaving the venture capital world to begin a difficult and uncertain life as an entrepreneur.  It’s simple – I want to make awesome stuff.  I taught myself the basics of coding and was accepted into Hack Reactor, a coding bootcamp that runs 6 days per week and ~12 hours per day.

There are many reasons that I chose Hack Reactor over other bootcamps and a brief discussion of this topic is available on Quora.  The instructors were senior engineers at companies like Twitter and Google and are focused on teaching emerging web browser languages (javascript, jQuery, node, coffeescript, etc).  Most graduates become software engineers at leading tech companies and they have a near 100% placement rate.  Hack Reactor made headlines recently when a few current students set a world record for an algorithmmic challenge called the N-Queens problem.

I want to point out that Venture Capitalists are an essential component of the startup ecosystem and my departure from VC is due to the fact that I want to be a builder.  Without Venture Capitalists, early stage founders would have a much more difficult time raising funds, exits would be far fewer, and many of the most interesting tech companies would likely never have existed.

Jacques Mattheij posted a great article today that orders the complexity of ‘programming’ tasks by least difficult (0) to most difficult (27).  Can see from this list that most people can really only get up to 4, professionals that deal with complex systems every day can typically get up to 8 or 9 and anything past 11 requires intimate knowledge of coding.

What I found particularly interesting in this post is that the author ranked ‘spreadsheets with simple formulas’ as being more difficult than ‘static websites, html & basic css’.  I guess that means all of us business folks really don’t have an excuse for not knowing how to make a basic website.  There are some really great resources available these days to learn the basics of web design from CodecademyTeamTreeHouse, and others.

If you learn to program you’ll have a superior sense of the true cost of software development and will be a much more successful non-technical cofounder.  The most precious resource is time and many non-technical cofounders get tripped up by a false sense of how long things should take to implement.  Learning to code has never been easier and you can check out my earlier post on how to get started.

Business cofounders shouldn’t get lured into thinking that they don’t need technical skills when looking at the CEOs of multi-billion dollar tech companies.  Guys like Zuckerberg, Bezos, Steve Jobs and Bill Gates all started out with a solid foundation of technical knowledge, which contributed to development efficiency.

This article from Rob Spectre over at Fast Company points out that Donald Trump’s success is the result of his knowing the costs associated with real estate development better than any of his competitors.  In the end, running a successful startup is about out competing your competition in the pursuit of limited resources: funding, advice, talented engineers, time, etc.  Having a basic understanding of coding makes entrepreneurs better competitors.

Learning To Code

July 15, 2012 — 2 Comments

If you’ve never coded before, have no fear.  While it’s possible to start a tech business without any coding / web development background, putting some effort into learning the basics will pay dividends in getting your engineers to respect and follow you.  One of the easiest ways to get started is to take an online course, such as the one offered by Codecademy.  This will teach you web programming basics such as HTML, JavaScript and CSS to help you build interactive websites.  This is an amazing tool to get you on your feet quickly, especially if you have no programming experience.

Back-end Frameworks: Once you’re done with Codecademy, you’ll have the basics of front-end web development.  At this point you may want to learn a bit about back-end frameworks like Ruby on Rails or Django (Python).  The debate between whether to learn Python or Ruby is a heated one and you really can’t go wrong with either.  There’s a great thread on this topic on Quora.  At this point in your coding career, I would stay away from languages like PHP and Java given the time required to get up to speed and develop anything useful.

If you elect to learn Ruby, TryRuby is a great introduction to the Ruby programming language and can be accessed from your web browser (doesn’t require any installation).  This is pretty lightweight and will give you a sense for how the Ruby language functions.  Once you’ve gotten through TryRuby, you’re likely ready to dive deeper by following a Ruby on Rails tutorial.  Getting the Ruby on Rails framework up-and-running on your computer will be one of your hardest tasks and is easier on a Mac.  A great tutorial is Michael Hartl’s Ruby on Rails Tutorial.  Whenever you get stuck, you’ll be able to find solutions to your problems using Google since Ruby has one of the most active communities of any programming language.

For those that elect to go with Django, many tutorials exist.  Python has been popular for longer than Ruby and, as a result, there is a ton of information out there.  Most of the computer science departments at major universities teach Python, so taking an online class like the one currently being offered by Udacity, is a great option.  There are so many online course options available that I’ll post a separate dedicated thread later.

Mobile

When you want to begin building mobile applications (i.e. for the iPhone), this is easiest with a Mac and can be done using the iOS development tool Xcode.  There’s a great post on this on Udemy, so I won’t go into it here.  To program a native mobile app (as opposed to a web-based mobile website), you’ll have to dabble in Objective-C (Cocoa) or something similar (like RubyMotion).

Conclusion

If you want to be in the startup world, but think of yourself as a business cofounder, you’ll have to know something about programming to command any respect from your engineers.  You’re unlikely to get much traction with the tech community or in finding a technical cofounder if you have no technical knowledge.  The best way to learn to code is to do some of the tutorials suggested above and then create something for yourself.  It’ll be painful, but building yourself a tool will increase your credibility and give you confidence in your ability to understand the technical side of things.