Similar to the Crazy Ideas Thread and Diaspora Roundup Thread, I thought I'd try making a General-Purpose Questions Thread.
The purpose is to provide a forum for asking questions to the community (appealing to the wisdom of this particular crowd) in things that don't really merit their own thread.
Very hard to generalize. Depending on your abilities, your credentials (what school, what impressive outside projects), and your priorities (give your life to make a small improvement to huge products vs build new interesting stuff vs make enough to live on with time to enjoy hobbies vs. many other dimensions), you should either:
The vast majority of software engineers change jobs every 3-5 years. At larger companies, that can be an internal transfer, but if money is an object, you're likely to get raises/promotions faster if you change companies. This means that your first few companies don't determine your life, and you shouldn't overindex on making the perfect choice. However, it also means that you're going to be continuously making this choice and asking these questions, rather than asking it here once and being done.