I do have a programming history, but I learnt the basics of ruby and rails in a weekend! ;)
If you have a talent for design, step it up several notches. Great talent will seek you out.
While the initial code you write might not be optimal you'll at least understand the code, have a clue what to do when something goes wrong and be better equipped to hire technical talent when the time comes.
Lets face it, the web moves very fast, if you take an extra month to roll out, you increase the chances that another competitor will get into your space and will eat up all the market share, way before you even get your product launched.
Ideas are not unique, if you have an idea chances are a hundred other people are already working on that same idea.
So between hiring someone and having a product out in 3 months, and doing it yourself and learning and having it out in a year(if that)...I'd go with 3 months, each and every time. Nothing is stopping you from learning that same code while your app is being built by someone else.
Should you know how to read code? Absolutely, but it takes that much less effort to learn how to read code, compared to writing it and figuring out the hundreds of different technologies.
Lets face it, most of the stuff on the internet is not that innovative. Usually its just a mashup of existing tech/ideas...if that. So you really aren't giving away any state secrets to the people you outsource to. And as long as the company is in USA you have plenty of legal ammunition to prevent them from stealing your ideas.
And maybe outsourcing your business is nuts, but at least when you outsource you have the option of actually getting your business off the ground. Instead of destining it to failure because you really didn't know what you were doing.
As far as having a clue when something goes wrong, once again you are approaching this as a hacker. You know what to look for when code crashes.
An amateur would be much more happier to call/email his development company and have them fix the problem, instead of reading through thousands lines of code to see what could it be, that went wrong.
You do have something with technical talent, but you can always bullshit your way through that, by either hiring a recruitment company or having a few hackers recommend you some people.
using a rented coder has worked in the past--digg was started with help from elance.
http://digg.com/programming/Digg_com_created_for_only_200_00
elance, guru, and odesk offer cheap options to start small.
Don't think that because you can get Hello World! working over the weekend that you're ready for the big idea!
First thing I would do: Create my own website. It doesn't have to be anything special, just a 5 page html-only site. This will make sure you understand the basics of websites. If you're already comfortable with this you could step it up to setting up a blog with wordpress or another content manager. This will give you a brief introduction to databases.
If you already are at this level, great. If not, it will help you to communicate with whoever you end up working with. It also gives you some idea of what's involved and what is and isn't possible.
When you get down to it, almost anything is possible. It just takes significantly more effort if something is done one way and then a change is attempted.
worked once...
Find a coding partner who will partner you.
If you truly have a great idea and the drive, you will be able to find the right person.
Most of the "business" people who whine about not being able to find the right partners are the ones with the terrible ideas and lack of drive.
M
Email me @ gmail.com
University/Work/Church/Geographical Region -- look extensively into your current network of friends, family, colleagues, etc.
Or find someone here.
You could take a 2-prong approach: see how far you get on your own by defining the core functionality: database schema , the CRUD operations you'll be doing (transactional side) and report generation / summary tools you'll need (analytical side). Don't worry about HTML, CSS and javascript, Shoot for something that barely renders in 1 browser (opera or firefox), but you'll have to learn mySQL or postgres or SQLite reasonably well, and it'll tell you how complex the app is, roughly.
Then write up a RFP describing the core functionality, something you could take to a web app developer and they could put together numbers of how many hours to produce wireframes, basic models and controllers and a first prototype.
and, oh yea, do some searching on searchyc.com, reddit, techcrunch, see if somebody's done it already. This is tricky, you may go through dozens of sets of keywords.
If there's one thing I believe in, it's not waiting for other people to help you or cut you a break -- just learn what you need to learn to make it happen.