Различайте программирование - оно состоит из алгоритма и  его кодирования на программном языке. Написать программный код - это задача для ребят весьма среднего уровня. Поставить задачу  и придумать алгоритм - работа для математика. Поэтому по крайней мере раньше в 57 школе были против того, чтобы "математики" программировали.  Базовый уровень знакомства на примере интересных алгоритмических задач.