I'm in the other end of the spectrum, after graduating w/ BSEE I been working in "real world" for couple of years. I see many simple apps that would would greatly benefit users in my industry and many other "real world" ideas.
So, I been trying to learn programming to build these apps (simple commenting/ratings). I been learning PHP/MySQL (mostly from w3schools) but in 6 months I went from a beginner to low-intermediate. I simply gave up because it takes me weeks to write something, that an expert can in hours.
What should I do:
1) keep on learning and do it by myself (not very reasonable)?
2) Hire contractors? (how do i begin? how much to pay?)
3) Apply to YC? (how realistic is it, if i only bring ideas and real world experience)
4) Any of you guys want to partner up? (How would we breakup ownership?)
- If nothing else you'll learn more about how it works, what can and can't be done, etc.
- It'll make you a better manager
- It shows that you have commitment.
But basically it's simply about looking at one problem at a time, seeing how you might solve it, and then moving on to the next one. It seems as if you've chosen to try and grok programming, and have made some progress, but not quite enough. That's good. If you're doing something you're doing more than most people. Now you can move on and try to find a partner or contractor, and they'll be able to see that you've actually tried. you're not just a dreamer with a million dollar idea. That'll give you some credibility.
I just wrote a blogpost about this that might be of interest to you: http://www.maximise.dk/blog/2009/08/dreamers-and-doers.html
And hey, don't give up :-)
- Design the Outline of Application from user perspective
- Pseudo code
- Just Start Coding
- Learn as you are coding
Instead of just learning random things, it's a lot faster to be building something and learning what you need to know at the very given moment. Pick a small app to build, consider it a big example, if it works, you already have a app and you've learned how to code.It's much easier and much more fun when you actually see results. "Look what I built mom"
If you hire contractors, it becomes really difficult. Do you know who to hire? You can't just say "I will pay X for you to make Y" and then assume you're good to go for several reasons. First, there are many flaky contractors out there. Since you don't know that much about programming, you wouldn't be able to determine who is a good programmer and who isn't. Likewise, with programs the devil's in the details. That means that, if you aren't paying much, you might get what your spec is, but won't get the details that make it something worth while.
In terms of what to pay them, it's a hard question. Sometimes quality and price run in tandem, but as I've mentioned, if you aren't so much a programmer, you aren't going to be a good filter there. You kinda have to pay by the hour which is crappy because it means that you don't know what the bill will be, but the other way means that you either pay way more than it's worth or you try to skimp and end up getting a developer that quits a month and a half later leaving you just where you started.
And, well, good programmers have better options than being used as cogs. If you were to hire me, I'd want to be a partner in the venture. And I don't mean in terms of the money even. I'd want to be an equal socially - that we respected each other's opinion, liked bouncing ideas off each other, enjoyed being in the same space working, and meshed like that. That contrasts to many arrangements where someone sees themselves as the "vision" person who is so uber-important and then there's some programmer who's a glorified translator who doesn't have the intelligence and vision to be like you. You don't sound like that type and that's wonderful. And project management and prioritization and all that detail work takes a lot of time and you can do that.
--
That brings me to another point. Ideas are cheap. Everyone has ideas. Few can execute. When I used to freelance, I'd get people coming to me with ideas all the time. None were that original (I remember one person pitching an idea of "MySpace, but for bands" seeming not to realize that MySpace is already for bands). Facebook didn't become big because they had an idea for a social network. Many had tried before. Facebook became big because their implementation (from the layout of the pages, to the features added, to the annoyances removed, to the architecture that was fast and didn't fail often) worked well. Heck, Gmail is so loved simply because of implementation. Email was a very well defined and well adopted system. Google just made it fast, a joy to use and reliable.
And you can help out somewhat with the implementation in terms of layout, design, and features, but ultimately you need someone really smart at implementing solutions if you want something good.
--
Right now, I'd go with #1. Keep learning at least enough that you can filter programmer abilities. Until you can tell a good programmer from someone who talks a good game, you should learn. It's easy for someone to say that they know OO PHP, but most people who say something like that can't tell me what a reference is. It won't eat up too much time and you might find that your learning curve hockey sticks and you don't need outside help.
If you do need outside help, you'll be better equipped to get good outside help rather than being stranded with someone crappy. YC (and other similar programs) are good, but work best when you have a partner. If you're going to take on a partner, make sure they're who you want to be working with and don't be too proud to put them on an equal footing. You don't want someone who is an inferior programmer and the good programmers want a nice happy relationship, not something that feels like a business deal that they're on the short end of. And really, when businesses succeed and people like each other in the business, money is plentiful enough that you'll be happy you enjoy the people you're working with rather than dreading dealing with them.
Good things usually don't come out of negativity. If you want to create something great, you have to treat people like they're great. Then you get the best people, they do the best work, and everyone is happy. I'm not saying you have to give someone more than their due, just that if you decide you're going to hire a programmer for $10/hr you'll get what you pay for - they'll resist the work, make crap, and be of low ability.
Good Luck!
If you're good at business, do what good business people do--design product, hire talent, scare up money, and bulid relationships.
Anyway, you're an engineer; you can learn PHP. Trust me when I say that many people much, much dumber than you already have!
2. When I began my web startup http://www.bidrealm.net, I decided to outsource the programming work through hiring a contractor that I found on http://www.elance.com. Here you can post what it is that you want to create and have people from around the world bid on your project. Here are some tips. Make sure you give your programmer example websites that resemble what you are looking for, with specifics. Only pay your programmer in increments as they complete phases of the project (you can do this electronically via elance.com). Before you hire a contractor, get a full statement of work, that shows exactly what work is to be completed. Us the website's Private Message Board for all communication so that what is said and done is all documented for your safety. Ask a of questions and give the contractor as much detail as to what you want as possible. Check out the programmers posted work on the elance site, and check their references as well. And lastly, you will get the best deal by hiring programmers located in India and China. I hired my programmer from Mumbai, India. He is great, professional, and works for a large reputable company that also has offices in New Jersey, and I saved $45,000 on the programming cost, as opposed to hiring the company I was working with out of Cincinnati, OH. Depending on the magnatude your project, you should pay no more than $10,000. I paid $4500.
3. I would definately apply to YC. I think that Paul Graham and his team can see the potential in you as a person, as well as your idea, and how well you understand it, its opsticals, and how you can overcome them to make your idea a great competitor. It is not required that you be a programmer. A great idea, and real world experience to better understand that idea and how you can develop it, many be a greater asset than being a programmer alone. You can take you and your idea and experience, and plug in any good programmer, and make the startup happen. But if you have just a programmer, and dont have you with your idea and real work experience, the startup goes nowhere.
4. If you're interested in partnering up. Let me know. Again, I am not a programmer, but I have gotten a starup off the ground without it, though learning, hard work, dedication, research, and utilizing resources. And my company is debt free right now, with not investors except myself. Contact me at lorenzo.dickerson@gmail.com if you have any more questions.
It's easy to see some of the cool apps and want to jump from Hello World to a production system, but programming, to me, has always been about incremental improvement and refinement. If you're having problems with more complex parts, try doing some research into what other people have contributed to the problem domain. Also, things like Yahoo pipes and other tools can help take some of the boilerplate burden off.
If you want it, keep at it. You'll learn a lot, probably make some new friends, and the community will be better for it. Best of luck.
I think you have pretty good changes to find an okay programmer, if
a) you can bring more than just the idea to the table. There are tons of people with "ideas", but if you have something else in addition: existing customer contacts, excellent graphic design skills or proven sales or marketing skills, you are bringing something valuable to the table.
b) you are able to reduce the scope of the initial product enough so that it can be done in a few weekends. Skilled guys already have their projects. If your initial project is small enough, you have much higher changes to get someone good as your partner.
c) you pay something upfront. It doesn't have to be market-level price, even a small amount is good if you are also sharing revenues with your partner. It just shows that you are committed.
The hard part is spotting a good enough programmer, otherwise you end up with someone that is just building crap. And this is the area where learning a bit of programming and hanging around on programmer forums can help a lot.
If you're looking to do this relatively soon, then I'd recommend picking one area of development, such as HTML/CSS and focusing more effort on that so that you can contribute effectively to building the project when it's just the 2 or 3 of you.
One of two things will happen, eventually. 1) you will actually build it. 2) you will meet someone who you get along well with, who will build it with you.
If you're looking for the shortcut, i don't know.
I don't know what to say, I love online learning, and really try to make the most of open source communities and irc, but I've always found it a bit... "Glass Bead Games"?
2. Most hackers don't respect those founders that don't throw down code. Your best bet is to be ready to get dirty and throw down.