Разумеется можно самому научиться программировать, всё зависит только от Вас. Главное, если что-то сразу не будет получаться, не сдаваться. Особых знаний математики не требуется, если, конечно, этого не требует создаваемая Вами программа. Это в учебных заведениях слишком нравится все показывать в теории и захламлять мозги студентов. Когда я пошел получать второе образование (по специальности программное обеспечение автоматизированных систем) - думал, что мне очень будет мешать то, что я не силен в математике, действительно, так и вышло, НО, мешало мне не особо хорошее знание математики только в тех предметах, которые мне абсолютно не понадобились, все остальное реально наверстать. Конечно, высшая математика нужна, особенно, если Вы хотите связать свою жизнь с электротехникой, наукой, будете создавать, например, материнские платы и тд. Если же Вы хотите просто научиться программировать для общего развития - ничего сложного здесь нет, главное найти хорошие уроки. Лучше всего зайдите на YouTube и найдите уроки по тому языку, на котором хотите научиться программировать, так Вы наглядно познакомитесь с языком, получите начальные навыки. В видео (сейчас их очень много) Вам расскажут какой компилятор скачать (программу для интерпретации написанного Вами кода в понятный компьютеру), если это web-программирование, то Вам подскажут в видео какой локальный сервер лучше установить. Главное - все повторяйте, как показано на видео, печатайте все ручками, чтобы запомнить и понять сам процесс. Не бойтесь менять код местами, так Вы лучше поймете, что к чему, главное - практикуйте, одной литературы мало. Для этого абсолютно не нужны преподаватели, если Вы не намерены стать СУПЕР программистом, да и то, если уж идти к преподавателю, то лучше уже что-то знать, так как они (преподаватели), как правило, говорят со студентами на другом языке и все сводится к бессонным ночам студента и самообразованию. Удачи Вам!