Уроки

Как расти, работая в одиночку

Вскоре после выпуска я присоединился к инкубатору, где одновременно экспериментировали несколько идей стартапов.

В компании было всего три инженера, включая инженера по iOS, бэкэнд-инженера и инженера полного цикла (меня).

Трое из нас были заняты собственными долями в проектах и ​​в итоге в основном работали независимо. Код-ревью было такой роскошью.

Я, свежий выпускник, (в основном) работал единственным инженером в некоторых проектах. Эти ситуации либо способствуют развитию человека, либо мешают ему.

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

1. Создавайте и просматривайте свои собственные PR.

Чего ждать? Вы работаете один? PR? Почему бы просто не выполнить фиксацию непосредственно в основной ветке?

Написание кода и чтение кода открывают разные перспективы, даже если это наш собственный код.

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

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

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

2. Научитесь писать код без ошибок.

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

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

Вы можете найти несколько тем, в том числе

  • как избежать тихих сбоев, особенно в языках со слабой типизацией, таких как Ruby, Python, JavaScript,…
  • как писать тестируемый код (и писать тесты)
  • однонаправленный поток данных (для отслеживания мутации данных)

3. Попробуйте создать свои собственные фреймворки / перестроить фреймворк.

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

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

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

4. Работайте усерднее (помимо работы с умом)

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

Помимо этих тренировок, я посещал местные встречи, общался с людьми, читал RailsCast и Martin Folwer во время ежедневных утренних поездок в метро…

Спасибо за чтение. Тем, кто попал в подобную ситуацию, я надеюсь, что эта статья вам немного поможет.

Хотя я начал эти практики, работая в одиночку, я все еще считаю эти практики ценными, когда я работаю и возглавляю команды.

Я что-то пропустил? Дайте мне знать в разделе комментариев ниже. Я с нетерпением жду вашего ответа.