Во-первых, не надо нервничать и злиться на себя: признание себя тупым - начало пути из тупого угла.
Во-вторых, программист не обязан знать математику как профессионал этой науки - вполне достаточно школьного курса, а он рассчитан на среднего ученика.
В- третьих, программист должен владеть формальной логикой, а она лежит и в основе всей математики. Поэтому, разбираясь с задачами и теоремами из школьного курса, надо в первую очередь следить за тем, почему одно следует из другого.
Так что смело в путь - не боги горшки обжигают!