Programming for Non-Technical Founders – Part 1

This series of posts is an attempt to introduce non-technical founders to programming. I’ll take you through building a web application (specifically, a Hot-Or-Not style picture voting application) step-by-step, including the front-end, the database, and online hosting. No programming experience required. Before I go on, let me anticipate and answer some questions:

Will this make me an expert programmer and eliminate the need for a technical founder?

Probably not. The goal of this series is not to make you a self-sufficient programmer, but to give you a flavor of what programming is, how programmers work, and the components and decisions that go into building a functional product. This tutorial will proceed at a faster pace than most programming tutorials, and you’ll have something tangible and useful by the end of it. My hope is that you’ll get excited by the possibilities programming creates for you and go on to properly learn a language and build something unique.

Wait, what? If I won’t be a programmer after this, what’s the point?

Having an understanding of the programming process is useful, regardless of whether or not you actually write code. You can understand the technologies your developers are using, have a better sense of what’s possible and in what timeline, specify the product more completely, and generally know what the hell is going on.

Ok, so what will I learn?

By the end of this tutorial, you’ll know what terms like “framework”, “application server” and “database” mean, and what the components they refer to are used for within a web application. You’ll understand what sort of security issues websites deal with and what it takes to build an app that supports a thousand users vs one that a supports a million. Of course, you’ll learn some programming along the way and have a platform upon which to expand your knowledge.

It looks like you’re using Ruby, but at my company we’re using PHP/Java/Python. Will this still be useful to me?

Yes! Programming language and environment selection is a very small part of programming. The general concepts are the same across most languages, and many of the other components (the database, for example) are independent of language. I chose Ruby because it’s easy to read and learn, very popular, has great tools and a helpful community supporting it, and most importantly is powerful enough that you can continue to use it for serious development projects.

Interested? Good! One last thing though…

I’m going to be making some assumptions about you. I’m assuming:

  • You have no programming experience at all. If you’re already an expert programmer but have never done web development with Ruby before, you may find this slow, but useful. If you’ve already done web development, move along, there’s nothing to see here.
  •  You know how to use computers. I’m expecting that you know how to install applications, copy files around, and do other basic computer-related tasks.
  • You’re intelligent and motivated. Programming is hard, and even if you follow the instructions on here perfectly, things are still likely to go wrong. I’m expecting that you will spend the time it takes to Google around and ask friends to help you solve the problems that will come up during the course of this project. There’s no better way to learn this stuff,
  • You’re using a Mac. Ok this is probably a bad assumption, but to keep this tutorial from exploding I have to assume a certain development environment. I chose Mac OS X because it’s the environment that many Ruby developers use, it’s fairly standardized, and it’s easily available to me. If you’re using Windows and can manage to get your environment set up on your own, you should have no trouble with most of this tutorial. If you’re using Linux, I’m sure you’ll figure it out.

Still here? Ok, then let’s get started. In Part 2, we’ll set up our development environment so we can get to writing code!

Questions? Feedback? Rant? Leave a comment!

  1. No comments yet.
  1. No trackbacks yet.