Despite the fact that there are plenty of free tools to learn the technical skill, not many people want or have the time to invest into learning it. There is a pretty high demand for programmers but the supply is comparatively low. This leads to high salaries.