Стажировки и образовательные проекты. JetBrains

Содержание

Слайд 2

JetBrains сегодня — 10 000 000+ пользователей по всему миру ...

JetBrains сегодня —

10 000 000+
пользователей по всему миру

...
успешной работы

...
офисов
в Санкт-Петербурге,
Москве и

других городах

700+
высококлассных разработчиков

...
продуктов

5 800 000+
пользователей Kotlin

99
из Fortune 100 компаний

Слайд 3

JetBrains сегодня — 10 000 000+ пользователей по всему миру 21

JetBrains сегодня —

10 000 000+
пользователей по всему миру

21
год успешной работы

9
офисов
в Санкт-Петербурге,
Москве,


Новосибирске,
Праге,
Мюнхене,
Амстердаме,
Бостоне
и Фостер Сити

700+
высококлассных разработчиков

30
продуктов

5 800 000+
пользователей Kotlin

99
из Fortune 100 компаний

Слайд 4

JetBrains сегодня —

JetBrains сегодня —

Слайд 5

JetBrains сегодня —

JetBrains сегодня —

Слайд 6

Образовательные продукты JetBrains — проектно-ориентированная обучающая платформа бесплатные и опенсорсные образовательные

Образовательные продукты JetBrains —

проектно-ориентированная обучающая платформа

бесплатные и опенсорсные образовательные IDE

совместим с IntelliJ

IDEA, PyCharm, WebStorm, CLion, GoLand, и Android Studio
Слайд 7

Образование: полезные ссылки — jetbrains.com/edu-products jb.gg/academy/student_offer compscicenter.ru research.jetbrains.org jb.gg/student lp.jetbrains.com/internships/ —

Образование: полезные ссылки

jetbrains.com/edu-products
jb.gg/academy/student_offer
compscicenter.ru
research.jetbrains.org
jb.gg/student
lp.jetbrains.com/internships/

— Все образовательные продукты
— Бесплатный

триал JetBrains Academy
— Обучение в Computer Science Center
— Лаборатории JetBrains Research
— Бесплатные студенческие лицензии
— Лэндинг с примерами стажерских проектов
Слайд 8

Индивидуальный интересный вам проект Улучшение инструментов разработчика Погружение в жизнь команды

Индивидуальный интересный вам проект
Улучшение инструментов разработчика
Погружение в жизнь команды
Обучение и cамостоятельность
Результат

Стажировки:

как они устроены?

Для студентов / учащихся CSC
Индивидуальный интересный вам проект
Улучшение инструментов разработчика
Погружение в жизнь команды
Обучение и cамостоятельность
Результат

Слайд 9

Стажировки: треки — Разработчики Исследователи Тестеры Продакт-менеджмент Дизайн Маркетниг HR Юристы ...

Стажировки: треки

Разработчики

Исследователи

Тестеры

Продакт-менеджмент

Дизайн

Маркетниг

HR

Юристы

...

Слайд 10

Стажировки: конкурс — Заполнение профиля в приложении internship. jetbrains.com Выполнение тестовых

Стажировки: конкурс

Заполнение профиля в приложении internship. jetbrains.com

Выполнение тестовых заданий: 2 недели

Собеседование с ментором проекта

Стажировка!

Этап 1

Этап

2

Этап 3

Этап 4

Слайд 11

Срочный трудовой договор / стипендия Техника (при необходимости) Фултайм, свободный рабочий

Срочный трудовой договор / стипендия
Техника (при необходимости)
Фултайм, свободный рабочий график
Участие во

внутренних ивентах компании

Стажировки: что важно при подаче заявки?

Подробно заполнить профиль
Внимательно изучить описание проектов
https://internship.jetbrains.com/seasons/?tab=archive
Почитать про продукты/лаборатории
Вовремя засабмиттить тестовое задание
Подготовиться к собеседованию
Не бояться!

Слайд 12

Слайд 13

Более 2000 заявок 232 стажировки для разработчиков, тестеров, научных исследователей, маркетологов,

Более 2000 заявок
232 стажировки для разработчиков, тестеров, научных исследователей, маркетологов, продакт-менеджеров,

дизайнеров, эйчаров и юристов
Удалённый формат

Как было прошлым летом

Слайд 14

Как будет этим летом? —

Как будет этим летом?

Слайд 15

Спасибо за внимание! — Веб-приложение internship.jetbrains.com Задавайте вопросы internship@jetbrains.com Следите за новостями vk.com/jetbrains4students

Спасибо за внимание!

Веб-приложение internship.jetbrains.com
Задавайте вопросы internship@jetbrains.com
Следите за новостями vk.com/jetbrains4students

Слайд 16

Зачем ML в SE? Что мы делаем в лаборатории ML4SE Егор

Зачем ML в SE?
Что мы делаем в лаборатории ML4SE
Егор Богомолов
Лаборатория ML4SE

@ JetBrains Research
@ebogomolov, egor.bogomolov@jetbrains.com
Слайд 17

Немного обо мне Учился в Академическом Университете (1-3 курс), затем в

Немного обо мне

Учился в Академическом Университете (1-3 курс), затем в НИУ

