Before you do this, consider the following question: would you rather spend your time learning to build the Uber app, or learning the skills to build Uber (the company)? Those are two truly different skill sets, and the latter is far more rare and valuable. The ability to raise money, build teams for a variety of functions, budget, and execute on an audacious vision is far outside the realm of most software engineers.
Unless coding is truly your passion, hire someone or find a technical co-founder. Spend your time learning how to plan and build stable, scalable businesses and teams. Your goal should be to build an organization that can employ all of the software engineers necessary to carry out the vision for your business - not to be able to write all of the code yourself.
Problem is that people who think they can build the next Uber are a dime a dozen and aren't even worth that. Keep in mind that Travis Kalanick and Garrett Camp (Uber cofounders) are both engineers.
It's good to think about the different skill sets though and decide which to focus on.
In my opinion, learning the skills to build "Uber the company" will get you nowhere without a compelling product first, whereas if you have a compelling product you can be a complete idiot when it comes to business and still have a chance to learn and make something out of it.
By all means don't focus solely on development if your goal is to build a startup, and in particular be aware you need to attract users once you launch; but don't focus on learning the intricacies of raising money or leading a team without a product either.
If you have business skills, you can always find/team up with people that have a compelling product, or team up with others others to bring your compelling product to life through code while you build the business. In this case, it appears that OP has an idea and wants to build the product himself, starting from scratch with no coding knowledge. I am saying that he should team up with someone to accomplish the actual coding, and he should focus on the business.
BTW, I am saying all of this as a fairly accomplished software engineer that has grown to understand that business skills are far more important than the programming skills I have spent nearly 20 years working on. I find myself agreeing more and more with this statement from Chris Sacca, who is a billionaire that knows a thing or two about successful tech startups [1]:
"...most of the value is created by the execution, not the idea itself."
IMO, this is a little bit of a false debate that's been kicked around for years. For instance, in your first paragraph, you could just as easily switch business skill and product (and many people do).
Also, business and product are intimately related. Building, say, the tech for a SaaS business doesn't mean you've built a good product. Business skill can help here. As developers who can build, I think we sometimes emphasize the tech (product) from a functional perspective vs. from a business one.
In short, it can be very difficult to create a compelling product without solid business thinking. And, even with a compelling product, it can be difficult still to gain any traction. My experience has been that both skillsets are needed equally.
By learning to code, my desire is to get to a stage where: a. I can converse with tech people who have been at this their whole live, b. gain the proficiency to build the mvp, c. become a team member with attributable skill set when company is formed, etc. Hiring someone is inevitable down the line, but I need to create the map for him/her to paint first.
I agree about the different skill sets. I am working on getting a mentor who I can learn from when it comes to all of the latter stuff you've mentioned.
I did this "the long way" over the last 8 years taking it as a marathon more than a sprint. In my mid-30s I learned to program, studied business and economics, and switched careers from being a 3d animator to a software consultant. Continued studies on technology, business and marketing - inspired by Paul Graham and subsequently HN - via a series of amazing "virtual mentors" over the last several years (Amy Hoy, Brennan Dunn, Nathan Barry, Patrick Mackenzie).
This combined experience and study has lead to owning a successfully bootstrapped business. We don't have investors, we have a wonderful audience, and we just hired employee #1.
By doing and creating value. The premise of starting a company is simple, solve a problem that ideally you and others have which in return creates value enough that they'll pay for it. It's a million times easier said than done, and execution is the most valuable part of any idea because it's also the riskiest and most difficult part. Social apps have slightly different economics but the premise is the same.
Great distinction that is often overlooked. Could you / anyone elaborate on the key skills required in building a company? (aside from the oft-mentioned virtues of hard work, focus, and perseverance)
1. The ability to curate a clear vision for the company and its path to success;
2. The ability to take that vision and turn it into an an actionable, real-world plan, with clearly defined roles for any staff necessary to execute it; and
3. The ability to sell the company's vision to others - investors, employees and customers/users.
Unless coding is truly your passion, hire someone or find a technical co-founder. Spend your time learning how to plan and build stable, scalable businesses and teams. Your goal should be to build an organization that can employ all of the software engineers necessary to carry out the vision for your business - not to be able to write all of the code yourself.