Всем привет! Я Вера, и четвертый год занимаюсь в JetBrains студенческими стажировками. Давно хочется рассказать про это Хабру, но не наскучивать же вам справочной информацией! Поэтому расскажу про одного из своих первых стажеров. Знакомьтесь, это − Валя Кирюшкина, разработчик Educational Products, руководитель академической практики JetBrains и студентка Computer Science Center. А началось всё именно с него.
Бакалавриат по специальности IT Валя закончила в Томском государственном университете, где, по ее словам, только очень организованный и самостоятельный студент мог получить максимальную пользу от образования. После этого она переехала в Петербург и поступила в магистратуру ИТМО на бизнес-информатику, издалека выглядевшую интересным дополнением к опыту разработки. На деле же оказалось, что без программирования Валя скучает. Так в ее жизни случился Computer Science Center, про который она сейчас шутит, что ей удалось из двухлетней программы сделать для себя ещё один бакалавриат.
А раз случился CS центр, то неминуемо случилась и практика в JetBrains. Хотя «неминуемо» − не совсем точное слово: Валя выиграла конкурс на реализацию одного из самых популярных проектов и, как иногда говорят, «оттуда не возвращаются».
Весна 2015-го. Проект по созданию плагина для интеграции PyCharm Edu & CheckIO. Несколько десятков людей проходили собеседования у Кати Тузовой.
«Я готовилась к обоим собеседованиям [второе было в Stepik.org − Прим. авт.], повторяла Java, посмотрела, что такое PyCharm Edu и CheckIO. Представила себе, как можно сделать интеграцию этих двух штук. На собеседовании ужасно нервничала, кажется, перепутала все слова, но, видимо, мне удалось передать смысл».
Катя − разработчик среды PyCharm − в то время руководила созданием её Educational Edition. Очень хорошо помню, какая довольная она пришла с этого собеседования. За весенний семестр были реализованы базовые вещи. Затем на летней стажировке плагин был доведён до рабочего состояния, и стало возможным решать задачи из CheckIO в PyCharm Edu. Но этим Валя не ограничилась − в рамках проекта также удалось перенести в PyCharm Edu красиво реализованное в CheckIO представление результатов тестирования и отображение чужих решений и подсказок. В октябре 2015 состоялся релиз плагина.
«Поначалу на стажировке мне было страшно, все вокруг были такие серьезные, сидят программируют − они все в этом что-то понимают! Я никого не знала, было очень много нового и было тяжело. Ведь IDEA − это очень большой проект, там есть кодовая база, которая должна влезть в голову. Ты чувствуешь себя таким маленьким, а вокруг − большой сложный мир. На весенней стажировке особо не было времени на социализацию, ты приходишь пару раз в неделю, тусишь с другими стажерами, а в команду вписаться не успеваешь. Летом уже появилось другое ощущение, когда ты ходишь на работу, как все, что-то свое делаешь, слушаешь, что другие делают, рассказываешь, чем занимаешься ты. Начинаешь понимать, что ты похож на всех этих людей, и начинаешь с ними разговаривать».
После летней стажировки Валя осталась в команде и какое-то время занималась поддержкой CheckIO, понемногу осваивая другие задачи: для PyCharm Edu − интеграцию со Stepik.org, для PyCharm — Code Insight и поддержку Jupyter Notebook. Последний проект заинтересовал Валю после поездки на конференцию SciPy летом 2016 в Остин, США, и реализация недолго заставила себя ждать.
«О самой компании я много слышала до стажировки и уже заранее была настроена на то, что это очень классно, и ожидания оправдались. Приятно, когда вокруг так много умных, увлеченных людей, которые делают очень интересные вещи, какие-то параллельные проекты, не связанные с основной работой. Я видела очень заинтересованных людей, и сначала меня это очень удивляло, потом вдохновляло, потом я привыкла и мне это стало просто нравиться».
Сейчас Валя продолжает работать под руководством Кати Тузовой, но уже в команде, разрабатывающей образовательные инструменты Educational Products, которые позволяют решать задачи по программированию на Python, Java и Kotlin непосредственно внутри JetBrains IDE, а также дают возможность преподавателям создавать задачи по программированию с привязанными к ним тестами автоматической проверки кода. Это активно развивающийся проект, у которого много амбициозных планов как по поддержке других языков программирования, так и по реализации различных идей в рамках современных образовательных трендов.
«Мне нравится то, что я сейчас делаю. И я все время хочу чему-то учиться. Это удачно совпадает с тем, что я делаю именно образовательные инструменты. Я могу совмещать работу и свой новый опыт. Мне хочется больше узнавать про то, какие вообще существуют подходы к обучению, смотреть, как они согласуются с тем, что есть в наших инструментах. В CS центре сейчас есть курс по интерфейсам, там можно взять свой проект и поиграть в проектировщика интерфейсов. Для меня это взгляд на мою работу с совершенно другой стороны. Когда ты программист, ты в основном занят какими-то «бытовыми» проблемами, а здесь — более общий взгляд на вещи: что делает этот инструмент, как его классифицировать. Мне это очень интересно».
В JetBrains есть понятие 20%-го проекта, когда ты можешь часть своего рабочего времени использовать для преподавания, курирования стажеров, разработки полезных некоммерческих проектов. Став полноценным членом команды JetBrains, Валя решила попробовать свои силы в руководстве студентами, и вот что произошло с ней по другую сторону программы стажировок.
Осень 2017-го. Ячейки в редакторе кода PyCharm. Несколько десятков заявок на проект.
«В этом году у меня появился свой стажер. Я провела, кажется, 5 собеседований, перед этим было тестовое задание с вопросом, почему вы хотите работать над этим проектом. Это отсеяло несколько десятков людей, подавших заявку на мой проект просто так, без особой мотивации. На собеседовании у меня был пример кода из IDEA, нужно было сказать, что он делает, просто чтобы проверить, как человек умеет читать код. Еще нужно было найти ошибку в коде и исправить ее. Основной идеей самого проекта было проверить, как можно реализовать поблочное исполнение кода в PyCharm. Мы сделали все, что планировали. Еще успели посмотреть на какие-то прикольные фичи, про которые хотелось понять, что это такое, надо ли нам это делать вообще. Сама идея для такого проекта появилась у меня после конференции SciPy. Когда-нибудь я обязательно возьму еще одного стажера!»
На этом наша передача подходит к концу, далее — рекламная пауза. Именно так и проходят стажировки в JetBrains. Мы стараемся придумать такие проекты, чтобы в итоге у стажера было ощущение не того, что он просто поработал, а того, что он сделал что-то полезное, и этим будут пользоваться разработчики по всему миру. Всякие серьёзные формулировки на эту тему можно почитать в моём недавнем интервью тут. А ближайший набор на летние стажировки откроется уже совсем скоро. Если вы студент-программист, вот вам добрый совет от Вали напоследок:
«Не ленитесь и готовьтесь к собеседованиям! Читайте про проект, подумайте, почему вы хотите делать именно это. Сходите на презентацию проектов и попробуйте понять, сможете ли вы договориться с тем или иным руководителем, ведь коммуникация с ним − это очень-очень важно. Постарайтесь оценить, какой самостоятельности захочет от вас руководитель, и сможете ли вы сами работать в таком формате. Можете даже прямо спросить об этом на презентации!»
Бакалавриат по специальности IT Валя закончила в Томском государственном университете, где, по ее словам, только очень организованный и самостоятельный студент мог получить максимальную пользу от образования. После этого она переехала в Петербург и поступила в магистратуру ИТМО на бизнес-информатику, издалека выглядевшую интересным дополнением к опыту разработки. На деле же оказалось, что без программирования Валя скучает. Так в ее жизни случился Computer Science Center, про который она сейчас шутит, что ей удалось из двухлетней программы сделать для себя ещё один бакалавриат.
А раз случился CS центр, то неминуемо случилась и практика в JetBrains. Хотя «неминуемо» − не совсем точное слово: Валя выиграла конкурс на реализацию одного из самых популярных проектов и, как иногда говорят, «оттуда не возвращаются».
Весна 2015-го. Проект по созданию плагина для интеграции PyCharm Edu & CheckIO. Несколько десятков людей проходили собеседования у Кати Тузовой.
«Я готовилась к обоим собеседованиям [второе было в Stepik.org − Прим. авт.], повторяла Java, посмотрела, что такое PyCharm Edu и CheckIO. Представила себе, как можно сделать интеграцию этих двух штук. На собеседовании ужасно нервничала, кажется, перепутала все слова, но, видимо, мне удалось передать смысл».
Катя − разработчик среды PyCharm − в то время руководила созданием её Educational Edition. Очень хорошо помню, какая довольная она пришла с этого собеседования. За весенний семестр были реализованы базовые вещи. Затем на летней стажировке плагин был доведён до рабочего состояния, и стало возможным решать задачи из CheckIO в PyCharm Edu. Но этим Валя не ограничилась − в рамках проекта также удалось перенести в PyCharm Edu красиво реализованное в CheckIO представление результатов тестирования и отображение чужих решений и подсказок. В октябре 2015 состоялся релиз плагина.
«Поначалу на стажировке мне было страшно, все вокруг были такие серьезные, сидят программируют − они все в этом что-то понимают! Я никого не знала, было очень много нового и было тяжело. Ведь IDEA − это очень большой проект, там есть кодовая база, которая должна влезть в голову. Ты чувствуешь себя таким маленьким, а вокруг − большой сложный мир. На весенней стажировке особо не было времени на социализацию, ты приходишь пару раз в неделю, тусишь с другими стажерами, а в команду вписаться не успеваешь. Летом уже появилось другое ощущение, когда ты ходишь на работу, как все, что-то свое делаешь, слушаешь, что другие делают, рассказываешь, чем занимаешься ты. Начинаешь понимать, что ты похож на всех этих людей, и начинаешь с ними разговаривать».
После летней стажировки Валя осталась в команде и какое-то время занималась поддержкой CheckIO, понемногу осваивая другие задачи: для PyCharm Edu − интеграцию со Stepik.org, для PyCharm — Code Insight и поддержку Jupyter Notebook. Последний проект заинтересовал Валю после поездки на конференцию SciPy летом 2016 в Остин, США, и реализация недолго заставила себя ждать.
«О самой компании я много слышала до стажировки и уже заранее была настроена на то, что это очень классно, и ожидания оправдались. Приятно, когда вокруг так много умных, увлеченных людей, которые делают очень интересные вещи, какие-то параллельные проекты, не связанные с основной работой. Я видела очень заинтересованных людей, и сначала меня это очень удивляло, потом вдохновляло, потом я привыкла и мне это стало просто нравиться».
Сейчас Валя продолжает работать под руководством Кати Тузовой, но уже в команде, разрабатывающей образовательные инструменты Educational Products, которые позволяют решать задачи по программированию на Python, Java и Kotlin непосредственно внутри JetBrains IDE, а также дают возможность преподавателям создавать задачи по программированию с привязанными к ним тестами автоматической проверки кода. Это активно развивающийся проект, у которого много амбициозных планов как по поддержке других языков программирования, так и по реализации различных идей в рамках современных образовательных трендов.
«Мне нравится то, что я сейчас делаю. И я все время хочу чему-то учиться. Это удачно совпадает с тем, что я делаю именно образовательные инструменты. Я могу совмещать работу и свой новый опыт. Мне хочется больше узнавать про то, какие вообще существуют подходы к обучению, смотреть, как они согласуются с тем, что есть в наших инструментах. В CS центре сейчас есть курс по интерфейсам, там можно взять свой проект и поиграть в проектировщика интерфейсов. Для меня это взгляд на мою работу с совершенно другой стороны. Когда ты программист, ты в основном занят какими-то «бытовыми» проблемами, а здесь — более общий взгляд на вещи: что делает этот инструмент, как его классифицировать. Мне это очень интересно».
В JetBrains есть понятие 20%-го проекта, когда ты можешь часть своего рабочего времени использовать для преподавания, курирования стажеров, разработки полезных некоммерческих проектов. Став полноценным членом команды JetBrains, Валя решила попробовать свои силы в руководстве студентами, и вот что произошло с ней по другую сторону программы стажировок.
Осень 2017-го. Ячейки в редакторе кода PyCharm. Несколько десятков заявок на проект.
«В этом году у меня появился свой стажер. Я провела, кажется, 5 собеседований, перед этим было тестовое задание с вопросом, почему вы хотите работать над этим проектом. Это отсеяло несколько десятков людей, подавших заявку на мой проект просто так, без особой мотивации. На собеседовании у меня был пример кода из IDEA, нужно было сказать, что он делает, просто чтобы проверить, как человек умеет читать код. Еще нужно было найти ошибку в коде и исправить ее. Основной идеей самого проекта было проверить, как можно реализовать поблочное исполнение кода в PyCharm. Мы сделали все, что планировали. Еще успели посмотреть на какие-то прикольные фичи, про которые хотелось понять, что это такое, надо ли нам это делать вообще. Сама идея для такого проекта появилась у меня после конференции SciPy. Когда-нибудь я обязательно возьму еще одного стажера!»
На этом наша передача подходит к концу, далее — рекламная пауза. Именно так и проходят стажировки в JetBrains. Мы стараемся придумать такие проекты, чтобы в итоге у стажера было ощущение не того, что он просто поработал, а того, что он сделал что-то полезное, и этим будут пользоваться разработчики по всему миру. Всякие серьёзные формулировки на эту тему можно почитать в моём недавнем интервью тут. А ближайший набор на летние стажировки откроется уже совсем скоро. Если вы студент-программист, вот вам добрый совет от Вали напоследок:
«Не ленитесь и готовьтесь к собеседованиям! Читайте про проект, подумайте, почему вы хотите делать именно это. Сходите на презентацию проектов и попробуйте понять, сможете ли вы договориться с тем или иным руководителем, ведь коммуникация с ним − это очень-очень важно. Постарайтесь оценить, какой самостоятельности захочет от вас руководитель, и сможете ли вы сами работать в таком формате. Можете даже прямо спросить об этом на презентации!»