It depend on which area you are in the programming line. If you
are into languages such as C++ which demand more skillset than
Java,C# etc... you could demand more pay. As in other lines, try to
do something which not a lot of ppl is into it and you can justify
your pay and position.
For normal roles using Java,C#,VB etc there are so many ppl in it
that it is hard to justify higher pay packet cuz a lot of ppl want
to do it at cheaper rate 