...и математика...
Если легко даются и языки и математика, то суть программирования пойдёт так же легко. Если не лезть в "чужое". Т.е., есть отдельные специфические сферы. Например, для создания хороших интерфейсов нужно быть немного художником и вообще - гуманитарием, там всё совсем не от математической логики идёт. И даже не от "удобного доступа к функционалу кода". Нет, там и эстетика и прочая психология.