Ну во первых, как выше уже сказали, никто вам разжёвывать и в рот ложить не будет абсолютно нигде. Даже в Гарвардском университете. А вот тот бред про бесплатные курсы и Ютуб каналы хауди хо и ему подобных, вообще полный П. Курсы бесплатны для того чтобы ты потом пришел и купил платные. А эти всезнайки тупо топят только лишь бы канал раскрутить, а в своих видеокурсах несут полную ересь. Хороший программист это тот, который сам может найти ответы на свои вопросы, так что если хотите с самого начала быть не говнокодером учитесь гуглить. Второе, прежде чем игры писать и под Андроид разработку вести, нужно определиться вообще, а нужно ли вам это? Все что тут посоветовали, юнити х...юнити, это вам сейчас ни в коем случае не нужно. Для быстрого старта и изучения именно программирования начните с такого языка как Python, прям с нуля. Изучите что такое переменные, функции, циклы, и прочие конструкции этого языка. Потом учим алгоритмы, хорошая книга "Грокаем Алгоритмы", автора не помню найдете сами. Потом плавно переходите к ООП, объекты, классы, наследование. На это у вас уйдет около года - двух. Потом бросаем Python и с той базой что у вас уже есть, если до сих пор не перехотелось программировать, быстренько учим синтаксис C#, типы данных и все с этим связанное. Усиленно углубляемся в ООП, учим наследование, инкапсуляцию, сокрытие, учим паттерны, тот же PIDOR(это не мат, это аббревиатура названия паттерна), всякие там методики, SOLID, DRY и т.п. И каждый раз при обучении ставьте себе задачу, ну например написать калькулятор, там написать бота для игры, так обучение будет профитнее. На все это вам ещё года 2. И если вы не перегорите, не умрёте от коронавируса, или ещё какой нибудь напасти которая ожидает нас в будущем, и все ещё будете хотеть писать игры и приложения под Андроид, то милости просим. Всю базу для осуществления вашей мечты за это время вы наберёте. Ну а как игры писать, или под Андроид кодить, вы уже и сами разберётесь после всего этого)) А если вы хотите все и сразу, то такого не бывает, лучше сразу идите заразитесь короной, чтобы ни себя ни других не мучать. Программированию не научишься за месяц или за два, да даже за год. За год вы максимум станете говнокодером, который чутка изучил синтаксис какого либо языка, но программирование это не знание какого-либо языка. Будучи программистом, но не зная синтаксиса языка, на изучение синтаксиса уйдет действительно месяц. Но для такого нужна база, именно программирования. Все выше что я расписал, лишь малая часть этой базы. А языки подобраны чтобы обучение было более простым. В случае с C# это тоже простой язык на самом то деле, и он отлично даёт понимание ООП. Но опять же, ЯП это всего лишь инструмент программиста.
По поводу книг, полный бред выше написали. Не книги устаревают, а новые версии языков и библиотек выходят, но база которую дают книги никогда не устареет. Сомневаюсь что если в книге расписан например какой нибудь паттерн, то он устареет раньше чем программист который будет его использовать)) С таким же успехом и видеокурсы аналогично устаревают. Просто книги, как и любую техническую литературу нужно уметь читать. И по большинству своему книги не читаются от начала и до конца. Особенно те в которых под 1000 страниц. А вот как справочник ее можно использовать)
P.S. И кстати да, не для каждых задач в программировании нужна математика(ну прям высшая), хватает обычно базовой школьной или какая у вас там есть. Усиленные познания нужны для ML, DS, там для игр(но опять же не везде), для каких то специфических инженерных задач. Но тот же бот написать для игры, вообще математика не нужна. Ну разве что вы двоечник, и даже 2 + 2 * 2 не решите.
P.P.S. А и самое главное, программирование это такая штука, которой учатся всю жизнь. Если среди присутствующих объявится несогласный с этим, то знайте, вы отсталый программист(динозаврам привет). Технологии постоянно развиваются, и нужно поспевать за ними. Всегда будет какой нибудь новый язык, который лучше для ваших текущих задач(ну если из коммерческих побуждений вы не вынуждены будете использовать тот который придется), всегда будут новые методики, да даже алгоритмы будут новые появляться. И все это вам нужно будет учить. И помимо учить, ещё и уметь применять. А не просто, а я вот выучил новый паттерн проектирования.
P.P.P.S. А ещё если у вас все получится, то рекомендовал бы не брезговать изучать и низкоуровневые языки, тот же ASM, это даст вам понятие как вообще работает компьютер(процессор, контроллер, железо кароч которое выполняет ваш код), а ещё лучше даже прям с этого и начать. Да будет трудно, но зато вы будете понимать сразу что такое стек, что такое регистры, что такое оперативная память и для чего она нужна, ну и прочее прочее отсюда вытекающее. Сто пудов уверен большинство считающих себя JS программистами(разработчиками) и знать не знают даже что такое переменная в их даже JS. Оттого то им и сложно переучиваться потом на более серьезные языки.