Оглядываясь назад на некоторые уроки, которые я извлек из работы в стартап-компании

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

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

Чтобы дать вам некоторую предысторию, я исхожу из нетехнического образования и потратил год на самообучение, чтобы изменить свою карьеру. В настоящее время я работаю в начинающей компании в качестве фронтенд-разработчика, использующего TypeScript, React, Redux и Material-UI.

Если вам интересно прочитать полную историю о том, как я сюда попал, ознакомьтесь со статьей ниже.



1. Готово лучше, чем идеально

В моем офисе часто говорят: «Сделано лучше, чем идеально».

Мне потребовалось время, чтобы понять, что это на самом деле означает.

Как новый разработчик в компании, сначала я потратил много времени на рефакторинг своего кода и попытки сделать его идеальным. Я быстро понял, что идеального кода не бывает. Всегда есть что-то, что можно реорганизовать, чтобы использовать меньше строк кода или сделать его более читабельным.

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

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

Лучше иметь продукт, который можно показать клиенту, чем не иметь его вообще. Готово лучше, чем идеально.

2. Напишите код для чтения другими (или для себя в будущем).

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

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

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

  • Использование подходящих имен переменных
  • Создание повторно используемых компонентов и не повторение кода
  • Написание логики, которой легко следовать

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

3. Это помогает узнать другую сторону (хотя бы немного).

Моя роль - фронтенд-разработчик, использующий TypeScript, React, Redux и Material-UI. Весь код, который я написал, находится в интерфейсе пользователя. Я не отправлял код на серверную часть. Но я узнал, что все еще полезно знать о другой стороне (в моем случае, о бэкэнде).

Мне часто нужно обратиться к бэкэнд-коду. При запросе к API неоднократно возникала ошибка. Сначала мне всегда казалось, что я что-то не так сделал. Но, узнав больше о бэкэнде и о том, как он работает, я теперь могу сказать, есть ли ошибка в написанном мной коде внешнего интерфейса или что-то нужно исправить в API.

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

В качестве серверной части мы используем Ruby on Rails. Если вам интересно, это видео, которое я просмотрел, чтобы получить общий обзор.

4. Организационные навыки являются ключом к завершению задач.

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

Наша компания использует ZenHub для управления своими задачами. Если вы не знакомы, ZenHub - это инструмент управления проектами в GitHub. По сути, это доска для проектов GitHub с множеством дополнительных функций.

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

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

  • Планируйте, какие билеты я буду работать в этот день
  • Сгруппируйте оставшиеся билеты по приоритету
  • Оцените, сколько времени может занять выполнение каждой задачи
  • Составьте примерный план того, как будет выглядеть остальная часть моей недели

Организованность помогает мне своевременно выполнять все задачи.

5. Не бойтесь принимать новые вызовы.

Сначала мне было страшно браться за новые задачи, которые я не умел выполнять. Я был счастлив просто создавать простые таблицы и формы. Однако, как только я начал браться за новые задачи, я понял, что это лучший способ бросить вызов самому себе и оставаться воодушевленным своей работой.

Вот список того, чем я занимался за первые 6 месяцев:

  • Написание моих первых модульных тестов с использованием библиотеки тестирования Jest и React
  • Написание моих первых сквозных тестов с использованием Cypress
  • Добавление Google OAuth в проект
  • Добавление reCAPTCHA в проект
  • Настройка визуального регрессионного тестирования с помощью Storybook и Chromatic
  • Использование Figma для разработки UX / UI

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

6. Оставайтесь любопытными и никогда не переставайте учиться

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

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

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



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

  • Создайте бэкэнд с помощью Node.js, Express и MongoDB
  • Подготовка к сдаче экзамена AWS Certified Cloud Practitioner
  • Создайте мобильное приложение с React Native

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

Вывод

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

Подводя итог, вот уроки, которые я извлек за первые 6 месяцев:

  1. Готово лучше, чем идеально
  2. Напишите код для чтения другими (или для себя в будущем)
  3. Это помогает узнать другую сторону (хотя бы немного)
  4. Организационные навыки являются ключом к завершению задач
  5. Не бойтесь принимать новые вызовы
  6. Оставайтесь любопытными и никогда не переставайте учиться

Дополнительная литература