ВШЭ (4-6 курс), продолжил обучение в аспирантуре
Пробовал себя в биоинформатике, мобильной разработке, участвовал в олимпиадах
С 2017 года начал проходить практики, стажироваться, и затем работать в лаборатории ML4SE JetBrains Research
Преподаю ML для школьников в ФТШ и 239

/35

Слайд 18

О чем мы будем говорить? JetBrains Research и лаборатория ML4SE Зачем

О чем мы будем говорить?

JetBrains Research и лаборатория ML4SE
Зачем машинное обучение

программистам?
Что особенного в ML4SE?
Какими проектами мы занимаемся?
Практики, стажировки, приходите!

/35

Слайд 19

JetBrains Research /35

JetBrains Research

/35

Слайд 20

ML4SE Lab* * Лаборатория “Методов машинного обучения в области программной инженерии”

ML4SE Lab*

* Лаборатория “Методов машинного обучения в области программной инженерии”
~20 исследователей
20+

публикаций на конференциях CORE A/A*
Работа с продуктовыми командами JetBrains
Ежегодные летние стажировки, осенние и весенние практики для студентов

Страница лаборатории

/35

Слайд 21

Машинное обучение Распознавание изображений Автоматический перевод Распознавание речи Рекомендательные системы Персональные ассистенты Автопилоты … /35

Машинное обучение

Распознавание изображений
Автоматический перевод
Распознавание речи
Рекомендательные системы
Персональные ассистенты
Автопилоты

/35

Слайд 22

Машинное обучение в SE Зачем? Помогать разработчикам! Разработчикам нужны инструменты: IDE

Машинное обучение в SE

Зачем?
Помогать разработчикам!
Разработчикам нужны инструменты:
IDE
CI / CD
Отслеживание issue
Общение

внутри команд

/35

Слайд 23

На каких этапах разработки поможет ML? Написание кода: Улучшение структуры кода

На каких этапах разработки поможет ML?

Написание кода:
Улучшение структуры кода и

читаемости:
Отладка:
Поддержка проекта:

/35

Слайд 24

На каких этапах разработки поможет ML? Написание кода: автодополнение, генерация фрагментов

На каких этапах разработки поможет ML?

Написание кода: автодополнение, генерация фрагментов кода,

поиск
Улучшение структуры кода и читаемости:
Отладка:
Поддержка проекта:

/35

Слайд 25

На каких этапах разработки поможет ML? Написание кода: автодополнение, генерация фрагментов

На каких этапах разработки поможет ML?

Написание кода: автодополнение, генерация фрагментов кода,

поиск
Улучшение структуры кода и читаемости: генерация комментариев, описаний к коммитам, рекомендация рефакторингов, переименований
Отладка:
Поддержка проекта:

/35

Слайд 26

На каких этапах разработки поможет ML? Написание кода: автодополнение, генерация фрагментов

На каких этапах разработки поможет ML?

Написание кода: автодополнение, генерация фрагментов кода,

поиск
Улучшение структуры кода и читаемости: генерация комментариев, описаний к коммитам, рекомендация рефакторингов, переименований
Отладка: поиск ошибок, автоматическое исправление ошибок, улучшение статического анализа
Поддержка проекта:

/35

Слайд 27

На каких этапах разработки поможет ML? Написание кода: автодополнение, генерация фрагментов

На каких этапах разработки поможет ML?

Написание кода: автодополнение, генерация фрагментов кода,

поиск
Улучшение структуры кода и читаемости: генерация комментариев, описаний к коммитам, рекомендация рефакторингов, переименований
Отладка: поиск ошибок, автоматическое исправление ошибок, улучшение статического анализа
Поддержка проекта: поиск дубликатов сообщений об ошибках, назначение программистов для их решения

/35

Слайд 28

Особенности ML4SE Код это не то же самое, что и текст

Особенности ML4SE

Код это не то же самое, что и текст
Доступная информация

– это не только код
Программисты – довольно придирчивая аудитория
Решения должны интегрироваться в сложные инструменты
Данных как будто много (200M+ репозиториев на GitHub), но зачастую собрать новые данные сложно

/35

Слайд 29

Особенности ML4SE = Plain text + Syntax tree + Data flow

Особенности ML4SE

= Plain text

+ Syntax tree

+ Data flow

+ Control flow

+ ...

/35

Слайд 30

Какие методы применяются? Классический ML Все что есть в NLP Модификации

Какие методы применяются?

Классический ML
Все что есть в NLP
Модификации моделей из NLP

для учета особенностей кода
Графовые нейронные сети
Кодо-специфичные модели

/35

Слайд 31

Использование ML4SE моделей Сбор исторических данных Оффлайн-эксперименты Обучение хорошей модели Интеграция

Использование ML4SE моделей

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

плагина в продуктовые команды

/35

Слайд 32

Использование ML4SE моделей Сбор исторических данных Оффлайн-эксперименты Обучение хорошей модели Интеграция

Использование ML4SE моделей

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

плагина в продуктовые команды

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

/35

Слайд 33

Майнинг данных из кода Мы разрабатываем инструменты для получения данных из

Майнинг данных из кода

