There seems to be evidence (https://softwareengineering.stackexchange.com/questions/179616/a-good-programmer-can-be-as-10x-times-more-productive-than-a-mediocre-one) that programmer productivity varies by at least an order of magnitude. My subjective sense is that I can become a lot more productive than I currently am.
Conventional wisdom says that it's important to build and iterate quickly. Technical skills (amongst other things) are necessary if you want to build and iterate quickly. So then, it seems worthwhile to develop your technical skills before pursuing a startup. To what extent is this true?
Furthermore, domain expertise seems to be important:
>> You want to know how to paint a perfect painting? It's easy. Make yourself perfect and then just paint naturally.
> I've wondered about that passage since I read it in high school. I'm not sure how useful his advice is for painting specifically, but it fits this situation well. Empirically, the way to have good startup ideas is to become the sort of person who has them.
- http://www.paulgraham.com/startupideas.html
> The second counterintuitive point is that it's not that important to know a lot about startups. The way to succeed in a startup is not to be an expert on startups, but to be an expert on your users and the problem you're solving for them.
- http://www.paulgraham.com/before.html
> So one guaranteed way to turn your mind into the type that has good startup ideas is to get yourself to the leading edge of some technology—to cause yourself, as Paul Buchheit put it, to "live in the future."
- http://www.paulgraham.com/before.html
So then, if your goal is to start a successful startup, how much time should you spend developing some sort of domain expertise before diving in?
"Creating a startup" actually means two different things.
1. Create a VC-funded startup. This is all about making investors happy. AFAICT this is mostly about luck, in that you're being set up to fail and 5% of people happen to succeed. This is what Paul Graham writes about from his perspective as a VC, which is to say someone who wants a liquidity event. A liquidity event is not the same as business success, and having a large-scale liquidity event as a goal typically impedes your ability to create a successful business (e.g. you can't say "let's pursue this small, profitable niche" because it's too small for a VC to make money off of.)
2. Create a real business. In this case you need to identify an actual problem someone has. Then you need to solve it, and make sure people know about it (marketing). This is quite different than technical skills. It has some overlap with the productivity skills mentioned above (identifying problems and coming up with solutions) plus a whole additional set of skills (marketing, sales, etc.)