Кто такой разработчик в EdTech-проекте? Рассказывает Геннадий Блыкин
О профессии рассказывает Геннадий Блыкин, Tech Lead онлайн-школы математики «Альфа школа», которая входит в TutorGroup. В компании с 2017 года.
О профессии рассказывает Геннадий Блыкин, Tech Lead онлайн-школы математики «Альфа школа», которая входит в TutorGroup. В компании с 2017 года.
Работа FullStack на EdTech-проекте отличается от занятости в других доменных областях мотивацией. Во-первых, специалист занят в конкретном продукте компании и более глубоко погружен в его процессы, что позволяет влиять на конечный результат, а не просто выполнять задачу. Во-вторых, разработчик помогает улучшать качество жизни пользователей и создает социальное благо. В-третьих, он делает продукт не в одиночку, а в связке с экспертами в сфере образования, например, вместе с преподавателями формирует концепцию проекта.
Если говорить о скоупе задач и способах выполнения, то технически они похожи на те, которые выполняются для аутсорсных проектов.
Full Stack разработчик выполняет функции Back и Frontend, кроме верстки: в «Альфа Школе» ей занимаются отдельные специалисты.
Отсюда вырастает скоуп обязанностей:
Посмотрим, как это работает, на примере чата для поддержки пользователей «Альфа Школы», который делал Full Stack разработчик. Сперва специалист вместе с лидом, менеджментом проекта и математиками обсудили видение этой фичи: зачем нужен чат, какими функциями должен обладать и т. д. Так получилось ТЗ, которое Full Stack детально рассмотрел вместе с лидом, поискал в задаче сложные моменты и способы их решения, продумал план действий и приступил к разработке. Сначала он накинул бэк-архитектуру: структуру таблиц в базе данных, связи. Затем реализовал модели и контроллеры, — все то, что будет возвращать нужный результат на front. С него накодил часть программы, которая забирала данные с back и выводила в понятном для пользователя виде, например, оповещения о новом сообщении.
Также на «Альфа Школе» Full Stack делает отдельные задачи Back и Frontend. Из недавнего: он интегрировал продукт с маркетинговыми сервисами, с помощью которых отслеживаются метрики. Сейчас специалист разрабатывает чат-бот в Telegram, который помогает пользователям регистрироваться в сервисе. Иногда он выполняет и DevOps задачи: настройку серверов, деплой новых версий, мониторинг.
Задачи ставятся в Jira, таймлайн прописывается в Timeline JS.
Если говорить о hard skills, то он должен знать PHP, понимать процессы Front и Back разработки, структур данных и алгоритмов. Нужно уметь отлаживать ошибки и устранять баги, проводить code review, продумывать связи между front и back частью, планировать работу. Стоит быть готовым изучить и использовать ряд фреймворков. Высшее образование программиста при этом не обязательно, но будет преимуществом. Глубину знаний и навыков покажет личное интервью с лидом.
Soft skills — это умение управлять собственным временем и приоритезировать задачи. Это актуальные навыки в условиях удаленной работы из дома. Здорово, если разработчик общительный, инициативный и неравнодушный к школьному образованию человек. Я со школьных лет занимался олимпиадами и по программированию, и по математике. Затем жизнь связала с профессией преподавателя математики и информатики, люблю эти науки до сих пор.
Плюс на нашей позиции — английский язык. Пригодится для профессионального саморазвития. Но это необязательно, потому что команда русскоговорящая.
В «Альфа-школе» они такие же, как и в большинстве других проектов. Он может наращивать техническую экспертизу, занимаясь сложными проектами. Либо при должном подходе стать качественным лидом, потому что на собственном опыте знает процессы разработки двух специальностей.
Два совета тем, у кого нет опыта. Первый: нужна практика и портфолио, чтобы вас заметили. Сделайте два-три простых проекта «в стол», которые покажут, на что вы способны. Второй совет: бесплатная стажировка в крупной компании лучше, чем фриланс, за счет полученного рабочего опыта, названия компании в вашем резюме, за счет того, что в компании будет команда, которая подскажет как устроены все процессы. Плюс вы научитесь правильно организовывать работу: с дейликами, код-ревью и так далее.
Самое банальное — это мануалы:
Линейно читать их необязательно, а вот в процессе обучения они будут хорошими помощниками.
Классика для PHP разработчика — это «PHP 7 в подлиннике» Дмитрия Котерова и Игоря Симдянова.
Для начинающего рекомендовал бы сначала освоить онлайн или офлайн курсы и почаще пользоваться Гуглом. Ищите ответы на вопросы на stackoverflow и не бойтесь задать там свои.
Сделайте реальный проект, например, самого простого блога, можно по своему же ТЗ. Но ни строчки копипаста! Далее обязательно почитать про паттерны проектирования и уделить внимание базам данных.
Неплохо освоить хотя бы один из популярных фреймворков вроде Laravel, Yii 2, Symfony.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.