Екатерина, спасибо за вопрос! Я недавно размышляла над этим.
Я работала разработчиком и в то же время имею высшее образование "лингвист-переводчик", поэтому сталкивалась и с изучением программных языков, и иностранных.
Я бы сказала, что ключевая разница заключается в том, что допуская ошибки в иностранном языке в коммуникации с носителем, мы все равно сможем донести до него смысл.
Ошибка же в программном коде приведет к полному непониманию машиной кода.
С другой стороны, написав код правильно, вы получите тот результат, который ждали (машина не может истолковать код "по-своему"). Человек же может вложить в ваши слова свой смысл, даже если ваш иностранный язык идеален.
Поэтому здесь скорее встает вопрос не в сложности изучения, а в двух совершенно разных концепциях коммуникации. Машина понимает только правильный код, но понимает его однозначно.
Человек может додумать, домыслить, но может сделать это по-своему, а не так, как вы имели ввиду.
В чем-то безусловно программирование и изучение языка похожи. Но в программировании нет разговорного аспекта (который для многих становится "камнем преткновения"). Встречаются люди, которые отлично разбираюстся в теории языка, могут читать сложные тексты - но когда дело доходит по продуцирования речи, программа дает сбой :)
Учить не сложно. Сложно заставить себя учить и сложно добиться хоть каких-то практических успехов. Здесь больше влияет заинтересованность человека в данной области. Тогда всякие разговоры о предрасположенности отходят на второй план.
Все зависит от способностей, каждому свое.
Но нужно учитывать тот факт, что для того чтобы научиться программировать недостаточно знать только синтаксис языка, необходимы так же знания математики, навыки составления алгоритмов.