«BigSister»: проект по отслеживанию активности студентов в течение семестра
Во время учёбы на факультете математики и компьютерных наук студентки и студенты работают над практическими проектами под руководством специалистов из индустрии. Оля Шиманская, студентка 2 курса направления «Современное программирование», рассказывает о работе над проектом в весеннем семестре. Авторский стиль в тексте сохранён без правок.
Каждый семестр со списком проектов для практики нам помогает Computer Science Center. Проекты предлагают компании (JetBrains, Яндекс и другие) или отдельные люди — программисты, преподаватели. Руководителем нашего проекта «BigSister» была Лейла Хатбуллина из «Lambda».
Зачем подаваться на проекты
Я решила подаваться на проекты из-за того, что изначально руководители программы хотели сделать практику в этом семестре обязательной, а позже оказалось, что это не так. Наверное, в ином случае я бы побоялась, потому что думала, что у меня ещё очень мало опыта и навыков для работы над проектом. Но оказалось, что всё не зря: проекты были абсолютно разной сложности, начиная с веб-разработки, заканчивая нейронными сетями и машинным обучением.
Также были не программистские проекты, а скорее математические или алгоритмические. Среди студентов СП были те, кто попал на проекты и вполне успешно решали задачи, с которыми никогда не сталкивались и не имели нужного опыта в технологиях. Например, один из моих однокурсников работал над «Помощником поэта», где нужно было с помощью нейронных сетей генерировать рифмы и целые стихи. После работы над проектом я поняла, что важно иметь не столько опыт, сколько желание и силы быстро научиться применять необходимые технологии. Хотя стоит уточнить, что некоторые руководители всё же требуют опыт в конкретных технологиях, поэтому с одним желанием нельзя попасть абсолютно в любой проект.
Чтобы попасть в наш проект, студентам нужно было выполнить несложное тестовое задание: сделать веб-страницу, с которой можно попасть на страницу авторизации GitHub и после вернуться к интерфейсу, где будет сказано, прошла ли авторизация. А также пройти телефонное собеседование.
Я выбрала этот проект, потому что мне подошли требования (знание Git, Java/Kotlin, HTML, CSS и JS), я давно хотела попробовать себя в веб-разработке и получить опыт работы в команде.
Над нашим проектом на протяжении трёх месяцев работали 5 студентов: 3 студента «Современного программирования», 2 студента ВШЭ и 2-3 работника компании, которая предоставляла проект.
Работа над проектом: о задаче и трудностях
«BigSister» — это веб-приложение для отслеживания активности студентов, поощрения их достижений и повышения мотивации. На момент начала проекта была сделана небольшая часть на бэкенде — авторизация через GitHub и Trello и ещё какая-то мелочь, и простая HTML страница.
Нашими задачами были:
— Создать систему бонусов, чтобы давать их студентам-пользователям сайта за их активность.
— Создать онлайн-магазин, в котором на эти бонусы можно приобрести футболки, толстовки, кружки и другой мерч.
— Добавить возможность авторизации и отслеживания событий (например, студент сделал коммит, его изменения в коде одобрили) с GitLab и добавить бота в Slack или телеграме, который бы показывал уведомления о новых событиях и т.д.
Мне досталась задача — сделать сайт с помощью TypeScript и разных фреймворков для CSS. У меня не было большого опыта во всём этом, но мне очень нравилось разбираться в том, как нужно создавать сайт. Может показаться, что это очень просто и даже думать не надо, но на самом деле здесь много нюансов, которые нужно учитывать при разработке. Сам JavaScript очень кривой язык и нужно было быть предельно аккуратной в его использовании.
Если до этого проекта я думала, что работа веб-разработчика — одна из самых простых, то теперь я уверена, что она ничуть не легче работы любого другого программиста, поскольку есть огромный стек языков и фреймворков, в которых нужно ориентироваться, все эти технологии очень быстро устаревают и нужно помнить про то, что браузеры (и даже разные версии браузеров) поддерживают разные версии языков, их фичи и тому подобное.
У нас был очень плавающий график встреч, мы просто периодически созванивались в дискорде, где коворкали (работали вместе): каждый занимался своей задачей и, если сталкивался с проблемой, то задавал вопросы. В середине семестра мы писали отчёт, в котором рассказывали, что уже успели сделать, а в конце семестра делали общую презентацию для защиты проекта.
Основной проблемой было то, что часть студентов ленились, поэтому многие задачи так и остались невыполненными. Не знаю, почему так случилось, возможно, студенты просто безответственные, возможно, их напугали какие-то трудности с выполнением задач и они побоялись об этом сказать. Наверное, руководителю надо было внимательнее к ним отнестись и рассказать кураторам об этом. Не зря перед началом каждого семестра нам напоминали о том, что нужно браться за проект только в том случае, если мы будем способны уделять ему хотя бы 10 часов в неделю.
Про результат
К сожалению, мы сделали не так много, как планировалось, но всё-таки успели сделать сайт, добавить базовые действия для работы с аккаунтом (менять пароль/данные пользователя/тратить бонусы в магазине и т.д.) и обработку исключений.
Презентация с защиты и несколько страниц сайта
Планы на будущее
Проект всё еще находится на стадии разработки, сейчас над ним работают другие студенты. Часть из них, насколько мне известно, проходят с помощью него летнюю практику, другая часть — на оплачиваемой стажировке. После практики весной была возможность пойти на него же стажироваться (такое было в нашем проекте и во многих других). У меня была своя стажировка, поэтому я отказалась, а мой однокурсник согласился и сейчас там работает.
Проекты — это отличная возможность применить свои знания на практике, получить опыт работе в команде и даже попасть на стажировку. Например, две мои одногруппницы так попали из проекта от JetBrains на летнюю стажировку к ним: в тот же проект или уже в другой.
