Я буду больше рассказывать не про задачу (внеси нужный сразу в тот блок, где проверяешь 1), а про то, что учить.
Если хочется научиться именно программить и в перспективе найти работу по этому направлению, то приготовься к тому, что будет больно. Очень. Для сравнения можешь купить себе тренировочное дилдо от 30 см. Ну, просто во взрослом возрасте это всё идёт тяжело, нейрогенез, если и есть, то идёт крайне плохо, а нейроны получаются не такие гибкие.
Из языков для начала прекрасно подходят Java и C#. Я не фанат ни одного из них, но в качестве первого языка они подойдут превосходно: у обоих строгий синтаксис, строгая статическая типизация, есть ооп, есть работа с ui в простом редакторе и много ещё всего. К тому же, оба языка используются в дикой природе и на них есть вакансии. Консольные приложения - это хорошо, но на них ты мало чему научишься и не сможешь освоить ооп. Сразу советую пробовать писать простые оконные приложухи.
Delphi тоже подойдёт. Работы на нём уже практически нет, но в целом для обучения годится. Из уникальных полезных фич - блочная структура программы: в этом блоке описываем возможные методы, в этом делаем реализацию, тут у нас объявления переменных и так далее - всё это очень помогает научиться структурировать код.
Python - хороший язык, но лучше рассматривать его в качестве второго. Он просто научит тебя немного иначе на всё это смотреть и делать отступы для блоков кода.
Ruby - по желанию, но только в третьем эшелоне. Работы на нём много, но ничему хорошему он тебя не научит.
PHP - годится как язык второго-третьего подхода. Вакансий много, порог входа довольно низкий, но для того, чтобы писать на нём хороший код, нужно понимать довольно много вещей. За последние несколько лет он вплотную приблизился к чисто энтерпрайзным языкам, таким как Java, но в отличие от того же C#, у него уже нет такой чёткой структуры и нет редактора, который бы половину кода за тебя генерировал. Собственно, те, кто начинают писать на php, если попадают в нормальный коллектив, то быстро выправляют свой стиль кода, если же их бросить и посадить на какой-нибудь битрикс или wp, то так и будут говнокодить до конца жизни
JavaScript/TypeScript - низкий порог входа, много вакансий, но те, кто начинают с них, как правило, не понимают базовых вещей и очень быстро либо скатываются в хипстерский говнокод, либо в говнокод олдскульный. Если начинаешь учить какой-то веб-ориентированный язык, то рано или поздно всё равно приходишь к JS (просто потому, что больше и нет ничего пока), но брать в качестве основного языка я его крайне не рекомендую.
Go, Rust, C/C++, Haskell, Elixir/Erlang, Lisp, Lua - лучше не надо. Go - довольно простой, много вакансий, но для эффективной работы с ним нужно много понимать. Rust - крутой, но очень сложный и сильно отличается всех остальных, это уже продвинутый уровень. C - можно пытаться учить, но в данный момент это довольно нишевый язык со многими совсем не очевидными вещами в глубине; может пригодиться, если захочется побаловаться с микроконтроллерами. C++ тоже туда же. Haskell - сильно отличается от других, работы практически нет, девиз - "избегай успеха любой ценой". Elixir/Erlang - не сложные, но довольно специализированные, порог входа выше среднего, для эффективного использования нужны высокие базовые навыки. Lisp - просто не нужен. Lua - крайне редко используется в качестве самостоятельного языка, но бывает и такое; очень похож на JS