When you look at software engineering as a career field you may want to know the big picture. What happens down the road? You get a degree; you get a job, then what? How does one best advance in this field or in a company? What do you need to do to ensure success in this field?
First, you may need to define what your personal success looks like. Is success to you a bigger salary, house, car and spectacular vacations? Maybe you want to have a family in the future and make sure you will be able to attend ball games and school function and not be chained to your desk. Of course even your own personal definition of success will change over the years.
Some perks of advancement, besides salary is financial incentives like stock options or bonus. Then there are other desirable features employees like. Promotions signal to the company and to you your advancement skills. Some engineers would love to be able to pick their own next projects and their own teammates. They want control over working conditions.
They prefer flexible time and even working from home instead of higher pay. Maybe you have a goal a bit more altruistic. A software engineer likes to have a sense of pride and ownership for a job well done. They want to know their company is attractive in the market place. Some want the admiration and respect of their peers.
Thinking about developing these attributes early on will help get you promotions, raises and great quality of work with benefits. Remember, to most companies being the exact top brightest student in your class is not the most important factor
Sources Cited: http://www.peterlyons.com