Ох, очень серьезный вопрос.
Раньше, еще лет 30-40 назад, удел программистов были большие ЭВМ, на которых обычно считалась статистика, проводилась эмуляция физических процессов, обрабатывались большие объемы данных или длинные цепочки уравнений. Тогда задачами программиста было ввести в ЭВМ данные, по заданному алгоритму их обработать и получить готовый результат. Тогда программирование было уделом единиц.
Сейчас же программирование затронуло абсолютно все сферы деятельности человека. Куда ни плюнь, попадешь в урну с программным управлением. Практически все, начиная от зубной щетки и заканчивая ракетой имеет вычислительный процессор, а то и целый суперкомпьютер. Соотвественно и программирование стало практически повсеместным, хотя этого многие и не замечают.
Хотелось бы дать ссылку - вот, здесь можно прочитать про все, но нет, нету больше такой ссылки - программирование везде, можно выбрать любую профессию, область знаний или предмет изучения, и там Вы найдете программирование и его применение.
Наверное не совру, если скажу, что 30-40 лет назад мир разделился на до- и пост-компьютерные эпохи. Так что, если интересно программирование, то выбирайте интересное направление, а там и будет само программирование.
Глобально же, программирование делится на три категории, автоматизация процессов, анализ и обработка данных, программирование игрушек и визуальных эфектов. Причем, очень часто, все эти области очень сильно пересекаются, и не всегда понятно, где начинается одна и заканчивается другая.
Взять к примеру какой нибудь шутер типа CounterStrike. Сам движок игры явно тяготеет к эмуляции достоверной физики и реального взаимодействия с окружающим миром, задача по обработке данных между группой игроков превращается в решение по обработке достаточно большого массива данных (перемещение игроков, синхронизация, отрисовка поля игры и взаимодействие предметов между собой), визуальная часть и взаимодействие с игроком - уровень автоматизации взаимодействия.
Было бы проще ответить на вопрос, если бы он звучал примерно так: "что мне нужно знать, чтобы запрограммировать ...", или "я не понимаю как ... и хотел бы этому научиться", или "хочу сделать игру на подобие ...", или "как делать сайты и что нужно знать для этого".
Как-то так...
PS. Ну, смотрите. Это сам в чем участвовал в той или оной степени:
Как видите, нет игр, их не писал ;-)
Вот я и хотел бы узнать о разных направлениях, чтобы было из чего выбирать.