Если упрощенно, то программист пишет алгоритм для решения прикладной задачи, а системный администратор обеспечивает её решение (начиная от закупки и настройки оборудования и ПО, заканчивая технической поддержкой текущей работы пользователей и этого самого ПО).