Да, занятный оборот вышел

Действительно, работа с ГИС вообще не предполагает обязательного программирования. А программирование в среде ГИС и ГИС-разработки - это такая штука, которую можно сравнить со стрельбой в биатлоне: тамошние тренеры говорят, что если есть хороший лыжник, то подготовить из него хорошего биатлониста, научив правильно стрелять - не проблема, но вот научить стрелка бегать на лыжах на мировом уровне - затруднительно. Вот то же самое с программированием: для разработки геоинформационных систем нужен, прежде всего, специалист по геоинформатике, то есть по предметной области, чтобы спроектировать, как это всё должно работать. Если же за работу берется "чистый" программист, то он, неизбежно (что и показывает наглядный пример novice) начинает сыпать вопросами, которые даже для посредственного специалиста по геоинформатике, как таковой, вопросами-то не являются (про совпадение и несовпадение проекций, например).
Программирование - инструмент (со своими особенностями и тонкостями, конечно), средство реализации задач в разных предметных областях. Но у некоторых программистов часто создается мнение, что в этом самом программировании всё дело и состоит. Но создается оно тогда, когда предметная область, для которой пишется программное средство, либо проста до безобразия, либо так или иначе скрыта от программиста (то есть он получает уже конкретное описание атомизированных функций, которые должен выполнять код, который он пишет).
Что касается "знать сто разных ГИС" и "знать сто языков программирования" - это некорректно поставленный вопрос вообще. И собственно ГИС, и собственно языки программирования - это инструменты. Но у каждого инструмента есть свой набор возможностей, принципов работы и использования. Если человек понимает взаимосвязь возможностей, принципов работы и принципов использования инструментов, то переход с одного инструмента на другой - вопрос запоминания некоторого количества формальностей. Такому человеку более-менее все равно, в какой ГИС работать, например: если ему знаком, скажем, процесс задания новой системы координат сам по себе, он поймет, как это сделать где угодно, просто взглянув на соответствующий диалог или формат командной строки для этого. С языками - то же самое: те, кто владеет программированием, а не конкретным языком, может быть с легким скрипом, но в состоянии освоить любой язык в некие скромные сроки, если это не требует освоения новой предметной области (аппаратной или программной архитектуры, под которую может быть "заточен" язык, как в случае, например, различий в ассемблерах конкретных процессоров или специфических API каких-то встроенных RTOS и так далее).
Ну и что касается удовольствия и неудовольствия - среди программистов и админов есть достаточное количество людей, чей круг интересов на этой деятельности, во многом, замыкается. То есть это те самые "гики", для которых счастье - это покопаться в коде или попереставлять систему на сервере. И они не всегда представляют себе (в силу часто сопутствующих этому психологических деформаций, лежащих, тем не менее, в рамках психической нормы), что может быть иначе. Их самих может раздражать дрянной код или скучное задание, но сам процесс программирования и администрирования - это то, что им нравится (и, часто, единственное, что нравится). Но в мире полно других людей, у которых интересы несколько шире, а потому работа - не самоцель, а средство получения денег на другие интересы.