I was wanting to get people's opinion on what a good time frame is for a person in the technology field
I don't have statistics in front of me, however, from what I remember, people have 4 - 5 careers and (and somewhere around) 20 jobs. (You can probably find those stats on the Bureau of Labor Statistics Web site.)
To delineate the difference. Four or five careers would be in areas such as, teacher to marketing to information technology to banking; and spending five or ten years, or however many, withing that field. A career would not entail technical support to system administrator to DBA to manager.
It is usually difficult to change careers and probably would require experience in the area and/or education. My belief is: if you want to go from being a system administrator to marketing researcher then you would return to college and get a master's degree in marketing (if you already possess and ungraduate degree). If you do not have a bachelor's degree then get the bachelor's degree in marketing.
The reason for choosing a master's in marketing if you already have a bachelor's degree in biology (for example) and you have been working as a programmer/system administrator for 8 years (for example) is because you already have an undergraduate degree and you have work experience. You do not want to start again at the bottom of the food chain and compete for entry-level jobs with recent college graduates (I would assume); but rather, you want a higher-level job with more pay and more challenge. Having a master's degree would elevate you to seek positions at that level.
I have heard that staying at one company too long can hurt your job opportunities later on
If you started as a programmer I and eight years later you are still a programmer I for the same company, then I believe that would raise a red flag for a potential employer because you haven't progressed to even a programmer II level. They would probably be thinking "why are they still a programmer I after 8 years?" and not give any more consideration to your application.
If you started as a programmer I and two years later you went to programmer II, then three years later you moved to programmer III followed by a move to system analyst position 3 years later; (all for the same company) then a potential employer would probably be thinking "I am impressed with the career progression of this individual and their motivation by seeking new opportunites in the company. I want to meet him/her.