Most non-programmers in the startup realm have probably said once: “I’d like to learn how to program, but…” and ended that phrase with something like “it’s too hard”, “I just don’t have the time”, or “it’s meant for a different type of brain.” At least that’s what non-programmers tell me when I find out that they’re working on a startup, because without exception I follow with an inquiry of their deployment stack: “Oh cool, what language do you use? Any frameworks?” (why I’m so interested is a topic for another post).
Today, I am using this platform to make a point, one that I’ve tried to bring across to all the folks that have decided to leave the task of coding to others. There’s no judgement here; programming is hard. I understand that. In the startup world a lot of domain specific knowledge (mail delivery, DNS, database scaling/security, and so on) is required alongside actual programming. But I believe that non-programmers should strive to learn as much as they can. I’m not expecting them to fire their contractors and take the GNU Emacs reins (although that is a pretty good goal), but the more you know, the more your startup will benefit.
It’s not the idea, it’s the execution
It’s not hard to come up with examples of companies that had the same idea as their competitors but succeeded because of superior execution. Think Facebook versus MySpace, or Google against all-those-other-search-engines, or Blizzard’s World of Warcraft versus (is there anything that can even claim to be a competitor on the same level?). All of these entered the same space, but it was the ones that executed well that remain in play today.
At the end of the day, the quantity or quality of your ideas doesn’t matter. If you don’t execute, you’ll end up in the same place. If you want your startup to succeed, why leave the execution entirely in the hands of someone else? There are a lot of other things important to a startup, but writing the actual code and managing the technologies that scale it out is stuff that you can’t ignore.
You don’t have to be great, just be able to recognize what great work is
When you study something, the main thing you learn is how much there is that you don’t know yet. But that’s okay! Even if you aren’t a good coder, the more you know the better you’ll be at recognizing a good coder when you see one. Think of the benefits this has on picking a technical partner, or finding a contractor. You’ll be better equipped to pick out that diamond hidden in that cheap contractor, or recognize the BS coming out of that expensive one. You’ll be able to more accurately judge the merits of the latest new technological fad so you can make an intelligent decision on what to adopt.
It’s not actually as hard as it seems
Honestly, you should be able to pick up Python. It’s a really good general purpose language (the standard library covers a lot of ground), and some people argue that it is the ideal first language. Also, there are a ton of resources online. Zed Shaw’s Learn Python The Hard Way is available for free reading online. Ruby is also very similar to Python, and has an equal number of high quality resources online. There’s really nothing to stop you but your own lack of motivation!
There are alternate learning resources
Read the posts on reddit’s /r/programming/, or follow hackernews. Even if the topics are over your head (and to be honest, it’s over most people’s heads) you’ll learn something new every day. A fair warning though – don’t take everything there as gospel. Read the comments, try and follow both the lines of dissent and agreement.
The other alternate source would be developers! Usually, people that are very passionate about what they do end up being more than willing to help you along. Warning though: don’t expect even patient developers to provide free private tutoring. Be ready to show that you’re willing to put in effort and people will be more likely to want to assist you.
Follow this blog
I’ll be posting regularly on topics related to developers and development. There will be both technical and general posts. Sometimes I might zoom in on a very specific tool, or sometimes I might throw a wide net. My goal is to make posts useful for developers and approachable for non-developers.
Shu is a father, husband, Python evangelist and open source enthusiast. He does freelance design and development as one-half of FreelanceDreams LLC. In his spare time he works for a local startup called RealGeeks[/author_info]