Switching jobs has gotten me 30% pay increases twice in my life. I've never seen a yearly raise from a current employer for more than 4% though and significant promotions with pay increases from within are a rare event without moving into management roles. If you're young and your experience and capabilities multiply quickly, job hopping is the single most effective way to better your income.
Lots of employers seem to be OK with the churn of young developers. Pay the below market rates until they develop enough skills and confidence to demand something better, replace those people with new grads and retain the people willing to work for below average salary.