Прокачайся в код-ревью: для первых 50 участников — курс бесплатный

время чтения: 3 мин

Вызов для начинающего разработчика: 5 типичных сложностей и советов, как с ними справляться

Автор статьи — Габриэль Радуку, Lead Software Engineer в EPAM.

Введение

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

Подробнее о профессии

5 сложностей для начинающего разработчика

1. Понимание фреймворков, библиотек, инструментов и языков

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

Мой опыт: Мой путь не начался с программирования, а с написания сценариев (скриптов). Я писал сценарии, которые преобразовывали документы Word клиентов в онлайн-опросы с готовыми шаблонами. После того, как я разобрался со всеми доступными возможностями онлайн-опросов, мне захотелось расширить знания, так как я много использовал библиотеку jQuery, но не до конца понимал, что она делает и зачем. Не повторяйте моих ошибок.

2. Поиск правильных инструментов

Совет: Проконсультируйтесь с опытными разработчиками и попробуйте использовать несколько разных инструментов, чтобы определить, какие из них соответствуют удобному для вас рабочему процессу и предпочтениям.

Мой опыт: Когда я как разработчик получил первый проект, я мог выбрать между чистым JavaScript или с jQuery, но быстро понял, что количество дупликаций и ссылок на элементы разрушит мой код, поэтому предпочел AngularJS. При этом я буквально не понимал ни одного из концептов, лежащих в его основе. Мне просто нравилась структура, возможность повторного использования кода и то, как этот фреймворк упрощал работу. Очевидно, это не тот подход, который можно кому-то порекомендовать.

3. Устранение пробелов в знаниях

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

Мой опыт: Когда у меня появился следующий проект, в нем было много сложных и иногда непонятных задач. К счастью, у меня был лучший союзник — Stack Overflow. Ссылка за ссылкой мы собрали некоторый код, чтобы создать приемлемое решение, но оно оказалось провальным. В тот момент стало ясно, что мне не хватает базового понимания самого языка. Как только я освоил основы, появилось настоящее рабочее решение. Но несмотря на его функциональность, все равно требовалась доработка, оптимизация памяти и другие усовершенствования.

Схема устранения пробелов в знаниях

4. Постоянное стремление к созданию впечатляющих решений

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

Мой опыт: После нескольких дополнительных лет работы над приложениями на Angular меня ожидал новый вызов: создание динамического онлайн-опроса. Я был взволнован и вместе с тем воодушевлен, так как понимал, что могу использовать свои глубокие знания в этом направлении для разработки действительно впечатляющего решения. Но моих знаний языка все еще не хватало. Я думал, что овладел фреймворком Angular, но все еще не понимал JavaScript. Мне пришлось поторопить команду, чтобы предложить наше простое решение в кратчайшие сроки. Мы его представили клиенту, но это не было лучшим решением.

5. Адаптация к изменяющимся технологиям

Совет: Изучайте разнообразные технологии и фреймворки. В зависимости от специфических требований проекта выбирайте инструмент или концепцию, которая максимально соответствует задаче.

Мой опыт: Практически на протяжении всей карьеры я был абсолютно уверен, что Angular — единственный способ создавать высокопроизводительные фронтенд-приложения. Но как же я ошибался! Эта слепота удерживала меня прикованным к одним и тем же методам и практикам в течение долгого времени. Наконец, я начал использовать React. Это не было просто. В этот момент я задал себе вопрос: стоит ли мне, опытному разработчику на Angular, что-то менять и становиться разработчиком среднего уровня на React? Я не имел представления, как выполнять большинство задач с использованием React и не понимал, почему некоторые из них такие сложные. Но именно этот вызов вдохновил меня исследовать сферу, где у меня будет больше выбора и гибкости.

Заключение

Я думаю, что ключевой вывод такой: не ограничивайте свои мысли тем, что если у вас есть молоток, то любая проблема — это гвоздь. Не пытайтесь решать все задачи с помощью одного фреймворка, даже если это возможно. Для начала определите, какой результат вы ожидаете, а затем выберите инструмент, который наверняка поможет этот результат получить. Задача разработчика — найти решение для поставленных задач. Если это можно сделать быстрее с помощью Svelte или Solid и результат будет читабельным, поддерживаемым и бесконечно масштабируемым, то почему бы и нет? Не бойтесь синтаксиса нового фреймворка. Посмотрите на концепцию, лежащую в его основе. Подходит ли она к текущей структуре стека или же создает проблем больше, чем решает?

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