Getting some experience and developing your skills before you start your first startup seems like a good idea.
How difficult it will be in practice, that will depend on your savings, on a support you can receive from e.g. your family, whether you will be able to make more money than you need to survive so you can save some, and whether you will be able to learn new things in your free time.
In my experience, it works like this: When you get a new job, at the beginning you learn a lot. After a few months it gets repetitive, and after a year you mostly do the old stuff over and over again. You probably get more work, but it is the same type of work. Only rarely (in my experience) is there an opportunity to move within the company. If there is a new project, the company will usually hire new people for the new project, and you stay with the stuff you were hired for. It may gradually become more easy, but you will not progress. (If you are strategic, it may be good to keep doing the easy work for the safe income, and learn new stuff in your free time. Or maybe even during your work time, if no one is watching you.)
After more years, you will become responsible for maintenance of all systems you have ever touched while working in the company. You will have to remember thousand little details about these systems, which is mostly an untransferable knowledge that has zero value outside of the current job. Just because you have more work now, it does not mean that your salary will necessarily increase. When you are at such dead end, if you want to optimize for skills, you should change jobs.
(Meanwhile, there are new younger programmers coming from universities. All the new stuff that you would like to know but have no time to learn, they have learned at school.)
Here comes the question of risk aversion, and how good is your safety net; how much would you lose if you quit this job, but can't find a new one soon enough. In theory, you should find the new job first, then quit the old one. In practice, it may be difficult to do job interviews, to prepare for them, and to study new technologies, while having a full-time job. Also, the new job may fail for unpredictable reasons, or may turn out to be very different from what they told you at the interview.
Poor people can easily get stuck at a job they hate, that is exhausting and pays relatively little. Because of the small pay, they do not have safety net. Because the job takes all their energy, they do not have the energy and time to learn new stuff and do job interviews. If the job requires them to learn stuff that has zero market value, the longer they stay, the harder it will be for them to get another job. -- In theory, programmers should not be that poor. In practice, sometimes your expenses grow faster than your income; e.g. at the moment you move away from your parents. (Or when you want to start a family, and suddenly there are three people supposed to live from one income for a few months; and later it becomes one and half person per income.) Or some unexpected expense happens.
The work that is available right now may not require the skill you want to develop now. Maybe you choose an exotic skill that no one needs. Maybe all companies that need people with some skill insist on employing only people who already have a few years of experience with that skill. Some skills you may have to develop at your free time, at least to the level where you are able to make a working prototype.
Here is some advice, but it may strongly depend on specific country and area of specialization:
After a year, unless you are still learning something new (something that has a value outside your current company), quit the job. Or maybe, right before you quit, ask the company whether you could become a lead developer of at least a small team: that would look impressive on your CV, and would teach you skills you will later need for your startup.
Try to keep a safety net; enough money to survive for six months, preferably a year. Then you will have more freedom changing jobs. When doing something expensive, such as buying a new appartment or starting a family, try to arrange it so that some financial reserve remains, instead of spending all you currently have. Always imagine that tomorrow your job could become insufferable, and you would have to leave to preserve your sanity.
Avoid overtime. Your sleep and free time are critical for your health and professional development. Spend some free time learning new stuff. Learning something new at home, making a prototype and bringing it to the interview, may allow you to get a job with a new technology that wasn't available to you at university and at previous jobs. Spend some free time with your friends, meeting new people, networking. Networking is great for getting new ideas, motivation, and even good jobs.
Although I've heard the advice to leave after a year, my experience has been different - after three years, I'm still learning a lot and I'm beginning to tackle the really hard problems. Basically, I find myself agreeing with Yossi Kreinin's reply to Patrick McKenzie's advice, at least so far. (Both links are very much worth reading.)
Of course, you do need to push for interesting assignments and space to learn. Also, be sure to pick a company that actually does something interesting in the first place - I work on embedded crypto devices for the government ...
I'm 22 years old, just got a job, and have the option of putting money in a 401k. More generally, I just started making money and need to think about how I'm going to invest and save it.
As far as long-term/retirement savings goes, the way I see it is that my goal is to ensure that I have a sufficient standard of living when I'm "old" (70-80). I see a few ways that this can happen:
Median optimistic year (10% likelihood): 2022
Median realistic year (50% likelihood): 2040
Median pessimistic year (90% likelihood): 2075
- http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-2.html
And even if they're wrong and there's no singularity, it still seems to be very likely that there will be immense wealth creation in the next 60 or so years, and I'm sure that there'll be a fair amount of distribution as well, such that the poorest people will probably have reasonably comfortable lives. I'm a believer in Kurweil's Law of Accelerating Returns, but even if you project linear growth, there'd still be immense growth.
Given all of this, I find thinking that "wealth creation + distribution over the next 60 years -> sufficient standard of living for everyone" is a rather likely scenario. But my logic here is very "outside view-y" - I don't "really understand" the component steps and their associated likelihoods, so my confidence is limited.
Anyway, I think that there is a pretty good chance that I succeed, in, say the next 20 years. I never thought hard enough about it to put a number on it, but I'll try it here.
Say that I get 10 tries to start a startup in the next 20 years (I know that some take longer than 2 years to fail, but 2 years is the average, and it often takes shorter than 2 years to fail). At a 50% chance of success, that's a >99.9% chance that at least one of them succeeds (1-.5^10). I know 50% might seem high, but I think that my rationality skills, domain knowledge (eventually) and experience (eventually) give me an edge. Even at a 10% chance of success, I have about a 65% (1-.9^10) chance at succeeding in one of those 10 tries, and I think that 10% chance of success is very conservative.
Things I may be underestimating: the chances that I judge something else (earning to give? AI research? less altruistic? a girl/family?) to be a better use of my time. Changes in the economy that make success a lot less likely.
Anyway, there seems to be a high likelihood that I continue to start startups until I succeed, and there seems to be a high likelihood that I will succeed by the time I retire, in which case I should have enough money to ensure that I have a sufficient standard of living for the rest of my life.