A little bit of everything you said. I didn't start working in software right away. I didn't complete my (non-CS) degree, and so thought a career in software was out of reach. Right at the beginning I was shot down without interview by a bunch of companies because I had no industry experience. Once I had my lucky break (massively underpaid but fun work with good people) everything changed.
Every time I've changed jobs to date I've had multiple job offers. 3 years ago I had 3 offers from 3 different companies. This time around I had the same - 3 offers, 3 companies. Just in the last 5 years my salary has increased 6 fold.
My basic philosophy with respect to compensation is to take home enough to maintain the lifestyle you want + 20% extra to save and invest.
Every time I've changed jobs to date I've had multiple job offers. 3 years ago I had 3 offers from 3 different companies. This time around I had the same - 3 offers, 3 companies. Just in the last 5 years my salary has increased 6 fold.
My basic philosophy with respect to compensation is to take home enough to maintain the lifestyle you want + 20% extra to save and invest.