Джуниор на удалёнке

Дата: 15.03.18
Автор: Андрей, @duker33

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

Вот чем полезен офис для вашего развития:

  1. живое общение с коллегами
  2. совместная работа над задачами.
  3. работа с наставником.

Работать со всем этим можно не только в офисе. Посмотрим как забрать всё это с удалёнки.

1. Общаться с коллегами вживую

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

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

Помимо офиса, есть и другие способы добыть живое общение. Можно ходить на митапы/конференции и общаться там. Например по Питону: СПб, Москва. Можно встретиться с коллегой в кафе 1 на 1. В этом случае отождествление будет куда более продуктивным, чем сидение за ноутами бок о бок.

2. Вместе работать над задачами

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

3. Получить наставника

В офисе из вас сделают героя:

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

Покажут как работать в процессе

Вам в любом случае покажут как работать в процессе. Потому что без него невозможно работать.

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

В общем случае в распределённых командах процесс лучше, чем в офисных. Но бывает всякое, конечно. При выборе команды (если он есть) рекомендую в первую очередь смотреть на процесс.

Укажут на ошибки в коде

Укажут только в том случае, если в команде принято код-ревью. В хорошем процессе оно всегда есть.

Помогут расставить приоритеты в учёбе

Прогеры получают деньги только за то, что решают проблемы (issues). Кто решает больше сложных проблем, тот и круче. Получает больше денег, пользуется уважением. Постигает дзен, в общем. Это состояние дзена - ваша главная цель обучения. Текущие проблемы, которые вы (не) можете решить, расставляют ваши приоритеты в учёбе. И ничто больше.

Старшие коллеги не будут заниматься вашей учёбой. Они как раз будут заняты решением проблем в офисе или вне его. С первых дней в ИТ вы сами расставляете свои приоритеты в учёбе. Для этого пользуетесь набором текущих проблем.

У вас будет получаться куда лучше, если проблемы будут чётко сформулированы и касаться по большей части творческих задач, а не рутины. Здесь мы снова вспоминаем про хороший процесс.

Новые технологии и "не работает"

В вакансиях можно встретить простыни из технологий вида: python3.6, SOA, Django, Flask, Pyramid, async/await, gevent, mixfight, postgres, docker, CI, NoSQL, amqp, github, kanban.

Это не значит, что вам будут показывать как работает каждая. Вы сами с ними будете разбираться. По пути будут сложности. Что-то будет бесконечно ломаться и не запускаться. Офисный способ решения проблемы - n человек тыкают пальцами в один монитор. И снова он не самый эффективный. Для решения таких проблем можно использовать stackoverflow и github issues.

Как заменить офис

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

Идеальный на мой взгляд подход для джуниора выглядит так: