Близится суперфинал чемпионата "MIEM C++ League"
Совсем скоро состоится суперфинал Студенческого чемпионата МИЭМ НИУ ВШЭ по программированию на языке C++ "MIEM C++ League". Он пройдет 5 июня!
Как вы помните, мы уже подводили итоги для большинства участников, и пятерка лучших программистов чемпионата попала на СуперФинал, где их будут ждать супер задания, супер призы и супер почет! На СуперФинале мы узнаем, кто же из этой великолепной пятерки является самым крутым программистом!
Напомним пятерку финалистов:
- Евгений Нархов
- Игорь Паншин
- Илья Ершов
- Максим Кудряшов
- Вячеслав Анохин
Каждому из суперфиналистов мы задали вопросы, связанные с программированием.
Ершов Илья Сергеевич
Как начинался твой путь в программировании, и к чему ты пришёл сейчас?
До поступления на прикладную математику я ни разу не программировал. Первым языком, который я начал учить - это С, который преподавали на первом курсе. Мне казалось всё сложным и непонятным особенно, когда окружающие тебя люди уже имели какую-то базу. Но в этой сложности был интерес, заставить машину что-то делать, используя набор каких-то непонятных на тот момент инструкций. После чего я понял, что написание кода мне по душе. Уже на втором курсе я изучал углубленно С++, который влюбил меня своей сложностью и широтой функционала. Чтобы не ограничиваться лабораторными работами, я принимал участия в программных проектах, где уже развивал полноценно навыки разработки программных решений в таких областях как электроника и строительство. Уже на третьем курсе я увлекся решением всяких задачек на алгоритмы, что довольно-таки сильно поменяло мышление и заставило обращать внимание на вычислительную сложность и выделяемую память при написании алгоритмов. И вот сейчас я всё также занимаюсь любимым делом и как-то умудрился оказаться в суперфинале.
Какими своими проектами ты гордишься?
Я предпочитаю использовать CLion, так как она меня ещё ни разу не подводила.
Стек: git/cmake/vcpkg/boost
В какой среде разработки работаешь? Каким стеком технологий ты пользуешься? (git/cmake/...)
Больше всего я горжусь проектом, в котором я участвую с третьего курса. Мы создаем статическую библиотеку для внешнего заказчика, которая позволяет производить валидацию строительных модели. Всегда приятно, заниматься тем, что действительно имеет реальное приложение.
Какой твой любимый алгоритм STL?
Конечно, std::sort. Кто-то учит сортировки?
Анохин Вячеслав Владимирович
Как начинался твой путь в программировании, и к чему ты пришёл сейчас?
Первой программой, которую я написал, был простейший консольный калькулятор, написанный на языке Паскаль. Я тогда сам поставил себе такую задачу. Потом начал придумывать самому себе задачи посложнее, уже с уклоном в игровую тематику. Всегда воспринимал программирование как творческий процесс. Программы становились все сложнее и вскоре стали похожи на полноценные миниигры. Последнее, что я делал на Паскале – простой детектор коллизий объектов прямоугольной формы. Примерно тогда я понял, что Паскаль не подходит для таких проектов и я решил выбрать язык помощнее. Так я и перешел на C++.
К настоящему моменту я программирую на языках C++, Python, JavaScript. Лучше всего владею именно C++. Я занимаюсь уже достаточно большими проектами, которые состоят из множества модулей, десятков тысяч строк кода и пишутся на разных языках программирования.
Какими своими проектами ты гордишься?
Работаю в Visual Studio. Когда нужно работать с web-ом, пишу в Visual Studio Code.
Если говорить о C++, то при разработке пользуюсь git, системой сборки cmake, пакетным менеджером vcpkg. Для документирования иcпользую Doxygen. Если говорить о JavaScript, то тут использую NodeJs и Webpack. Javascript я использовал в основном для фронта, который пишу с помощью React.
В какой среде разработки работаешь? Каким стеком технологий ты пользуешься? (git/cmake/...)
Наверное, самый масштабный проект, который я писал – это библиотека для создания TUI (terminal-based user interface) приложений. Она включает в себя огромное количество возможностей: терминал на основе web-технологий, в который можно выводить произвольную html/markdown разметку и писать формулы на latex, синхронизацию ввода и вывода в многопоточной среде, встроенный лексер и парсер для командного языка, автоматическое формирование страниц документации, автодополнение ввода, подсветка синтаксиса команд. Я не знаю ни одной библиотеки, которая реализовывала бы все эти вещи сразу, поэтому проект является достаточно уникальным. Пока он на стадии разработки, надеюсь уже скоро дойду до первого релиза.
Какой твой любимый алгоритм STL?
Сложно выбрать. Пусть будет std::transform.
Кудряшов Максим Дмитриевич
Как начинался твой путь в программировании, и к чему ты пришёл сейчас?
Первые 3 семестра я вообще не думал о программировании, хотя оно у меня неплохо получалось. Потом был год перерыва и академа, когда я занимался совершенно другими вещами, не связанными с прогой.
Но на 4 семестре я попадаю в группу к Вадиму Витальевичу в середине годового курса по C++, так что мне приходится плюс минус с нуля изучать C++ на высокий уровень самостоятельно. В процессе этого изучения я влюбляюсь в программирование и понимаю, что вероятно хочу развиваться дальше как программист.
На 5 и 6 семестрах я начал искать стажировки, и оказалось, что стажировок на C++ практически нет, так что я активно взялся на Python и backend-разработку на нем, а в процессе меня еще и в ML занесло.
В итоге владею и плюсами, и Python, и ML, изучаю как разработку, так и data science, и очень интересно, куда в итоге все это приведет и какое направление станет моим основным.
Какими своими проектами ты гордишься?
Wave Function Collapse Simulator: https://github.com/kudrmax/wfc
Это проект на C++ с визуализацией через SFML для создания симуляции алгоритма Wave Function Collapse (WFC), который применяется для создания уникальных случайно сгенерированных паттернов, например для создания карт в играх.
Это на самом деле не сложный проект, но уж очень мне нравится как выглядит итоговый результат — смотреть на то, как генерируются картинки очень приятно.
А вообще у меня 32 репозитория на GitHub, и почти все они public, потому что я люблю сохранять все свои проекты как минимум для истории: https://github.com/kudrmax
В какой среде разработки работаешь? Каким стеком технологий ты пользуешься? (git/cmake/...)
Все что можно от JetBrains, но в этом нет ничего интересного. А вот для использования git я пользуюсь программой lazygit, которая встраивает GUI интерфейс для гита прямо в терминал. Супер рекомендую — почти любое действие, которое можно сделать в гите, делается нажатием одной кнопки, что невероятно увеличивает скорость работы.
Git'ом я пользусь почти везде. Версинирование стало настолкьо автоматическим, что я использую его везде — и где нужно, и где не нужно.
Какой твой любимый алгоритм STL?
std::sort — что может быть круче сортировки за nlogn, которая под копотом использует 3 различных вида сортировки?
Нархов Евгений Антонович
Как начинался твой путь в программировании, и к чему ты пришёл сейчас?
Начинал давно, еще в школе, занимался олимпиадами. Потом с поступлением начал смотреть вакансии и готовиться к первой стажировке в Яндексе, на которую, собственно пошел еще в прошлом году
и которая вот недавно в апреле закончилась, работал в команде умного дома Алисы :)
Какими своими проектами ты гордишься?
VS Code, в основном - C/C++, но C только читаю, не пишу на нем, собираю CMake + GCC, VCS - git. Немножко Python.
В какой среде разработки работаешь? Каким стеком технологий ты пользуешься? (git/cmake/...)
Помимо работы горжусь курсовой за первый год - это парсер PNG изображений, который я писал вместе с дружной командой
и который дал мне мой первый опыт достаточно серьезного проекта.
Какой твой любимый алгоритм STL?
std::lower_bound, может быть что-то лучше?
Паншин Игорь Сергеевич
Как начинался твой путь в программировании, и к чему ты пришёл сейчас?
Начинал заниматься олимпиадной информатикой с 9 класса, после поступил на ФКН, учусь, преподаю алгоритмы для школьников, прохожу стажировки в IT компаниях
Какими своими проектами ты гордишься?
CLion, в основном c++, python, git
В какой среде разработки работаешь? Каким стеком технологий ты пользуешься? (git/cmake/...)
Ресерчем в Хуавее, но не могу рассказывать из-за NDA
Какой твой любимый алгоритм STL?
сортировка