Компания Образовательные проекты JetBrains временно не ведёт блог на Хабре В МФТИ есть как факультеты, которые готовят сильных программистов, так и факультеты, выпускающие крутых специалистов в области физики, биологии и химии. Однако в сфере физических исследований также не обойтись без навыков программирования. В частности, все масштабные физические эксперименты автоматизированы.  Из-за того, что программы обучения (а, следовательно, и компетенции) физиков и программистов сильно отличаются, при их совместной работе над экспериментами нередко возникают трудности. Мы в лаборатории методов ядерно-физических экспериментов ставим своей целью подготовку специалистов, которые могут и разобраться в физике процессов, и написать необходимое программное обеспечение. Для этого в прошлом году мы запустили магистерскую программу, а в этом еще один проект, направленный на знакомство физиков с программированием. О нем я и расскажу в этой статье. Мы ежедневно работаем с информацией из разных источников и поэтому имеем интуитивные представления о том, что означает, когда один источник является более информативным, чем другой. Однако далеко не всегда понятно, как это правильно определить формально. Не всегда большое количество текста означает большое количество информации. Например, среди СМИ распространена практика, когда короткое сообщение из ленты информационного агентства переписывают в большую новость, но при этом не добавляют никакой «новой информации». Или другой пример: рассмотрим текстовый файл с романом «Война и мир» в кодировке UTF-8. Его размер — 3.2 Мб. Сколько информации содержится в этом файле? Изменится ли это количество, если файл перекодировать в другую кодировку? А если заархивировать? Сколько информации вы получите, если прочитаете этот файл? А если прочитаете его второй раз? По мотивам открытой лекции для Computer Science центра рассказываю о том, как можно математически подойти к определению понятия "количество информации". Все курсы Computer Science клуба в 2021 году проходили в онлайн режиме. Мы собрали для вас подборку видеозаписей лекций, которые выложены на нашем youtube канале.  Каждое лето JetBrains проводит стажировки для студентов. На два месяца стажеры погружаются в большой мир разработки и под руководством ментора реализовывают настоящий законченный проект.  Прошлым летом одним из стажеров компании стал первокурсник НИУ ВШЭ — Санкт-Петербург Тимофей Василевский. Тимофей изучал поведение пользователей при работе в IntelliJ IDEA. В этом посте он рассказал, почему решил пойти на стажировку по анализу данных, как готовился и проходил отбор и чем занимался эти два месяца. Надоели нестабильные баги в многопоточном коде? Попробуй воспользоваться модел-чекерами! Ведь больше не надо бояться неверифицированных модел-чекеров,  работающих либо за экспоненциальное время, либо неоптимально. Все это в прошлом: в Max Planck Institute for Software Systems разработали новый алгоритм под названием TruSt, который решает эти проблемы и, кроме того, верифицирован на Coq. Меня зовут Владимир Гладштейн. Этим летом я проходил стажировку в MPI-SWS в группе, которая придумала алгоритм нового модел-чекера для поиска багов в многопоточных программах. Этот алгоритм является оптимальным и truly stateless (вследствие чего работает с линейными затратами по памяти). В этом посте я расскажу, как работают модел-чекеры, в каких случаях их можно использовать, и что за алгоритм придумали мои коллеги. А еще как я проверял доказательства его корректности на Coq. Мы продолжаем рассказывать истории выпускников Computer Science Center. Сегодняшний герой — Егор Суворов — работает в калифорнийском стартапе Zenith и преподает курс по C++ в петербургском кампусе НИУ ВШЭ. Егор — олимпиадник, в 2014 году в составе команды СПбГУ он стал чемпионом ACM ICPC. А вот свои первые существенные шаги в промышленном программировании сделал благодаря CS центру. Егор рассказал, почему начал участвовать в олимпиадах, где ему пригодился этот опыт и как он ушёл из олимпиад в промышленную разработку. А ещё дал советы, как проходить отборы на стажировки и где сейчас в России стоит учиться программированию.  В этом году десять лет исполнилось Computer Science Center — образовательному проекту, созданному при участии JetBrains, Школы анализа данных и Computer Science клуба. Сегодня CS центр — это очные курсы в Питере и Новосибирске (а ещё дистанционные для жителей других городов), пять направлений обучения и больше трёхсот невероятно классных и талантливых выпускников. Истории некоторых из них мы хотим вам рассказать. Первая героиня — Анастасия Лавренко, выпускница 2018 года. Сейчас Настя руководит разработкой образовательной платформы Stepik, а в свободное время и сама делает открытые онлайн-курсы. В интервью она рассказала, почему пошла учиться в CS центр, как попала в Stepik, и поделилась личным топом онлайн-курсов для программистов. «Увлекательное испытание себя» – так описывают студенты участие в хакатоне, который проходит каждый семестр у первокурсников магистерской программы JetBrains&ITMO. DevDays – это три дня и три ночи интенсивной работы и горячих митингов, знакомство с новыми технологиями и множество строк кода. Ребята работают в небольших командах и проходят все этапы разработки: от возникновения идеи проекта до работающего решения. А прошедшей весной студенты наконец поработали друг с другом вживую после почти года удаленки.  В этом посте рассказываем подробнее об идеях проектов: два плагина для Intellij IDEA,  приложение для тиктокеров, эмулятор мыши для механических клавиатур и чатбот-органайзер. Создание и практическое использование алгоритмов сильно зависит от возможности эффективно их реализовать. В лаборатории языковых инструментов JetBrains разрабатывают алгоритмы поиска путей в помеченных графах с дополнительными ограничениями. Эти алгоритмы достаточно естественно выражаются в терминах операций над булевыми матрицами, но в современных высокопроизводительных библиотеках линейной алгебры пока нет полного набора необходимых операций над булевым полукольцом. Поэтому мы решили их реализовать. Нас часто спрашивают, можно ли поступить на магистерскую программу JetBrains в Университете ИТМО без профильного образования в бакалавриате. Мы отвечаем, что можно и подобные истории случаются каждый набор. Но нельзя не отметить, что в таком случае подготовка к поступлению и само обучение дается гораздо сложнее: студентам приходится осваивать больше материала в сжатые сроки.  Ярослав Чернышев – выпускник 2020 года программы «Разработка программного обеспечения». В этом интервью он рассказал свою историю, которая, возможно, немного успокоит вас и подтолкнет  изменить сферу деятельности. Несколько лет назад Ярослав решил уйти из юриспруденции в IT. Что из этого вышло, читайте под катом.  Возможно, вы уже пользуетесь Grazie — плагином для среды разработки Intellij IDEA, который проверяет естественные языки на грамматические, пунктуационные и прочие виды ошибок. Сейчас команда проекта работает над плагином для Chrome, который будет делать то же самое, но уже в браузере. С частью задач им помогают стажеры — студенты профильных программ из разных вузов. Например, Ольга Шиманская учится на третьем курсе бакалавриата «Современное программирование» в СПбГУ и на практике кодила для Grazie Chrome Plugin. За весенний семестр Оля реализовала парсинг языков разметки (LaTeX и Markdown) в обычный текст и попыталась подступиться к задаче подсветки синтаксиса выбранного языка в браузере. Что у нее получилось, а что нет, читайте под катом. Недавно мы писали о бакалаврских программах, на которые советуем абитуриентам обратить внимание. А в этом посте хотим более детально рассказать о магистратурах в Петербурге, которые поддерживает JetBrains: •  «Разработка программного обеспечения / Software Engineering» — корпоративная программа JetBrains на базе Университета ИТМО; •  «Машинное обучение и анализ данных» в НИУ ВШЭ — Санкт-Петербург; •  «Программирование и анализ данных» в НИУ ВШЭ — Санкт-Петербург. Два года назад Computer Science Center провел экспериментальный запуск курса по управлению продуктами, о результатах которого мы рассказывали ранее.  Эксперимент удался, и в 2020-21 учебном году прошла уже полноценная годовая программа повышения квалификации с поправкой на новые идеи и вынужденный онлайн-формат. Сегодня выпускники нашей программы поделились своими историями: почему они решили развиваться в продакт-менеджменте, как совмещали учебу и работу и с какими результатами вышли с курса. JetBrains поддерживает образовательные программы для разработчиков в лучших университетах страны. Мы предоставляем экспертную и финансовую помощь разным направлениям в НИУ ВШЭ, Университете ИТМО, СПбГУ, МФТИ, НГУ и ЛЭТИ. Но несколько программ — особенные, они реализуются в тесном партнерстве с компанией. JetBrains участвует в формировании учебного плана, подбирает преподавателей, выплачивает студентам спонсорские стипендии, помогает с организацией практик и стажировок.  В преддверии приемной кампании в вузы рассказываем о наших самых ближайших партнерах — бакалаврских программах “Современное программирование” в СПбГУ и “Прикладная математика и информатика” в петербургском кампусе НИУ ВШЭ. Привет, это Александр Нозик, и этот пост посвящен еще одной "интересной" магистерской программе (на этот раз на физтехе, совместно с JetBrains, Таврида Электрик и целым списком научных организаций). Про интересность вы решите сами, но программа в этот раз действительно уникальная (пока по крайней мере). Называется она Научное программирование (официальное название "Разработка и применение программного обеспечения в физических исследованиях") и расположена на ФПМИ и ЛФИ в МФТИ. Посвящена не отдельно физике, не отдельно программированию, не отдельно computer science, а стыку всего этого. Если вы уже поняли, что это про вас, то можно бежать читать подробности и заполнять анкету на сайте программы. Если нет, то читаем дальше. Привет! Продолжаем разворачивать тему осмысленного подхода к началу своего профессионального пути. Про базовые настройки мы поговорили в предыдущем посте, а теперь перейдем от мышления к действиям, связанным с процессом собеседований: как готовиться, как себя вести, как проходить техническое интервью, а также формировать себе перспективу вне зависимости от исхода.   Привет, Хабр! Недавно Егор Суворов, преподаватель курса по С++ в Питерской Вышке, прочитал лекцию о некоторых особенностях языка для участников Всероссийской олимпиады школьников по информатике. Егор рассказал о шаблонах в C++, а также где и зачем они возникают: обобщённое программирование структур данных и алгоритмов, функторы и лямбда-функции, как можно повысить уровень абстракций и упростить код.  Важное уточнение: эта лекция — не попытка объять необъятное, а краткий экскурс по полезным возможностям C++ для членов олимпиадного сообщества: от извлечения кода в класс до внутренних механизмов работы лямбда-функций и щепотки ограничений (constraints) из C++20. Если интересно, приглашаем к просмотру.  Объявляем набор на магистерскую программу JetBrains “Разработка программного обеспечения” на 2021-2023 учебные годы. Мы ждем тех, кто уже обладает базовыми знаниями в программировании и готов посвятить два года интенсивной учебе. Обучение ведется по двум специализациям: разработка ПО, алгоритмы и анализ данных в биоинформатике. Формат обучения — очный, на программе доступно 30 бюджетных и 5 контрактных мест.   Привет! Недавно я в соавторстве с Ириной Резняковой из Yandex провела несколько экспериментальных мастер-классов “IT Career Mind Map” для студентов CS центра, а также СП и МААД в СПбГУ. Предыстория у него была долгая, уходящая корнями в опыт организации стажировок, экспертизу коллег из JetBrains & Yandex, а также переплетающаяся с проектами, которыми я занимаюсь сейчас в JetBrains Learning Research Lab и PM-школе в CS центре. Есть ощущение, что эксперимент удался, а потому хочется поделиться некоторыми мыслями в помощь тем, кто стоит на пороге получения первого опыта в профессии. Поскольку мыслей много, то будет несколько постов, и первый — про базовые настройки.