Для программирования необходимо лишь абстрактное мышление (навык представлять задачу как алгоритм), которое он развивает всю жизнь, знание теории (переменные, ветвления, циклы, классы и т. д), и самое последнее - знание языков программирования. С программистами проще в этом плане: если у человека работает голова и он знает языковые средства, то любой язык программирования ему будет легко выучить.