Чтобы работать программистом в 80% случаев диплом ненужен, но при наличии знаний - получить его можно легко.
Я бы посоветовал пройти бесплатные курсы (такие есть) по основам программимрования, веб-программированию<wbr />, программированию мобильников, программированию баз данных (быть может еще чему-то). Чтобы понять что именно вам интересно. Пройти до конца в любом случае, конечно.
Потом стоит сходить на какие-то мероприятия по программированию. Типа митапов. Посотреть, пообщаться, предложить ребятам себя в качестве стажера. На такие штуки обычно ходят ребята с более-менее приличных контор, а не "рога и копыта"
Ну вот в случае успешного прохождения стажировки вам предожат работу.
Это как бы самый быстрый способ, которым можно пользоваться если у вас реально есть склонность к программированию.
С другой стороны можно пойти в техникум или ВУЗ. Разницы особой нет, но в техникуме у вас скорее всего будет больше свободного времени (хотя есть вузы типа синергии, которые тоже учат как-то странно). Тут преимущество лишь в системности подаваемых знаний, т.е. вам как программисту в любом случае нужно будет сильно расширять кругозор - научиться сеть настраивать, командной строкой пользоваться, виртуальные машины использовать, системы контроля версий и т.п. - это очень много и если вуз хороший - то 4 года учат "тому что надо" очень интенсивно. Лучше ничего быть не может. Бесплатно еще и стипендию платят. И можно в олимпиадах по тому же программированию участвовать.
Я бы лучше отказался от лишнего и использовал пару языков. Переключение действительно неоправданно затратно. Но, если необходимо, привык держать перед глазами CheatSheet.pdf по конкретному языку.
С установки эмулятора для проверки приложений. При тестировании на реальной системе можно по неопытности или недостатку пока знаний нарушить работу iOS.
Именно по программированию можно взять лёгкий курс, что-нибудь типа "16 уроков с нуля", а параллельно почитать про архитектуру системы и какую-нибудь методичку для первого курса любого программистского вуза, по любому языку, не ради кода. Там обычно вкратце будут описаны и приведены примеры работы нужных при эффективном программировании алгоритмов. Алгоритмы быстрого поиска и сортировки, аппроксимация функций и т.д.
Рекуррентность - это свойство повторяемости. Вообще это термин скорее из психологии, но применяется в математике - рекуррентная формула - это такая, очередной член которой вычисляется из предыдущих. Например факториал, числа Фибоначчи и т.п. Но если мы будем писать программу, производящую вычисления по рекуррентной формуле - получим рекурсивную функцию. Таким образом рекурсия и рекуррентность и связаны.
По теме рекурсии советую почитать статью: "Рекурсия в программировании. Анализ алгоритмов"
Смотря еще под какую систему то ли это будет андройд, ios, айфон то ли это будет ПК от XP и до Windows 10 начиная с 7, вам необходимо определиться на каком языке программирования она будет написана.