Мы разрабатываем инструменты для получения данных из кода.

Какие возникают трудности?
Обработка (десятков) тысяч проектов за разумное время
Как получить больше информации используя IDE?
Как автоматически открывать проекты?

GitHub: PsiMiner

GitHub: AstMiner

/35

Слайд 34

Использование ML4SE моделей Сбор исторических данных Оффлайн-эксперименты Обучение хорошей модели Интеграция

Использование ML4SE моделей

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

плагина в продуктовые команды

Улучшение подходов к обучению, разработка моделей, улучшение процесса тестирования

/35

Слайд 35

Обучение и тестирование моделей Дообучение моделей для работы с конкретными проектами

Обучение и тестирование моделей

Дообучение моделей для работы с конкретными проектами
Анализ метрик

для оценки качества генерации кода
Сравнение различных оптимизаторов в задачах SE
Использование гиперболических эмбеддингов для работы с кодом

/35

Слайд 36

Дообучение моделей для конкретного проекта /35

Дообучение моделей для конкретного проекта

/35

Слайд 37

Использование ML4SE моделей Сбор исторических данных Оффлайн-эксперименты Обучение хорошей модели Интеграция

Использование ML4SE моделей

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

плагина в продуктовые команды

Требуется запускать модели на JVM, при этом эффективно по времени и памяти

/35

Слайд 38

Запуск моделей в плагинах KInference: библиотека для запуска сложных ML-моделей на

Запуск моделей в плагинах

KInference: библиотека для запуска сложных ML-моделей на чистом

Kotlin
Поддерживает модели, сериализованные через ONNX
Уже используется с Transformer-based нейросетями (BERT, GPT) и CatBoost
Опережает аналоги по скорости
Получает все плюсы Kotlin-Multiplatform

GitHub: KInference

/35

Слайд 39

Использование ML4SE моделей Сбор исторических данных Оффлайн-эксперименты Обучение хорошей модели Интеграция

Использование ML4SE моделей

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

плагина в продуктовые команды

Готовые решения оборачиваются в плагины для IDE и других продуктов JetBrains, а затем отправляются коллегам или пользователям

/35

Слайд 40

Практические применения Предложение имен методов и переменных Рекомендация рефакторингов Определение устаревших

Практические применения

Предложение имен методов и переменных
Рекомендация рефакторингов
Определение устаревших комментариев
Определение типов переменных

в Python
Поиск ошибок в коде
Автоматическое исправление ошибок
Автодополнение сообщений к коммитам

/35

Слайд 41

IRen: предложение имен переменных /35 Плагин модифицирует стандартный рефакторинг, добавляя имена

IRen: предложение имен переменных

/35

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

основе данных из текущего проекта
Слайд 42

IntelliJDeodorant: рекомендация рефакторингов GitHub: IntelliJDeodorant /35

IntelliJDeodorant: рекомендация рефакторингов

GitHub: IntelliJDeodorant

/35

Слайд 43

Спин-офф: large-scale анализ кода Поиск аномалий в коде на Kotlin Поиск

Спин-офф: large-scale анализ кода

Поиск аномалий в коде на Kotlin
Поиск паттернов в

изменениях кода на Python
Поиск паттернов в миграции типов
Определение запахов в тестах на Python
Изучение копирования и лицензирования кода на GitHub
Анализ Jupyter ноутбуков на GitHub
Анализ применения рефакторингов программистами

/35

Слайд 44

Revizor: паттерны в изменениях кода GitHub: Revizor /35

Revizor: паттерны в изменениях кода

GitHub: Revizor

/35

Слайд 45

Исследование лицензирования кода Violation types Most violated licenses Most violating licenses /35

Исследование лицензирования кода

Violation types

Most violated licenses

Most violating licenses

/35

Слайд 46

Спин-офф: и не только ML! GitHub: Reflekt GitHub: Kotless GitHub: Hyperstyle /35

Спин-офф: и не только ML!

GitHub: Reflekt

GitHub: Kotless

GitHub: Hyperstyle

/35

Слайд 47

Практики и стажировки Мы проводим: Стажировки – лето Практики – осень

Практики и стажировки

Мы проводим:
Стажировки – лето
Практики – осень и весна
Процедура отбора:
Выбор

интересных проектов
Тестовое задание
Короткий звонок-знакомство

/35

Слайд 48

Практики и стажировки Стажировки – фулл-тайм, 2 месяца Практики – работа

Практики и стажировки

Стажировки – фулл-тайм, 2 месяца
Практики – работа над НИРами,

курсовыми, дипломами
Чаще всего проекты предполагают продолжение на несколько семестров
Предполагаемый итог проекта – публикации, конференции, готовые инструменты

/35

Слайд 49

Еженедельные семинары Каждый понедельник у нас проходит семинар или встреча читательского

Еженедельные семинары

Каждый понедельник у нас проходит семинар или встреча читательского клуба
Разборы

статей по теме ML4SE и рассказы о наших проектах
Записи доступны на YouTube
https://tinyurl.com/ml4se-seminar
Ссылки для записи
https://t.me/jetbrains_research
https://groups.google.com/forum/#!forum/jb-ml-seminars/join

/35