Сейчас это несколько расплывчатое понятие.
Но если объяснять по правилам, то программисты пишут программы.
Программы - это все, что позволяют компьютеру действовать во благо пользователей, в противном случае компьютер становится только куском металла и пластика и может только греть воздух, собирать пыль и тратить электричество.
Это могут быть пользовательские программы(браузеры - интернет, видео и т.д., текстовые процессоры - Word, notepad и пр.), системные(ОС - операционные системы), драйвера для устройств(принтер печати) и даже программы для чипов автоматизации(доехал<wbr />и до этажа, подождать 10 секунд, закрыть дверь, поехать на ближайший вызов в ту же сторону, при отсутствии, ехать на вызов в другую сторону, при простое в 10 минут ехать на 1 этаж).
И все, что позволяет компьютеру действовать самостоятельно, взаимодействовать с пользователем, другими компьютерами, периферийными устройствами - это программы.
Их пишут программисты.
Программисты бывают разного уровня, высокого или низкого. Но это не означает разный уровень профессионализма. Программисты нижнего уровня пишут программы взаимодействия между устройствами. Для БИОСа, чтобы процессор и память могли взаимодействовать, чтобы сетевая плата компьютера могла взаимодействовать с сетевыми устройствами. Более высокого - чтобы ОС мог взаимодействовать со всеми этими устройствами, диском, портами и пр. Более высокого - разрабатывают ОС, еще более высокого -интерфейс взаимодействия с пользователем (тот, что показывает Вам окошки, реагирует на мышь и клавиатуру), далее идут многочисленные приложения для пользователей.
Перед программистами ставятся определенные задачи. Написать новый браузер, например. Постановщики задач более низкого уровня расписывают, что и как внутри браузера должно работать. Взаимодействие с сетью, протоколы, вешний вид, реакции на нажатие, накопление истории и пр. и пр. Потом программисты нижнего(для этой задачи) уровня пишут модули, библиотеки, драйвера и пр., которые объединяются программистами более высокого уровня в готовое изделие.
Прочем, для рядового пользователя это не представляет интереса.
Пользователю достаточно считать, что программисты пишут программы(на соответствующих языках программирования) для компьютера для реализации какой-то конкретной идеи заказчика.