Активно занимаясь программированием на Python, я выделил для себя определенные умения и технологии, которые нужны, чтобы в будущем быть конкурентоспособным специалистом. А также понимание того, что нужно освоить: это дает точное представление о том, как развиваться будущему Python-программисту.
Я начну со строгой базы языка. Необходимо понимание всех базовых процессов: как работают функции, списки, декораторы, строки, анонимные функции. Знания так называемого Python core даст толчок к более глубокому изучению. В среднем на осваивание базы уходит месяца два, но это мое мнение. Кто-то может и быстрее — здесь надо учитывать свободное время для изучения, дисциплину, а также, что очень важно, мотивацию. Нужно как можно больше практиковаться.
Также не стоит обходить вниманием и теорию: теоретические знания тоже сильно помогут овладеть языком. По литературе ничего не могу сказать, советую просто загуглить что-то для начинающих и пробовать.
Далее идет серьезная тема для изучения и это ООП (объектно-ориентированное программирование). Тут придется попотеть. Скажу по своему опыту: до меня долго доходило ООП, да и сейчас приходится разбирать и совершенствовать свои знания. Магические методы, классы, объекты — это тот самый «геморрой», с которым придется обязательно разобраться. Ведь дальше идет веб-разработка.
Вот я и перешел к вебу. На нем я сейчас остановился в своем обучении. Тут тоже много технологий, которые нужно освоить: API, web-scrapping, реляционные и нереляционные базы данных. Вы должны иметь четкое представление, как с ними работать. Также надо выбрать один из фреймворков (Django, Flask). Можно, конечно, знать и два сразу. Сейчас очень востребованным является Django, поэтому советую именно этот фреймворк для изучения. Как раз его я изучаю в данный момент.
Вот так мне видится весь стек технологий джуниор-разработчика на Python. Конечно, что-то еще может появиться для изучения, но пока я могу выделить только это.