Как мы в iOS отделе Fora Soft обучаем и развиваем новичков

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

Но ты боишься, что у тебя не получится? Знаешь, кто не ошибается? Тот, кто ничего не делает. Приходи к нам, и через какое-то время ты сам будешь агитировать своих друзей, одногруппников присоединиться к Fora Soft. Главное - сделать первый шаг, но ты его уже сделал - открыл нашу статью.

О чем она и зачем тебе её читать? Чтобы узнать как у нас все устроено, с помощью кого и чего будешь расти в профессиональном плане.

Как мы в iOS отделе Fora Soft обучаем и развиваем новичков, image #1

iOS-команда Fora Soft

Как мы в iOS отделе Fora Soft обучаем и развиваем новичков, image #2

Да-да, именно так у нас. Один из самых шумных отделов в Fora soft - это iOS-отдел. Но шум от нас идет не потому что мы обсуждаем футбольный матч или внешнюю политику РФ, а потому что разговариваем про iOS. Apple представила новый продукт? Готовьтесь к тому, что кто-то начнет его хейтить, а кто-то защищать и кричать, что “It’s revolution, Johnny”.

Но помимо новых железяк от Apple, мы, конечно, обсуждаем наш любимый Swift (Obj-C, прости нас) и всегда делимся информацией между собой. Кто-то что-то придумал? Он кричит, и все бегут смотреть, как это работает.

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

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

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

  1. Загуглить решение в интернете, вставить код, все работает. Ты ничего не понял
  2. Открыть документацию Apple, закрыть документацию Apple, попытаться сделать самому, наделать кучу костылей, отдать таску в тест, получить миллион багов
  3. Открыть документацию Apple, изучить документацию Apple, спросить у коллег про подводные камни, сделать, показать коллегам, получить одобрение, отдать в тест, получить +5 к карме от тестировщика

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

Кто тебя сделает лучше?

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

Куратор

Как мы в iOS отделе Fora Soft обучаем и развиваем новичков, image #3

Ментор, куратор, наставник, консультант, коуч... Сколько сейчас модных словечек появилось. У каждой роли есть свои границы, от которых можно сойти с ума. Чётко определить, кем является программист по отношению к обучаемому, нельзя. Поэтому давайте определимся - перечисленные выше синонимы означают «старший программист». В Fora Soft мы используем термин «куратор», поэтому его вы увидите чаще.

Что будет делать куратор:

  • Код-ревью. Многие про это слышали, но не все понимают, как процесс происходит.

У тебя есть задача. Согласно Git Flow, ты создаешь для нее отдельную ветку. По завершению таски, ты делаешь merge request, и твой куратор её проверяет. Хороший куратор смотрит не только на синтаксис, а в первую очередь следит за логикой решения задачи. Оставляет свои комментарии и отправляет на доработку. Если же куратора все устраивает, то происходит мердж в ветку Develop. Благодаря такому механизму, можно отследить, как прогрессирует программист. Со временем комментариев становится все меньше и меньше, а код сразу же попадает в Develop.

  • Обсуждать твои сильные и слабые стороны. Спустя какое-то время, у куратора сформируется твой профессиональный портрет. Он будет формироваться на основании твоего кода, подхода к решению задач и исходя из отзывов других членов команды. И как только этот портрет будет готов - куратор сядет с тобой за стол и всё обсудит. Где-то похвалит, где-то поругает, скажет, на какие места стоит обратить внимание, что почитать, какие курсы пройти. Да и просто поделится сокровенным с тобой.
  • Будет твоим справочником. Куратор - это не твой личный гугл. Всегда уважай его время, но знай, что с вопросом к нему всегда можно обратиться. Рассмотрим всё на примере. Ты получил таску, допустим, сделать экран логина. Как делать нельзя? Сразу бежать к куратору для обсуждения. Нужно делать так: получил таску, прочитал описание, посмотрел её. Есть вопросы на этом этапе? Запиши их, задай их своему ПМу и куратору в общем канале проекта. Тебе ответят, дальше переходим к процессу проектирования. Ты должен подумать, как будешь решать эту задачу. Составь план, опиши четко порядок своих действий. Возникают вопросы на этом этапе? Ничего страшного, записывай их. И вот только теперь идем к куратору. Ты расскажешь ему, как хочешь сделать, он, возможно, тебя поправит или всё одобрит. Скорее всего, на этом этапе уже ранее записанные твои вопросы найдут свои ответы. Хороший куратор должен предупредить тебя про подводные камни твоей реализации, если они есть. А теперь в путь, программируй и жди код-ревью.

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

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

