TL;DR — Резюме

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

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

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

1. Не торопитесь

Если вы действительно думаете сменить свою карьеру на ИТ, потратьте некоторое время, чтобы лучше понять это. Посмотрите, действительно ли вам это интересно. Поговорите с некоторыми разработчиками, дизайнерами пользовательского интерфейса, инженерами-менеджерами, которым нравится их работа, и подумайте, понравится ли вам подобная работа (не стесняйтесь обращаться ко мне в LinkedIn). Если да, то начните медленно читать о технологиях в целом (для веб-разработки я не могу представить лучшего источника, чем MDN). Только после этого начинайте искать курсы и видео, которые бы вам помогли. Общее понимание ИТ и того, что вы хотите, поможет определить, какие курсы выбрать. Еще один аспект, о котором стоит упомянуть, — выгорание. Это достаточно серьезная проблема в ИТ-отрасли ¹. Держите вещи постепенно и последовательно. Обучение шаг за шагом не только обеспечивает качество информации, но и помогает оставаться здоровым. Лучше каждый день тратить на задачу один час, чем семь часов в день. Также поможет сделать процесс обучения частью повседневной жизни. Так вы будете более продуктивны, а информация осядет в вашей голове. Рутина также даст некоторое представление о том, каково это — писать код каждый день. Конечно, есть разработчики, которые действительно выкладываются до предела, чтобы быть на вершине, но так не может длиться вечно.

2. Не всегда выбирайте самый простой путь

На этом пути будет бессчетное количество сбоев, багов и аварийных ситуаций. Разработчики сталкиваются с ними каждый день, и это нормально. Где-то на нашем пути мы просто приняли это и научились справляться с такими ситуациями. Обучение тому, как справляться с трудностями в самом начале, может окупиться большими дивидендами. Например, знание операторов поиска Google ² может сэкономить массу времени. Еще одна полезная привычка, которую стоит выработать в самом начале, — это острота понимания того, как появилась ошибка и как ее решили. Младшие разработчики часто бросаются в Переполнение стека и просто копируют ответ, смотрят, поможет ли, и выполняют задачу. По крайней мере, что нужно сделать в этой ситуации, так это потратить еще 10–15 минут на то, чтобы разобраться в кодовой базе и прочитать документацию по использованным методам. Таким образом, разработчик плавно наращивает опыт и сокращает время исправления следующей аналогичной ошибки. Качество кода также должно быть одним из самых больших приоритетов для каждого разработчика, и его нельзя торопить. Представьте, что вы пишете какой-то сложный код и забываете о нем. Внезапно через год клиенту нужна новая функция, и вам нужно работать с этой сложной кодовой базой. Это будет кошмар. Четкие имена переменных, небольшие функции сделают код простым и не требующим пояснений. Вам и вашим коллегам будет приятно работать с такой кодовой базой.

3. Изучите общие принципы разработки программного обеспечения

В шутках о способности программистов понимать более сложные логические решения есть доля правды. Со временем разработчики учатся читать бизнес-требования или задачи и представлять, как это может выглядеть с точки зрения кода. Это одна из самых больших проблем для людей, меняющих операторов связи. Однако исторически ИТ произошли от математики и физики. Это означает, что у ИТ также есть рекомендации или общие принципы разработки программного обеспечения. Существуют общие проблемы в разработке программного обеспечения, а также шаблоны проектирования или практические правила их решения. Потратив время на изучение хотя бы пары из них, вы сможете лучше понять чей-то код или просто структурировать свой собственный. Например KISS³ (Держите это глупо, просто). Это довольно прямолинейно. Постарайтесь сделать кодовую базу простой, чтобы другой разработчик или вы через год могли легко в ней разобраться. Более сложный паттерн, о котором могут слышать многие начинающие разработчики, — это MVC (модель-представление-контроллер). Просто именно так мы структурируем наш код и делаем его легким для понимания и расширения. Модель придает форму данным, поступающим в приложение. Представление заботится о пользовательском интерфейсе или, другими словами, о той части, которую видит каждый пользователь. Затем есть контроллер, который, как следует из названия, контролирует, какое представление и данные должны отображаться для пользователя. Обладая этими знаниями, разработчики могут намного быстрее понимать проекты, написанные с использованием шаблона MVC, даже если они не видели его раньше. Конечно, существует гораздо больше принципов или шаблонов. Знание некоторых из них может помочь понять кодовые базы и повысить эффективность.

4. Ищите мотивацию, найдите наставника

Это в значительной степени стимул для вашего процесса обучения. На самом деле не так сложно найти разработчика с приличным уровнем опыта в кругу своих друзей. Другой способ — наставничество на таких сайтах, как Codementor.io или Codingcoach.io. Наставник может дать вам огромный толчок к вашей мотивации. Проблемы, которые могут занять часы, могут занять минуты. Тем не менее, наставники совершенно необязательны в самом начале, но необходимы через некоторое время. Когда я устроился на свою первую работу в качестве разработчика, я был довольно самоуверенным и уже имел несколько вредных привычек. За год работы в компании и с помощью технического руководителя я узнал больше, чем мог себе представить.

5. Установите дорожную карту

Начиная новый путь, мы всегда думаем и о цели. Осмелюсь сказать, что в разработке программного обеспечения нет конечной цели. Есть вехи или контрольные точки, которые делают эту профессию действительно увлекательной и всегда интересной. Вот почему я призываю всех составить для себя дорожную карту. Пример дорожной карты высокого уровня для Т-образного веб-разработчика можно найти здесь. Он перегружен терминологией и некоторыми пояснениями. Тем не менее, в примере есть несколько хороших идей. Дорожная карта разбита на пути. Младшие разработчики в большинстве случаев не имеют специализации. Таким образом, при составлении дорожной карты было бы неплохо не погружаться непосредственно в интерфейсные фреймворки или дизайн API. Хорошая дорожная карта должна охватывать хотя бы самые основные концепции каждого пути. Это приведет к лучшему пониманию программного обеспечения в целом. Эта стратегия также часто используется в школах кодирования. Чтобы разработчик не только получил общие знания, но и понял, на каком пути он хотел бы сосредоточиться больше. Имея это в виду, составить самую первую дорожную карту не должно быть сложно. Цели SMART с временными рамками в месяц могут стать отличной основой для этого. Сроки достаточно короткие, а конкретные задачи значительно облегчат повседневную работу. Эта комбинация также поможет следить за прогрессом и отмечать достижения. Наставник может быть огромным подспорьем и здесь. Стоит отметить, что эта дорожная карта должна быть живым документом, и ее можно корректировать. Он должен развиваться вместе с вашим опытом.

6. Работайте над тем, что вам интересно

Во время работы над дорожной картой подумайте о продукте, который вы тоже хотели бы разработать. Просто научиться программировать по учебникам — это хорошо. Сочетание учебных пособий и статей с чем-то, что вам действительно интересно, — это здорово. Просто это даст дополнительную мотивацию, когда все станет сложно. Кроме того, с самого начала вы сможете почувствовать удовлетворение от создания чего-то потрясающего. Например, я фронтенд-разработчик и знал, что мне нужны некоторые основы бэкенда. По этой причине я начал разрабатывать сервер Grand Theft Auto V. Таким образом, я смог погрузиться прямо в бэкэнд и наслаждаться игрой, делая это. Веб-разработка действительно позволяет и это. Если вы увлекаетесь автомобилями, попробуйте разработать целевую страницу модели автомобиля. Это сделает его более увлекательным, и вы будете меньше перегружены новыми вещами.

7. Станьте частью команды

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

8. Научитесь решать проблему, а не просто писать код

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

Вывод

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

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