Научиться писать код - дело нехитрое. У меня ребенок в 11 лет может написать сравнительно простую программу. Изучить набор инструкций и складывать их в осмысленные последовательности - это то, чему учат на курсах и это то, что в короткий срок позволяет найти работу.
Проблема тут в том, что это тупиковый путь. Давайте проведу аналогию с шахматами.
Научиться играть в шахматы тоже довольно просто - запомнил как ходят фигуры и уже можешь играть. Но само по себе знание того как ходят те или иные фигуры не делает вас хорошим игроком. Так же как и умение складывать вместе команды в языке программирования не делает эти программы хорошими.
В шахматах есть целая теория, которая включает в себя изучение фаз партии - дебют, миттельшпиль, эндшпиль. Дает представление о тактике и стратегии, вводит понятие “жертва качеством”, “потеря темпа”, “развитие фигур” и самое важное - учит оценивать свою позицию.
В программировании тоже нужно знать теорию, чтобы построить что-то не просто работающее, а качественное. До основ доходят практически все - это изучение чистой архитектуры, базовых принципов SOLID, GRASP и тому подобные вещи о которых вы точно слышали.
Но, во-первых, понимание и умение применять принципы - это разные вещи. Все их знают, а вот что касательно применения, то тут проблемы.
Во-вторых, самой важной частью любой программы является ее архитектура, умение оценивать качество (технический долг), строить вектор развития, собирать и анализировать требования, использовать теорию построения интерфейсов и многое другое. Вот этого как раз большая часть и не умеет.
Я постоянно анализирую активность вокруг архитектурных стримов, у меня есть наработанная статистика, которая показывает, что большая часть отваливается после двух-трех стримов (около 70%), из оставшихся 30%, только 10% охватывают больше 50% стримов, и лишь единицы просматривают их все.
Я также получаю обратную связь от тех, кто “не осилил”, обычно ответ “слишком сложно”. И это меня приводит к мысли, что нельзя сначала легко вкатиться в айти, изучив базу программирования, потом несколько лет работать по специальности, создавая CRUD-приложения, а потом резко перейти в архитектуру. Большая часть просто не осилит такой резкий переход.
Вывод простой - нужно входить в архитектуру поэтапно, не пытаясь все изучить с наскока, сначала нужно выбрать те темы, которые интересны, потом развивать остальные. Архитектурные стримы лучше смотреть не скопом, а с интервалом в неделю, а может быть даже две.
Если попытаться навалиться сразу, то скорее всего придете к выводу “слишком сложно” и бросите. Если сразу настроиться на постепенное изучение материалов, то вероятность освоить становится сильно выше.
В любом случае, все прекрасно понимают, что без архитектуры никакого развития в профессиональном плане невозможно. Просто некоторых это устраивает, а некоторые хотят добиться высоких результатов. Я делаю свой контент для второй группы. Переубеждать тех кому и так норм я не вижу смысла.