PM

PM, он же Project Manager, выступает связующим звеном между программистами и заказчиками. Выше шла речь про куратора. Так вот, запомни: куратор - это твой «старший брат», который всему научит. PM - это твоя «мама», которая тебя отругает, когда ты напроказничал, а когда придет твой «отец» (заказчик), то будет тебя защищать до последнего.

Как PM ругает и уместно ли это слово? Нет, конечно, никто тебя в угол не поставит. У нас вообще нет понятия ругать, орать и т.д. Когда ты накосячишь, твой PM спросит, почему так произошло, узнает у твоего куратора, почему он это допустил. Поинтересуется, что ты сделаешь в будущем, чтобы избежать повторения этой ситуации. Этот разговор пройдет настолько мягко, что ты даже не поймешь, что это был разбор полётов.

Помимо этого, ты, как программист, можешь предложить улучшение какого-то механизма. Возможно, ты придумаешь новую фичу, где-то сделаешь процесс более очевидным. Тебя никто не загоняет в рамки, ты творец, помни об этом. Но и не стоит забывать, что нельзя молча делать так, как ты считаешь нужным. Мы не в кружке любителей программирования, а в бизнесе. Заказчик платит за определенные вещи, он их ждет. А если он их не получает по какой-то причине, то вероятность того, что он будет счастлив, очень маленькая. Так как быть тогда? У тебя есть идея, но есть требования и заказчик. Беги к своей «маме», к своему PM. Расскажи ему всё, что придумал, опиши текстом, чтобы не потерялось. У нас почти на всех проектах есть документ, в котором члены команды предлагают свои улучшения. Дальше уже работа PM, он идет с этими идеями к заказчику. Если идея понравилась заказчику, и его бюджет позволяет это реализовать, она воплощается в жизнь.

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

Никогда не ставь PM выше себя, он не твой начальник. PM - один из членов команды, но его обязанности отличаются от твоих. И забудь про те картинки, которые ты видел в интернете, там где PM представлен в виде монстра, который требует только решения задач и наплевательски относится к тебе. Это все стереотип. А если всё-таки твой PM такой монстр, то беги от него, это ужасный PM. Куда бежать? К самому доброму человеку — CEO Fora Soft.

QA

QA, он же тестировщик. Зачастую, когда джуны отдают таски в тест, они получают много обратной связи от тестировщика - это баги. Не злись на QA, ведь его цель - сделать приложение лучше своими комментариями. Вы в одной команде. Разрабатывая приложение, советуем думать, как тестировщик и обрабатывать кейсы заранее.

HR

Столько ролей, что у тебя голова может пойти кругом, но есть среди них одна особенная, которая не даст тебе утонуть в этих организационных потоках, - это HR. Вообще, HR - это первый человек компании, с которым ты познакомишься. Он будет на всех собеседованиях, после успешного прохождения он первый тебя встретит. Расскажет тебе про офис и сотрудников. HR будет следить за тем, как ты вливаешься в коллектив, заботиться о тебе и твоём рабочем месте. Может, у тебя нет наушников? Не стесняйся, попроси у HR. А ещё HR выдаст тебе наш мерч, всякие крутые штуки, футболку, худи, тапочки (да, мы в офисе ходим в тапочках).

HR объяснит тебе, как заказывать обед. Да, у нас оплачиваемые обеды! Он введёт тебя в курс всех организационных моментов, покажет систему JIRA. На все твои вопросы наши HR с радостью тебе ответят.

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

Проще говоря, PM — твоя «мама» на проекте, а HR — в офисе.

Карта целей

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

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

Памятка новичка

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

Заключение

Здесь мы лишь хотим сказать одно: ждем тебя у нас :)

Пиши на hr@fora-soft.com.

А по специальному промокоду “МишаiOS” + 5 к карме. :)

425 views·2 shares