Поверьте мне или нет, но все еще многие люди думают, что если вы умеете кодировать, вы знаете, как создавать программы.

Я точно знаю?

Такой образ мышления побуждает людей проходить курс 101 программирования снова и снова на разных языках в надежде, что они научатся разрабатывать приложения.

В конце концов они понимают, что им нужно будет пройти курсы по Angular, React, Express, Laravel, Rails или по любым другим направлениям недели. Эти курсы поразили их концептуальной информацией, которая даже не была затронута в курсах 101 программирования, которые едва научили вас писать for циклы.

Но разве не для этого нужны курсы? Обучает вас тому, чего вы не знаете?

К сожалению, эти новые концепции скрыты за слоями кода, которые они не полностью понимают. В такие моменты становится трудно абстрагироваться от концепций кода. Новички строят такой подход, заключающийся в прямом прыжке в код, не имея в виду стратегии или плана, и именно здесь они сталкиваются с трудностями и достигают глупого уровня отчаяния.

Я не осознавал, насколько это серьезная проблема, пока не встретил некоторых новичков на моем новом рабочем месте. Как только им были назначены какие-то задачи, их первым инстинктом было перейти в VS-код и начать печатать. Старшие разработчики поступили наоборот; у них были UML, диаграммы архитектуры и доски для спринтов еще до того, как они написали хоть одну строчку кода. Из-за разницы в мировоззрении обращение за помощью было кошмаром для новичков: представьте, что вы спрашиваете, как пользоваться машиной для мороженого, и слушаете трехчасовую беседу компьютерщиков о механике рычагов и шестеренок.

20% разработки программного обеспечения - это написание кода. 10% разговаривают с людьми. 70% разговаривают сами с собой.

У этой проблемы нет простого решения, потому что люди, которые преподают разработку программного обеспечения, обычно являются ветеранами, у которых принципиально иной подход, чем у новичков, пытающихся учиться. Педагогам необходимо научиться отделять простые концепции от кода и представлять программирование как простое представление концепций, а не обучать концепциям как чему-то, что можно сделать в коде.

Так что же это за «концепции», о которых я говорил? Если вы начинающий разработчик, читая это, вы, вероятно, относитесь к некоторым вещам, о которых я говорил. В следующем посте я рассмотрю некоторые концепции, которые начинающие разработчики должны попытаться понять, прежде чем они смогут полностью перейти к той части, где мы пишем код.

Спасибо за чтение!