> [...] or learn how to code yourself. It's not that hard, and if you think of startups as a career, it's a great skill to have even if you just manage tech people.
I disagree strongly. Coding is a great skill and just about everyone should be familiar with it, but telling starry-eyed entrepreneurs they can learn to code well enough to launch a successful tech startup on their own in a short timeframe is extremely misleading. Coding and design are the core competencies of any tech/web startup, and you can't hope to succeed if you're essentially an amateur at your core competency. Because the fact is, coding may not be hard, but coding well and being responsible for the software infrastructure of a successful project is hard and isn't something you can pick up overnight.
By all means, learn to code. It will help you in innumerable ways, and maybe after a few years of practice you can start to think about launching a cool project on your own. But don't be deluded into thinking you can pick up "Ruby for Dummies" and have a hot new web startup 6 months later without some real technical expertise.
It's important to note that the author of that article said he had a degree in Physics: that's a quantitative discipline, and he very likely had to write code as a part of it. It's very likely he is underestimating the advantages that gave him over an Russian Literature Major (to quote Rands) or even an MIS/CIS major.
If you look at a good undergraduate CS program, you'll note that majority of is going to be general skills relevant to any sort of scientific/engineering work: e.g., there may be at most a single programming course in the entire freshman year. That drove me crazy as an undergrad ("when do I get to code, why am I doing all these proofs with Greek symbols?"), but it taught me to reason and think in a rigorous manner.
Of course professional programming experience also teaches you about things such as debugging, release engineering, configuration management and operations; all of these are crucial but are more about being able to scale and iterate upon a basic product, rather than discovering what the product you're building should be.
Lets see.....i am 30yrs old, worked in marketing for a fortune 50 company and worked as a trader. Started Jan of this learning to program.......Ruby, rails, Javascript and until about two weeks ago Dojo. I enjoy it thoroughly, its like i am sitting down to watch Lord of the Rings. I am by no means find myself worthy of been called a programmer, but i started developing a little cellphone app targeting developing countries, its going really well, still coding it.
What i found is that there is so much help, so many places to find the answer if u can research. Just reading the source code, Readme docs, chat rooms, is so much help. Cookbooks, tutorials by bloggers are all helping me along. Also, you can create so much with just a little technical skills. At the end, you still have to run a business, be a hustler. So when i launch my little application, i will try and get some talent on board as well(if i am lucky). The key is to achieve a lot with a little.
I almost forgot......Google developer tools, has sped up my learning so so much, reading the source code of websites and looking at all the scripts. Its just amazing the resources available today vs 5yrs ago.
Would be great if you could give a little insight how exactly you started (which books, online tutorials... ) and in which order. Would you have done something differently?
and go ahead and build your first web application. You won't know Javascript yet, which will seriously limit the slickness of your interface, but that's alright for your first effort. These guys supposedly make deployment really easy:
http://yuiblog.com/crockford/ (download with netvideohunter firefox extension and watch sped-up with vlc, [ and ] keys control speed. I wish I'd taken notes.)
There are a lot of services on the internet that will convert PSD (photoshop) documents that 99designs guys make in to xhtml and css for a few hundred dollars. So you don't have to go deep in to design if you don't want to.
I wish I'd installed Ubuntu and learned to use the command line earlier; otherwise I wouldn't have gotten frustrated when trying to install software. I'd say once you've got Ubuntu running, read everything under Linux on this page:
Normally you want to be learning things on a just-in-time-basis, so you're learning something in order to apply it to some project. But system administration isn't like that because you don't know what you need to know.
As for regrets: I think I would have learned a lot faster if I'd given myself designated study hours. Probably half an hour a day to start, with gradual increase. Also, I shouldn't have been so hesitant to register for accounts and ask questions on forums, IRC channels, etc.
I disagree. Coding is required for understanding the underpinnings of web-based business. You don't need to be great at coding, amateur skills provide a huge insigt about how to manage programmers.
If you have no coding ability whatsoever, you have no understanding of a major part of your business, and you will not have much a clue when hiring programmers about how skilled they are. So you'll end up hiring people that sound good, not are good.
Oh, don't get me wrong. I think all founders should know how to code. But I think the notion that an amateur coder without real experience can launch a successful tech startup on their own is naive. You really need someone, either a co-founder or employee, with real technical knowledge and experience.
I think the assumption that coding will be a core competency & the company's success hinges on its quality is not necessarily true.
Think of betterworldbooks.com. I'm sure that code is very important to them. They probably have great programmers working there. But, going to campuses, exciting students and organising fund-raising book collections is probably more their core competency. Zappos needed great software, but it wasn't necessarily technical prowess that made them successful, their customer service seems to the the credit. There are many web startups which are e-commerce companies at core. AirBnB, from what I read, is an impressive startup, but the problems they solved to get it going where not primarily technical. They are taking advantage of opportunities that technological advancements have created and have big, important technological components to them (compared to restaurants, shops, dental practices..), but they are not pure technology companies.
Being an amateur level programmer (can code an e-commerce site) could let someone have a go at a lot of potential ideas. You probably can't be Google or Paypal but you might be a Woot! or something.
> Because the fact is, coding may not be hard, but coding well and being responsible for the software infrastructure of a successful project is hard and isn't something you can pick up overnight.
This might be a good place to point to Peter Norvig's essay Teach Yourself Programming in Ten Years -- http://norvig.com/21-days.html
Yes, that is one of the first articles i read along with....Hot be a Hacker - Eric Steven Raymond, Great Hackers and Undergraduation-Paul Graham. I agree with the long-term approach or 10 000hrs according to Outliers-Malcolm Gladwell. Also in Talent Is Overrated-Geoff Colvin, you get a good idea on how to become an expert/outstanding performer in any discipline. But....
In Entrepreneurship(Particularly web apps), i disagree that
you need to be an expert, i believe that you need to be able to get something built and manage whatever traction you get from there to make your business solid. Such as getting top talent to do thinks the right way. The key is just get something built first......in my opinion.
For the early stages, I think you can get away with it, just like you can get away without bringing a professional designer into the picture.
The drawback is that it gets more expensive the longer you wait. The more code from a beginning programmer there is, the more there is to be overhauled, and the more ingrained your seat-of-the-pants interaction design and visual design is, the more challenging it will be for your designer and/or front-end developer to lift out and replace.
Do you overhaul your car or let it be done by a mechanic ? Do you make your own paper ? Do you grow the wood for the trees to build your house ?
Anybody technically can do anything themselves, if there is a skill worth learning then it probably is programming, since it allows you to amplify your ability to get work done in a given amount of time (which usually is your most scarce resource).
But you won't be managing that time effectively if you want to launch a start-up and learn this skill at the same time, then you're probably better of hooking up with a competent coder and letting them lay the bricks in a way that will help your business to succeed.
I'm all for learning new skills, I can weld, but when my life and or my business depends on it I go to a welder.
So if you are not already a competent coder and you have the choice to team up with a coder or to delay the launch of your product by a couple of years to get you up to speed seems like a no brainer to me.
OK, but that doesn't mean you can't have a specific startup idea in mind when you're learning to code, and work on it as soon as you're able. Why spend time writing software that certainly won't make money when you've got the option of writing software that just might make money?
Sadly, yes. You've never run into someone who has an amazing idea for "the next youtube" if only they can find someone who will do all the work for 10% equity?
Symptom: you now just need a programmer to code up your site.
The last startup I did failed miserably. When I looked back to see what went wrong it was obvious that if I could have coded it myself I would have been a lot better off, and it might have worked out.
So I started learning how to program so that I would be better prepared next time around. Best decision I ever made.
I can now get an idea, and straight away do something about it instead of first having to convince someone to do it for me. As an extra bonus it's now trivial for me to see things that weren't at all obvious before such as why one feature is much more demanding to code than another, why seemingly simple things take so much time, and much more.
I'm by no means a good programmer: I can't do a high scalability clustered scheme app, but I know enough to actually do things. And really that's all that matters.
If you're into startups and can't code follow Gabriel's advice and learn how to do so. Right now. It's the best decision you'll ever make.
Agree. If anything, you'll exercise your mind, learn a new skill, and can add it to your resume.
Learning how to program gives you a better sense of what it takes to build something. I personally believe that if you're in startups, you should at least be somewhat knowledgeable in the technologies used.
> you don't understand your startup's assumptions.
The cure reminds me of what Fred Brooks said in The Mythical Man-Month after 20 years, at p.258-9 (MM-M, 2nd ed.) about defining the user set (ie. who the users are), as a population assessed along several attributes, with a frequency distribution over each (my eg. how much RAM they have; their largest file - but the most interesting ones are app-specific). He says you should GUESS the set of attributes and distributions:
1. you will think about it carefully;
2. they will be debated by the team, revealing differences in how each member sees the user set;
3. it "helps everyone recognize which decisions depend upon which user set properties. Even this sort of informal sensitivity analysis is valuable. When it develops that very important decisions are hinging on some particular guess, then it is worth the cost to establish better estimates for that value."
He summarizes: "It is far better to be explicit and wrong than to be vague"
"Symptom: you've written more than a 5pg business plan."
The design brief for our website was seven pages if I remember correctly. First we described who our customers were, along with their psychology and values. Then we described the vibe we were going for and why it would resonate with them. Then we described 10 or so design elements that sent signals consistent with what we were going for, and listed five or so examples of each element being used on various sites across the web. Now I realize that this is different than a business plan, but if you haven't done more than five pages worth of thinking then you probably don't understand what your assumptions are or how to test them.
I agree, but I think Gabriel's main point is in the parenthesis - "Symptom: you've written more than a 5pg business plan (intended for others)"
You're more likely to find someone to invest in or collaborate with you based on a prototype than a detailed rationalisation of the thought behind the prototype you're thinking of building.
Putting your thoughts on paper is one thing. Putting your thoughts on paper as a substitute for trying to put them into practice is another.
I think it is fairly normal to go through the wannabe-phase. We all do it until the moment that we realize we aren't getting nearer any goals, and decide to become a doer instead of a talker/planner.
I've had all these symptoms excluding calling myself a CEO and writing a business plan. Luckily all symptoms are cured except the 10-25k investment. Now I'm looking for a job to save 30k for the first investment (living costs, services, travel, servers, etc.)
However I think most of these 'cures' are 'easily' achievable, but having enough time to cure these symptoms and looking for a co-founder are the hardest parts of becoming an entrepreneur. In my case I took advantage of having been laid off in 2009. So I've decided not to look for a job until I've got some stuff done.
Being an entrepreneur is not something you 'fake' any more than you could fake playing the violin (well, you could but it would not get you any closer to playing one), you either do it or you don't. You could do it badly though, and most entrepreneurs do that for a while until they've racked up enough experience to make a go of something. That's called practice.
Wannabe entrepreneurs usually stay that way, entrepreneurs get up and do stuff, they don't 'want to be something'.
It is perfectly possible to be an entrepreneur without a network of other entrepreneurs, you're better off concentrating on your customers initially anyway.
I see a disturbing trend in my environment where people will spend more and more time 'networking' and less on developing their product and / or their business in general. They're all backslapping each other what great entrepreneurs they are, they organize events and so on. Meanwhile the real entrepreneurs run off with the contracts.
Networking has its uses, but don't overestimate it.
I disagree strongly. Coding is a great skill and just about everyone should be familiar with it, but telling starry-eyed entrepreneurs they can learn to code well enough to launch a successful tech startup on their own in a short timeframe is extremely misleading. Coding and design are the core competencies of any tech/web startup, and you can't hope to succeed if you're essentially an amateur at your core competency. Because the fact is, coding may not be hard, but coding well and being responsible for the software infrastructure of a successful project is hard and isn't something you can pick up overnight.
By all means, learn to code. It will help you in innumerable ways, and maybe after a few years of practice you can start to think about launching a cool project on your own. But don't be deluded into thinking you can pick up "Ruby for Dummies" and have a hot new web startup 6 months later without some real technical expertise.