Подробный план самообучения на бэкенд-разработчика (Python или Ruby) «c нуля до профи»

— план предполагает, что вы уже определились с выбором желаемого языка программирования и направлением, которым хотите заниматься. Здесь это именно веб-разработка в части бэкенда. Выбор направления выходит за рамки этого плана.
— что выбрать Python или Ruby? Если у вас нет никакого опыта программирования, то Python. Ruby выбираем только в том случае, если а) у вас есть хоть какой-то опыт программирования б) вы уже попробовали Ruby и вам понравилось.
— перед началом плана прочитайте все уровни и определитесь, на каком находитесь вы. С этого уровня и начинайте.
— нужно ли строго придерживаться того порядка изучения, который предложен в плане? Нет, это не обязательно. Очевидно, что нет смысла изучать фреймворки, если вы еще не выучили язык. Или изучать продвинутые понятия ООП, если нет понятия об основах. Но в то же время, например, базы данных я поместил в Уровень 2 совершенно произвольно. Можно их начать изучать хоть с самого начала.
— нужно ли все указанные книги прочитывать от корки до корки, а курсы проходить от начала до конца? Нет. Читайте то, что вам заходит сейчас. Бросайте книгу/курс, если вам стало скучно.
Отсутствует опыт программирования. Совсем.
На этом уровне главная задача — научиться азам программирования и основам выбранного языка. Освоить синтаксис и основные конструкции.
Ну и побочная задача — понять, насколько это интересно, действительно ли хочется посвятить этому какую-то значительную часть жизни.
Книги и курсы для начинающих:
Бесплатные курсы на stepik:
Легкий способ выучить Python. Зед Шоу
Изучаем Python. Марк Лутц
Python на примерах. А. Васильев
На всякий случай напомню, что просто читать книги без практики абсоютно бесполезно. Делайте примеры и упражнения из книг, придумывайте свои задачи. Чем больше практики, тем лучше.
Внимание! Начинаем учить английский и не заканчиваем на всех уровнях. Первоначальная цель: научиться читать технические тексты и документацию. Следующая цель: разговорный язык уровня B1 (лучше B2).
Уже разобрались с основами, теперь учимся писать хороший код.
На этом этапе мы уже твёрдо убеждены, что хотим быть профессиональным разработчиком и готовы копать в глубину. На этом уровне нас ждёт настоящий хардкор.
Главная задача — изучить принципы ООП, научиться писать чистый код.
Побочная задача — освоить профессиональные инструменты разработчика: IDE/редактор (в том числе дебаггинг), Линукс, Git. Помимо самого языка изучаем его инфраструктуру: пакетные менеджеры, виртуальные окружения. Стандарты оформления кода, линтеры, статические анализаторы.
— устанавливаем линукс в качестве второй ОС (ну или единственной, если прям в омут с головой). Если вы богатенький буратино, то просто купите себе Мак. Профессиональная разработка бэкенда на Питон/Руби не ведётся на Windows. Просто смиритесь с этим. Я рекомендую не заморачиваться с выбором дистрибутива, а просто установить Ubuntu.
— начинаем изучать Git: https://git-scm.com/book/ru/v2 и заводим аккаунт на Github
— КЛЮЧЕВОЙ ПУНКТ. Мы учимся применять на практике теорию, о которой пойдет речь дальше. Делаем маленькие (МАЛЕНЬКИЕ!) проектики. Это должны быть библиотеки и/или консольные программы, чтобы не заморачиваться с GUI или вебом (он нас ждёт на следующем уровне). Придумывайте себе задачи сами, можно погуглить идеи. Это может быть текстовая игра/квест, хранилище паролей, список дел, и т.п. Проекты обязательно ведём в Git и выкладываем на Github.
— разбираемся, что такое виртуальное окружение и используем его
— используем пакетные менеджеры