Дело в том, что программисту приходится постоянно всё изучать по новой. Если же данные у гуманитариев устаревают в течение 10 лет, у инженеров - 5 лет, а у медиков - 2 года, то у программистов уже спустя 6-12 месяцев появляется нечто новое в его сфере деятельности. Не успел изучить - проект будет хуже конкурентов, тогда и пнут такого программиста. Поэтому за "райской" зарплатой скрывается тяжёлый труд, который не под силу каждому.
Потому что программист может быть дворником, а дворник не может. Ну и какой нить Сбертех, где можно зарабатывать нереальные деньги, не особо разбираясь в сути профессии, но иметь потенциал к бюрократии и очковтирательстку.
Но ведь такая же ситуация в большинстве сфер производства.
Я перефразирую рынок программистов не российский , а мировой.
Зарплата в любой отрасли обусловлена уникальностью знаний и умений исполнителя, вагоны разгружать хоть и тяжело, но многие смогут, а вот кодить... Думаю ответ не сложен для понимания