Chris Dixon had a great post recently, asking Who should learn to program? The post is chock full of insight, and I have a response to share, but first a quick update on what I've been up to recently...
Last month, I began the Apprentice.io program at thoughtbot. "Awesome" does not quite begin to describe the experience. Turns out coding, much like a trip to the Museum of Science, can be mind-expanding and fun.
Apprentice.io is packed with web development knowledge and practice. Working directly under the masters of the craft at thoughtbot, everyday, on real client projects.
Now back to Chris Dixon's post, I agree with all his points, except this final one:
If your goal is to build a large-scale web service, your time as a non-technical person is better spent recruiting people who have been coding for years.
Quite the contrary, I believe that, as a product manager, founder or sales rep working in the web industry, one of the best things you can do to up your game is learn how to code.
Code is at the core of web products. Unless you understand how code works, even at a basic level, I don't think you can really understand your product. You can experience the product as a user, but you can't know its limitations, how hard or easy it would be to add a feature or support a customer request, without knowing how the presentation layer interacts with the database, the database stores customer information, etc.
Knowing even just the basics of HTML/CSS, the Rails framework, SQL, web servers, etc. will improve your understanding of how web products get built and enable you to speak and plan accordingly. This, in turn, will make you better at your job and more valuable to your team, even if you're not a developer and don't want to be one.