Я не боюсь того, кто изучает 10 000 различных ударов. Я боюсь того, кто изучает один удар 10 000 раз. (С) Брюс ли
Давно известно, что теория без практики мертва, и все изученное надо пропускать через практику, потому что между знанием и умением реализовать это знание - пропасть.
Но прежде, чем бросаться на практику, необходимо осознать свой уровень в программировании. Осознать его и принять. К сожалению, так же нужно осознать, что работодатель хочет видеть универсала, который может сделать все сам, и этот универсал трансформировался на рынке в IT-специалиста. Специалиста, который глубоко компетентен в своей сфере, и неплохо разбирается в смежных сферах.
Далее нужно осознать и принять, что требования к начинающему специалисту у каждой компании свои, но есть обобщенный список, который хорошо просматривается в вакансиях: Знание языка программирования, знание БД, знание алгоритмов, умение работать в Линукс и знание стека TCP/IP. И вот эту вот всю информацию в вас будут стараться запихать различные курсы. В различном количестве и с различным качеством. Насколько глубоко это необходимо знать вы поймете, только выполнив проекты на курсах: создание сайта, админки, чата, менеджера задач, и прочего. После этого начнется ваш путь развития, который есть в roadmap где-нибудь в интернете, но который не дает понимания, насколько хорошо все это нужно знать. https://roadmap.sh/backend
Напомню, что мы говорим о будущих джунах, которые как слепые котята.
Встав на путь начинающего программиста — вы окажетесь перед девятибалльной волной, которая будет накрывать вас каждый день. Вы выйдете на ринг против сумоиста, со своим 40-килограммовым весом. И он будет вас вминать в землю, бездушно и ежедневно. Вас будут мучить вопросы: Зачем мне это знать? Как мне это применять? Зачем мне это СЕЙЧАС? В конце пути вас ждут 10-50 собеседований, на которых вы осознаете, насколько качественно вы учились. А затем вас возьмут на работу и ад начнется снова, с небольшой дозой эйфории от пройденного пути. И чтобы не сойти с этого пути у вас должна быть Практика и Мотивация.
Знания — ваш меч. Практика — точильный камень, благодаря которому ваш меч становится острым. Мотивация — это та сила, благодаря которой ваш меч остается острым.
Я не буду раскрывать тему мотивации, потому что у каждого она своя, но о практике скажу пару слов.
Практика: возьмите из головы знания и преобразуйте их в код, тыкая ручками по клавиатуре. Вы что-то изучили новое? Возьмите это и преобразуйте в код. Не подглядывая. Не смогли? Подглядите, и повторите снова. В процессе вы поймете.
Далее — семантика языка. Чем больше у вас практики использования списков, кортежей, словарей и тд, тем меньше сил вы тратите на чтение кода, на его осознание. В итоге вы начнете мыслить блоками, паттернами, четко осознавая, что скрывается за каждой строчкой. Но это требует практики. Иначе — никак.
Иначе разрыв между знаниями/задачами и вашими возможностями будет только расти. У вас начнется депрессия, неуверенность в собственных силах, отторжение новой информации. Не допускайте разрыва между знаниями и вашими возможностями. Практикуйтесь. Тогда программирование будет в кайф!
И еще: не выходите на ринг против чемпионов мира, берите задачи по силам. От простого, к сложному, последовательно, не спеша. Качайте ваш бицепс правильным весом.
В заключение: смиритесь и осознайте тот факт, что миддл по должности - это довольно часто джун по скилам. Работодатель может платить вам сколько угодно денег и называть вас хоть сеньором, но вы всегда должны четко осознавать свой уровень! Зазнаваясь — вы вредите не только себе, но и окружающим. Тех, кто не соответствует заявленным требованиям/ожиданиям, жизнь болезненно ставит на место.
Рыбак рыбака видит издалека, и тот, кто не хочет развиваться — виден в коллективе. От вас избавятся, вытолкнут за предел круга тех компаний, где происходит все веселье. Станете программистом на 1С и свет в ваших глаза навсегда потухнет.