I have all of these ideas for a startup burning inside me, but with no real programming skills and no partner (yet) I feel trapped. Is it worth my time to teach myself programming? Any advice would be great.
I'm going to offer an alternate point of view from some of the other comments (I'm a programmer and am studying CS in college).
Do you think if you gave programming an honest shot, you'd sincerely like it? If the answer is "no", then forget it... don't learn how to program. Instead, find a programmer who likes your ideas and is willing to implement them for you, as an equal partner. This may be tough to find, but that's what you have to do.
Ideas have tons of value. In my opinion, ideas are insanely important. The best-engineered, slickest, cutting-edge application isn't going to make a flipping cent unless the user-facing features add value. And these features can be formed from ideas that ANYONE has - not just programmers. Don't think that you have to be a programmer to have great ideas; that's utter bullshit.
That being said, I think you do need to know your way around technology, because as a lot of people say you need to know the options; what is feasible, what is not feasible; what powers and raw functionalities you have at your disposal. Read Wikipedia articles about things like AJAX, server-side computing, search algorithms, social computing, etc. Watch Google Tech Talks about whatever sounds cool to you. Try to figure out what the current state of technology is - in terms of functionality and capabilities - across the CS/software board. You don't need to be a programmer to do this. But don't struggle through concepts that you find boring; read about stuff that seems cool and interesting.
The bottom line is, do what you love, period. Yeah it's cliche. But if you take up an activity because you care about the end result, and not about the journey, you're going to end up frustrated and will probably just give up. Whatever you're passionate about, do just that, and find someone else who's passionate about the rest to work with you.
But you should give programming an honest shot anyway, to find out if you like it. It's cool stuff.
> Don't think that you have to be a programmer to have great ideas; that's utter bullshit.
While I wouldn't say that you have to be a programmer to have good tech startup ideas, I wouldn't say that it's completely false either. Empirically there's a clear trend: most of the most successful startups were led initially by hackers. (And the most notorious flameouts mostly weren't.) It makes sense that people who understand a medium will have the best ideas for what to do with it.
No way -- plenty of flameouts were led by hackers, too. On top of that, the reason we've heard about the "most notorious" flameouts is because they actually knew something about marketing!
I'd bet that the vast majority of successful companies start with a problem, and then ask "how can technology help me solve this problem?" Sure, there are notable exceptions that worked backward, e.g. eBay, Amazon, Viaweb. They saw the inherent potential in a technology and asked "what problem can this technology help me solve?" And, no doubt, if you can pull that off, you're probably more likely to hit one out of the park rather than "merely" build a sustainable business. But most of the stuff that programmers build these days are solutions for non-existent problems.
I'd go so far as to say that, often, those who best understand the medium have the worst ideas of what to do with it. The more time they spend on the nuts and bolts of the technology, the less time they spend exploring other domains, where they might find more interesting and mainstream problems.
> On top of that, the reason we've heard about the "most notorious" flameouts is because they actually knew something about marketing!
Interesting point. I never thought of it that way. When a company is run by hackers, they usually only get publicity once they've created a product worthy of it. By that time, they're most of the way to success. Whereas when you have marketing guys at the top, the publicity comes when the company is less mature. So the perception that companies run by marketers flame out more often might be partially a result of selection bias.
"It makes sense that people who understand a medium will have the best ideas for what to do with it."
I think it makes sense to differentiate between ideas and style. For example, many of the most famous guitar players / trumpet players / musicians in general were self taught. I heard an interview with James Taylor where he said he doesn't even know how to read music. And Miles Davis only played like he did because he learned on a broken trumpet.
(This isn't meant to be a metaphor for hacking, but rather to point out that there is something called style that exists outside of the cognitive layer.)
It makes sense that the guys with the most interesting styles were the ones who were mostly self-taught.
At the cognitive level, it makes sense that the guys with the best ideas are those are
A) most familiar with the medium.
B) Familiar with other similar mediums they can draw from.
But a lot of people don't make their money through novel ideas so much as taking other people's ideas and adding the sex. Which seems to be more of a style thing than a cognitive thing.
I have an (utterly unsubstantiated) theory about this. I think that startups started by people with a business background have a BETTER chance of SOME SORT of success than startups started by hackers.
That being said, I think that businesses started by hackers have a greater chance for spectacular success (which is the empirical evidence that I think you're talking about-- and that kind of success is the only kind most VCs (or press outlets or bloggers) really care about or want to talk about.
In other words, business people are more equipped to solve the problems that assail most businesses-- and slog through to some sort of success/profit. Hackers, on the other hand, are more apt to ignore these problems or attempt do something revolutionary.
When biz people try to emulate hackers and aim for these revolutionary victories, that's where you often see the flameouts that you're talking about.
As PG has stated in his essays, it's much easier for a smart hacker to learn customer support, accounting systems, marketing/blogging, than it is for a non-technical person to pick up hacking in a few days.
Non-technical founders tend to overvalue:
- their lovely snowflake of an idea
- their business plan (that it will magically cause investors to beat a path to their door)
Things imho that can be hard for a hacker:
- sales
- finding and/or dealing with investors (getting into Y Combinator definitely seems to help here, but what if you don't make the cut?)
If I could find a non-tech guy who can successfully raise angel and/or venture capital money, I would totally partner with as a co-founder in a second. (given a good fit, etc)
These people tend to be hard to find though (the Steve Jobs' of the world) -- if they can raise money, why don't they just raise a round and hire a talented hacker at 1% equity instead of 30%? =)
digg.com would be the most obvious. Kevin Rose studied CS at college, but it had been a while and he didn't really have the skills to execute his vision quickly and simply. So he paid a developer he'd met through elance 200 buchs to write the first beta of digg. digg is now the most popular social news website.
Outside the world of startups, there's a bunch of established companies that weren't led by programmers.
Microsoft's success is largely based on business acumen - their OS monopoly came from Bill Gates' ability to purchase QDOS and sell it to IBM.
Steve Job's is also a non-programmer - the success of Apple is his vision and the ability to direct people to achieve that goal.
"Steve Job's is also a non-programmer - the success of Apple is his vision and the ability to direct people to achieve that goal."
Well, that and Wozniak's 1337 skills at hacking.
The real benefit of having a great hacker cofounder isn't the work they do themselves. It's that they can recognize and attract other great hackers to work for them, and that they're respected enough that those other hackers will give their best effort and not cynically slack off. You think that Jobs could have attracted Burrell Smith and Bud Tribble and Andy Hertzfeld alone if they weren't working with Woz? Or that he could've hired John Lasseter at Pixar without Ed Catmull and Alvy Ray?
Yes, I believe Jobs certainly would have attracted Andy Hertzfeld without the Woz. Both Jobs and Hertzfeld are passionate user interface designers, with a strong awareness of typography and user experience. The work Jobs have Hertzfeld was in an area Hertzfeld already cared deeply about.
I'm not familiar with the other developers you've mentioned.
I'll first say, there really is no substitute for an early startup with knowledge programmers working together(simply there is a time and cost advantage to it). That aside, it should not be the limiting factor, that causes you to pack up your bags on an idea you have.
I think a co-founder who puts as much effort in learning the industry and what goes on in the scene is still a valuable asset to have in a startup. Friends or people who just through out armchair ideas and can't match their ideas with whats going on in the industry don't add much value. But when a person knows his idea and knows the industry he can continually add value (beyond the technical level), and when your idea starts to change course from the original (which it often does with startups) he'll be able to adjust quickly with it.
But like trekker said, enjoying and being passionate about the industry will show to your co-founder programmer that you add value especially when you can continually surprise him by showing your still a step or two ahead of him about whats going on in the industry.
Nice post. I'd just say that the best way to learn what options are available is probably not studying like a programmer would on Wikipedia or tech talks. The best way for a non-programmer to do this is to find pieces of other technology and say to their hacker founder "Let's do X like that!".
> Ideas have tons of value. In my opinion, ideas are insanely important.
Ideas are also a dime a dozen and everyone has great ideas. Execution is the hard part. And if you don't learn how to do it yourself, you will always have to rely on someone else.
Code is the most valuable component in a tech startup during the early stages. If you can't produce it, you're value to an early stage startup is low. It's that simple.
Ideas have little to no value. Execution is what separates the winners from the crap, and the Facebooks and MySpaces from the thousands of other social networks built by no name coders on eLance (at any given time there are dozens of listings for wannabe development).
That said, MySpace was made by non-hackers. So was Digg. Bloglines was partly created via eLance contracts (though Mark Fletcher is nerdy enough to pull things together in ways that a non-nerd might not be able to...the same is probably true of Kevin Rose and Digg). Maybe you need to hire your development work.
Or, you could learn to code enough to make yourself valuable. Great web designers are every bit as important to the equation (and a weakness in most developers...so if you bring good design, you may be able to find partners far more readily).
I am not sure if you have heard of digg's other co-founder Jay Adelson (http://www.spock.com/Jay-Adelson). Jay started Equinix, that does require some technical skill
He did farm out the work to a random person on ELance (for $2k), his name is Owen Byrne. But he's a Canadian I think, so maybe "nearshore" would be more accurate.
Nearshore is also wrong because there isn't a shore between Canada and the US. The term is "outsourcing" to anyone in the US and Canada. If it's to another continent, then it's "offshoring."
Or, we could stop being xenophobic and call it all outsourcing, and leave "offshoring" to refer to things that have been moved out of the US specifically because doing it on this continent would be illegal or impossible, like gambling, drilling for oil, etc.
Hiring someone else to do remote work is agnostic of location (in general). So, the term "offshoring" seems likely intended only to confuse or inflame the reader based on politics rather than facts.
"Offshoring is defined as the movement of a business process done at a company in one country to the same or another company in another, different country. Almost always work is moved due to a lower cost of operations in the new location. Offshoring is sometimes contrasted with outsourcing or offshore outsourcing. Outsourcing is the movement of internal business processes to an external company. Companies subcontracting in the same country would be outsourcing, but not offshoring. A company moving an internal business unit from one country to another would be offshoring, but not outsourcing. A company subcontracting a business unit to a different company in another country would be both outsourcing and offshoring."
So there is a small semantical difference between the two, offshoring is broader.
Edit: Offshoring is not necessarily broader than outsourcing, except offshoring applies to internal and external business processes.
If you have a Canadian make a logo for you, are you offshoring? NO--there's no shore by my definition, and there's no moving of an existing process according to Wikipedia.
I think for startups, outsourcing is the best term to use.
In this case the distinction between outsourcing and offshoring gets fuzzy because making the logo was not something that was previously done by Kevin Rose's company, because Kevin Rose's company didn't do any internal logo development or hire any local companies to do logo development. I don't think a correct use of the word offshoring requires crossing an ocean, it seems to be accepted that it just means a different country, even if the word itself doesn't imply this meaning.
I'll agree that outsourcing is a more appropriate term, I used the word offshoring in my initial post without thinking because I thought (incorrectly) it was less politically charged than outsourcing. I'm going to agree with SwellJoe and say that there's something inherently xenophobic about the word offshoring.
You guys. We all know you are all super intelligent and well educated, but this is exactly the problem that comes with being too smart. You make things a bit more complicated. Outsourcing = letting a third party handle a piece of your production. Offshore = outside defined geographical limits. The expression is offshore outsourcing.
"... this is exactly the problem that comes with being too smart. You make things a bit more complicated. Outsourcing = letting a third party handle a piece of your production. ..."
Your mistake is equating development to production. Making software is difficult because designing upfront and then expecting the result to reflect "what users want" is an oxymoron. Instead think "just-in-time" design and creation of a software product in very close communication with users.
'... total outsourcing leads to delayed and inferior products due to human factors and mis-communication ...'
The real "value add" here is being able to "optomise employee face-time" with your "unit profit generators" (users) through "space-time" savings of costs per "CSM" (cubicle square meterage), delivering superior "user expectations".
Outsourcing in this context is just another business fad. Feel free to insert your own business "Buzz words" in place of place of the ones inserted.
With all due respect for your accomplishments, next time you want to generalize that people are xenophobic, please speak for yourself.
Nobody made any value judgements on either word. It's quite clear the word offshoring doesn't make sense for United States companies outsourcing to Canada or Mexico, just like the Germans can't offshore to France. However, Italy can offshore to the United States and vice versa.
Maybe I'm wrong about the semantics (people are free to vote the post up or down), but it's not fair to imply that rms, staunch, or I feel there's anything wrong with people who live in other countries.
"Maybe I'm wrong about the semantics (people are free to vote the post up or down), but it's not fair to imply that rms, staunch, or I feel there's anything wrong with people who live in other countries."
I didn't intend to imply that any of the other comments were xenophobic in nature.
It's just a more sensitive area than anyone here would like to admit, and there are political motivations at work in the use of these terms, and by following the lead of xenophobic folks, we might be working for their political ends despite not having those desires ourselves. I'm actually assuming that the vast majority of people here are educated and lacking in bigotry or xenophobia, and based on the number of startups started by non-US natives in the current web 2.0 economy, more likely to be literally "off-shore" than most English-speaking community website contributors.
In short, I was merely wanting to point out that by using the word off-shoring, people might be indicating political positions they don't endorse (which is just what anti-immigration and protectionist supporters want). I don't really care what terms folks use, and I'm wholly non-PC. I just know enough to know that there has been a subtle shift on border issues in the US in a direction I don't like at all, and I know that language is a tool that the reactionary new Right uses extremely well. I'm not saying the word "off-shoring" is the reason immigration or import/export issues are about to become a shitstorm in America, but I can't help but think Fox News would rather I use "off-shoring" than "out-sourcing", because "off-shoring", in some Americans minds equates to "non-white, non-American, workers stealing my job". So I'll use "out-sourcing", thanks.
Apologies to rms, staunch, or vlad, for any hurt feelings. Just remember that I'm an insensitive clod, and I'm sure you'll feel better. ;-)
Why not just learn to hack? If you start out small and work with bite-sized pieces and good tools, you'll see its not as difficult as you might think. I'm a firm believer any smart person can be good at coding if they are determined.
My advice is to pick up an intro book on Python and start with basic examples. With a little work, you'll be building cool stuff in no time.
"Learning how to hack", Is like trying to get someone with a "junk food diet" to become a "gourmand" by learning how to cook.
Hacking is a mindset and while you can learn to be a hacker ~ http://catb.org/~esr/faqs/hacker-howto.html I just can't help but think some are born with the hacking gene(s) (if there is any) and some are not.
It goes to the core motivation. Is it just the money? Or it it, hey I can also make money doing this? If you are not into technology, software, building there is always real-estate.
I was in the same position as you literally two months ago. Since then, I've brushed up on HTML, learned CSS and Javascript (somewhat), and am learning Ruby on/for Rails. In retrospect, I would learn RoR concurrently with the others.
I would definitely advise you to learn some programming, since even if you find a partner, he/she may not have the same drive or take on problems that you do. Knowing a little bit about hacking, even as an amateur, will enable you to go further than you would otherwise.
I think that is excellent advise, thank you! If you have come across a link that explains what each language's advantages are for web-development, please share.
I'm in the same boat - a recovering 'ideas guy' who buckled down and actually learn to hack over the past year or so. (One of the best decisions I've ever made. Though, granted, I developed a real passion for it.) I'm enjoying Ruby/Rails, but will probably check out Python next, because so many smart people seem to gravitate to it.
BUT, that said, I'm going to commit hacker heresy and recommend that you consider starting with Javascript. Here's why:
Hackery reasons:
- it's how I learned object-oriented programming
- it's how I learned functional programming. (well, ok, a little bit of Scheme helped, too.)
Practical reasons:
- in any project, no matter what the backend is, you're always gonna need JS on the front end
- with the rise of rich UIs (ajax and whatnot), people who really know their JS are in demand, and it's a niche that most hackers don't focus on
- you can learn from studying thousands of other real-world programs. (when you see something cool on some website, just pop open the hood -- or, rather, pop open firebug -- to see how it works.)
- it's the layer that's closest to the user. this forces you to keep everything in context while you hack.
- you said you're a good listener. empathy is key to UI design, so you might find this to be a good place to mix your strengths with code.
Ok, now all you real hackers can tear me apart for recommending a toy language. ;-)
The advantages/disadvantages for each language have been discussed here and elsewhere ad naseum. To tell you the truth, I didn't research the language decision too much; my rationale for choosing RoR is based on the fact that we have a R(oR) meetup here in State College, PA; that's why I decided to learn that.
In fact, the decision is not (totally) settled yet. My brother is a web developer with five years experience. He is pushing me towards php on Zend (PoZ?), a php web framework authored by the authors of php. For now, however, I am trying to learn RoR just in case he is not able to help me with PoZ.
That being said, I heard that RoR and Python (maybe on Django) is the best for newbies to start with as far as web dev languages go.
Start by drawing your ideas on paper in detail. You don't have to be an artist because it's not going in a museum. If you are thinking of making a web site then draw it on paper, page by page. Describe exactly what happens when user clicks each part of the page. Every page, including the login page and about page. Every single page, every single clickable thing, draw it and label it. The more detail the better. You should have enough detail on those pages to be able to hand to someone without saying a word and they will be able to read it and understand it. That level of detail.
Then pay a web designer a few hundred dollars to turn your pages into a static mockup. Static meaning it doesn't actually work yet, you can't login and do stuff, you just look at it. It's just HTML and graphics. It's a facade.
Next you can either pay programmer anywhere from a few hundred to few thousand dollars and wait 3 months for them to build the functionality behind the facade or you go learn HTML, javascript, ajax, and PHP (the easiest programming language for novice web devs) and build it yourself.
I have to disagree with all the hackers in this discussion. Code is super important, but a startup is still a business. Business is a team sport that requires many different talents. If you can't code move out to San Francisco or someplace where startup congregate and find a startup that needs your talents whatever they may be. Learn the ropes and meet people. Repeat. Thats what I did. There are lots of non-technical people who have done well this way. Read Mark Cuban's posts on motivations. He was non-technical and kicked ass.
I moved out to SF as a non-technical biz guy two years ago and now I run a VC backed startup. It can be done.
There are so many reasons to give up, and "I can't program" is one of them. "I'm too old", "I'm too inexperienced" seem to be a couple of popular ones.
There are advantages and disadvantages, and I admire every person who decides to put everything he/she has into it.
That said, we don't have to work this one out through logic - we can look out into the world and observe. Think of the top ten start-ups that IPO'd or were bought last year, and take a look at the bio's who founded them. The numbers don't look good for founders who can't program.
Thing is, hacking is something you can learn to do. You can't make yourself younger, or taller, but there's nothing stopping you from downloading ruby (or, if you have a mac, opening a console) and get to it.
It does take a while to learn to program - but if it didn't, then it wouldn't be much of an advantage.
If you really don't want to go through it, there are certainly some notable successes for non-programmers. If you can add a lot of value as a founder and help make a lot of people successful, then go for it.
Questions like that sometimes keep me up at night. There are so many things I'd like to do in life, but not nearly enough time to learn how to do them all.
I agree that you should at least learn a bit of coding. That said, there are many code monkeys out there (like me) who need business partners who can are arty and/or can run a business. Coding isn't the only thing required to run a start-up (I think :P).
Out of curiosity, what do you consider your strengths (aside from ideas)? Design? Marketing? Accounting? Writing? All of these things have a place in a software startup. If you're good at all of them, you're golden (because most hackers decidedly aren't).
But, at the end of the day, the most expensive and time-consuming thing that software startups need from the outset is software development. Other than design, there's not a lot of need for other skills before you manage to create a product that people want to have.
But I'd echo the sentiment mentioned elsewhere. Dabble in programming and see if you're enjoy it. If you don't, focus on your strengths.
My strengths are the ability to grasp technical problems, act as the face of the company (lead meetings with investors, presentations, hiring), and more than anything, I listen well. That being said, I'm definitely looking forward to contributing to a significant amount of the content and design.
You should learn as much programming as you need to but if you find that it's not your strong suit then there are other options. Besides being the "business guy" in a startup, you can probably work on finding people who are passionate and fill in their holes. Chances are that someone is working on something similar enough to be useful to you. What you can do now is approach these people with one of your ideas, show them how you can reach mutual benefit and coordinate efforts so that you can get together all the people you need to make something great.
I think learning code (even HTML and basic queries) is helpful. While I don't code per se, I'm familiar with what code can and can't do, and it's been invaluable in growing many companies.
Keep in mind the advice you're getting here is relatively slanted toward programmer-centric minds.
Try posting it on LinkedIN answers and see how your responses vary.
Find a co-contributor. Carigslist etc. Put out an ad on the gigs forum. As a dev coming at it from the other angle. I have the skills but not many business ideas. But I also have clear ideas what I'm willing to work on.
If it's just a copy of something existing then don't expect many replies. But an exciting new idea would have many responses.
Ok. I have been wanting to post this question myself. I can solve problems in C and am good with logic. I can also do some HTML. But when it comes to interfacing with the web and real world applications I just don't know where to get started. Things like databases, libraries and API puzzle me.
Web applications, databases, and APIs are all really very simple. An api is just a collection of functions (or ways of calling functions) someone else wrote. A database is just an api to store tuples. A web application is just a program that listens on a TCP socket for HTTP requests, and responds with HTTP responses.
You can write your own web server in a couple hours, even in C. It won't be any good, but it's a fun confidence building exercise. Then learn Python or Perl or Ruby or Lisp or some language with non-sucky strings, install Apache and mod_python/perl/ruby/lisp, and point it at your script. Voila, instant web application! There are plenty of step-by-step tutorials online.
I was in a similar situation to where you are before I started on Kiko Calendar - I'd never written a web application or used a database or api before in my life. Thanks to the internet, I could learn how in a couple months. You can too.
This is the book that got me into web publishing back when I was like you. It is, as I said, slightly obsolete, so when you finish it you will be an expert on the cutting-edge Web technologies of 1998 (e.g., Oracle). But the step from then to now is not as large as you think. (And, to be fair, the online version of the book has been revised a few times in recent years.)
There is also a New and Improved book that covers much of the same material:
I haven't read this myself, and I believe that (as a textbook for an MIT course) it may be geared more toward hard-core hackers than the earlier book, which was intended to be readable (or at least skimmable) by non-programmers.
The advantage of these books is that they provide large-scale perspective. I didn't know what a relational database was when I started the book, but I sure did after I finished.
The first step is to inventory your assets. What value would you bring to
a hypothetical startup? You're not (currently) a coder. What about
business, marketing and sales? If you can become strong in one of these
areas, you provide value.
Can you project a profitable business from one of your ideas?
If your only contribution will be your ideas, they'd better be valuable. Valuab
le ideas are generally new solutions to existing problems. As such, they're usu
ally patentable.
Coding is a lifestyle. You can learn how to code. Anyone can. But by the time you have learned enough to build your idea, it will have become obsolete. get a co-founder maybe or hire a firm to do the work for you and take it from there. You are less likely to succeed, but at least you will not sit down some day and say "I should have tried". Take it from a suit.
Now taking this question from a different angle... Suppose the striving programmer has chosen to start learning python.
What steps would you take to start (are there any one click installers like there are for ruby? other things? tips for beginners). If you were doing it again, what would you keep in mind?
We are working on an easy-to-use web app creation tool, and we're looking for real use cases to test out our system. Drop me an email, if you want to chat. If an idea of yours is a match for what we do, we may just implement a prototype for you.
Do you think if you gave programming an honest shot, you'd sincerely like it? If the answer is "no", then forget it... don't learn how to program. Instead, find a programmer who likes your ideas and is willing to implement them for you, as an equal partner. This may be tough to find, but that's what you have to do.
Ideas have tons of value. In my opinion, ideas are insanely important. The best-engineered, slickest, cutting-edge application isn't going to make a flipping cent unless the user-facing features add value. And these features can be formed from ideas that ANYONE has - not just programmers. Don't think that you have to be a programmer to have great ideas; that's utter bullshit.
That being said, I think you do need to know your way around technology, because as a lot of people say you need to know the options; what is feasible, what is not feasible; what powers and raw functionalities you have at your disposal. Read Wikipedia articles about things like AJAX, server-side computing, search algorithms, social computing, etc. Watch Google Tech Talks about whatever sounds cool to you. Try to figure out what the current state of technology is - in terms of functionality and capabilities - across the CS/software board. You don't need to be a programmer to do this. But don't struggle through concepts that you find boring; read about stuff that seems cool and interesting.
The bottom line is, do what you love, period. Yeah it's cliche. But if you take up an activity because you care about the end result, and not about the journey, you're going to end up frustrated and will probably just give up. Whatever you're passionate about, do just that, and find someone else who's passionate about the rest to work with you.
But you should give programming an honest shot anyway, to find out if you like it. It's cool stuff.