TD;DR
https://stepik.org/course/363
https://www.youtube.com/watch?v=rrRZZ_3licM&list=P...
Если тебе обещают, что научат программировать за 21 день - не верь им.
Если тебе обещают, что трудоустроят - не верь им.
Если тебе обещают, что это будет бесплатно - не верь им.
Программирование это навык, поэтому нужно учить не язык, а развивать навык.
Необходимо понять, что оно в себя включает - алгоритмы, структуры данных, абстрактное мышление, инженерное мышление.
Если у тебя нет своей программы - доверься людям, которые прошли путь и могут порекомендовать ресурсы. Помни, что бесплатный сыр только в мышеловке. Либо ты тратишь кучу времени на систематизацию знаний, либо ты платишь за то, чтобы получить программу.
Вот тебе ссылка на плейлист, посмотри, понравится ли тебе
https://www.youtube.com/watch?v=rrRZZ_3licM&list=P...
Я думаю, что дальше сам разберешься.
Из литературы. Это из тех, что я читал или слышал о них:
Грокаем алгоритмы (Адитья Бхаргава)
Код. Тайный язык информатики (Чарльз Петцольд)
Идеальный программист. Как стать профессионалом разработки ПО (Роберт К. Мартин)
Цель. Процесс непрерывного совершенствования (Элия М. Гольдратт, Джеф Кокс)
Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)
Помни, что нужно учиться непрерывно всю жизнь, если один раз вступил на этот путь, то назад дороги нет. Будешь видеть мир по-другому. Если тебе кажется, что ты все знаешь, значит ты не знаешь ничего.