До того, как заняться веб-разработкой, я был инженером. Раньше я работал с программным обеспечением, в основном с робототехникой и машинным обучением, поэтому я подумал, что веб-разработка будет интересным переключением. Я понял, что это программирование, и мне это нравится, так почему бы и нет?

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

Это не имеет ничего общего с математикой

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

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

Вам приходится часто общаться с людьми

Честно говоря, я думал, что поскольку веб-разработчики в основном пишут код, мне не придется ни с кем разговаривать. Казалось, что мне просто нужно, чтобы кто-то сказал мне, что они хотят сделать, а затем я иду работать один до конца недели. Я действительно с нетерпением ждал этого с моей первой работой веб-разработчика!

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

Если вы пытаетесь найти работу с ограниченным взаимодействием с другими людьми, веб-разработка не для вас. Наверное, это стало для меня самым большим шоком из-за всех стереотипов о разработчиках. Разработчики — одни из самых дружелюбных, отзывчивых и разговорчивых людей, несмотря на то, как нас изображают СМИ.

Вы действительно учитесь на ходу

В любой работе есть такой уровень, но в веб-разработке все немного по-другому, потому что изменения могут быть радикальными. Языки программирования и фреймворки постоянно обновляются. Даже IDE обновляются, и это может изменить ваш обычный рабочий процесс. Ваша компания может решить перейти на React с Angular или с MVC на .NET Core.

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

Это может быть что-то такое же простое, как чтение статей, когда у вас есть возможность, или работа над личными проектами, чтобы закрепить эти концепции и специфичный для языка синтаксис. Будьте готовы много гуглить и не стесняйтесь. Старшим разработчикам по-прежнему приходится все время что-то искать.

Обычно вы не начинаете проект с нуля

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

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

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

Настоящих правил нет

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

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

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

Это были лишь некоторые вещи, которые я хотел бы знать в самом начале. Сейчас существует гораздо больше ресурсов, но ни один из них не тратит время на объяснение того, чем на самом деле занимается профессиональный разработчик каждый день. Надеюсь, это даст новичкам немного больше понимания.

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

Привет! Я провожу бесплатный вебинар 26 мая по Git. Вы узнаете все, что вам нужно знать, чтобы начать работать с Git и GitHub. Если вы раньше не использовали Git, это будет отличным введением в него. Если вы уже использовали Git раньше, это будет довольно хорошим напоминанием. Зарегистрироваться на вебинар можно здесь