Salary depends on
1) Previous salary
2) New title/rank
3) The industry (and how well it's doing)
4) Years of experience
5) Previous salary
6) Negotiation skills
7) Education
8) How well you interview
9) Skills (if the interviewer cares)
10) Your age and gender (sad but true)
11) References
12) How hot the market is (if there's a lack of developers in your area of expertise, you can get some crazy raises every year by switching jobs)
> All in all I consider myself a very good programmer (Honestly I'd guess in the top 80% of programmers, I haven't met one that's better than myself, but I don't consider myself nearly as experienced as a lot of the people here)
There are many horrible developers out there. Being the top 20% is really not a big deal. If you want to make real money, try to be the top 1%.