I just started grad school in Physics a few weeks ago, but I have recently considered quitting since I would rather work on more interesting practical problems. So I am considering quitting the program to start a startup, probably related to software. But I am also considering staying in my phD program (maybe leaving with an MS) and just doing research in an area of Physics that uses lots of programming, such as computational condensed matter or astrophysics, as opposed to string theory.
I have read a few of Paul Graham's essays, and I think starting a startup would suit me well because I am willing to take the risks involved in it and work the long hours as opposed to taking a low-stress, comfortable good-paying job working in a cubicle. The main problems at the moment are that I have poor programming skills and that I have no friends that are interested in programming or in a startup. But I have been considering joining a club on campus with other grad students that are interested in forming a startup
I am thinking I may also enjoy the business aspect of running the startup, even though I'm rather introverted. But I don't know for sure yet, so I will also consider the engineering aspect.
But in the meantime since I'm not in a Physics research group yet, I would have to self-teach myself programming in my free time. To give you an idea of my current skill level, the most recent concept I learned in C++ was Vectors a few months ago. How should I start getting better? Should I try working through O'Reilly's book? Look at someone's existing code and try to improve it? Come up with my own problem to solve?
Also, if I should just work at a startup first, before starting my own startup, what job can I possibly get? My programming skills aren't good enough for what they're looking for. Is this a good chance to get a position where I can get the opportunity to improve my programming skills?