Логическое мышление или математика?
Скорее не логическое мышление, а умение структурировать задачу - есть задача, а ты сразу понимаешь какой алгоритм в ней будет. Это чуть выше чем просто логическое мышление. Математика конечно важна, но ее не так много - зависит от задачи.
ИМХО - ты рано полез в ООП не освоив как следует процедурное программирование, и только потом нужно в ооп идти хорошенько изучив зачем оно нужно и когда.