Алгоритмы и данные давно являются частью современного общества. Они — в смартфоне, в телевизоре, в транспорте, в больницах и учебных заведениях. Именно от них зависит, какие новости вы получаете, как быстро общаетесь, насколько хорошо вы учитесь и качественно путешествуете. Мобильные операторы превращаются в центры разработки ПО, традиционные банки модифицируются в высокотехнологические компании. Квалифицированный инженер информационных технологий, программист сейчас — проектировщик реальности и будущего.
Профиль «Программная инженерия финансовых технологий» — о программировании и современных технологиях, использующихся как в финансовом секторе, так и далеко за его пределами. Он посвящен телекоммуникациям, информационной безопасности, анализу и обработке данных, а также главному — современным инструментам создания программного обеспечения.
Профиль приглашает участников Олимпиады НТИ почувствовать себя частью стартап-движения — теми, кто может создавать актуальные ИТ-проекты на переднем плане технологий!
На первом этапе участникам предстоит решать задания по математике и информатике.
Во втором этапе Олимпиады КД НТИ участникам предстоит решить несколько заданий, которые требуют не только и не столько навыков решения классических задач по программированию, сколько умения самостоятельно разбираться в API существующего программного обеспечения, способности в небольшие сроки найти и изучить информацию по какой-либо технологии, применять знания языков программирования, алгоритмов и структур данных для решения реальных, хоть и сильно упрощенных, задач из индустрии.
Для решения задач необходимо уметь работать в команде, поскольку в ограниченное для второго этапа время один человек может не успеть и изучить новый материал, и разработать решение, и обеспечить для него достаточный набор тестовых данных.
В решении заданий второго этапа помогут ссылки на материалы для самостоятельного изучения. Также заранее рекомендуется изучить разборы заданий прошлых лет — это поможет понять, какого рода задачи могут встретиться.
На этом этапе участникам предстоит решать задачи по информатике и математике.
Этап пройдет в распределенном формате.
Задача заключительного этапа будет связана с актуальной темой межблокчейнового взаимодействия: сейчас, когда публичные блокчейн сети достигли определенного уровня проработанности и готовы к массовому использованию, все чаще встает вопрос, как передавать информацию из одной блокчейн системы в другую без необходимости доверять какому-то одному посреднику. Подобные задачи стоят и перед специалистами, внедряющими блокчейн платформы в банковскую среду или в системы предоставления услуг, поскольку межблокчейновое взаимодействие позволяет масштабировать блокчейн сети, увеличивая их вычислительные и пропускные способности.
Финалисты должны будут создать решение, которое позволяло бы передавать информацию из одной блокчейн платформы в другую. Решение должно быть отказоустойчивым и максимально децентрализованным. Для достижения второй цели участникам финала нужно будет разрабатывать контракты для платформ, поддерживающих Ethereum Virtual Machine.
Для проверки решения задачи финала будет использоваться система автоматического тестирования на базе GitLab CI/CD. А для успешного создания многокомпонентного приложения участникам рекомендуется внедрить технологию контейнеризации c применением Docker.
Во время финала проводятся различные командообразующие мероприятия, которые помогают участникам не сдаваться и идти сплоченной командой до конца.
На финале понадобятся все описанные ниже hard и soft skills, для подготовки используйте материалы прикрепленные на странице профиля.
Рекомендуем ознакомиться со списком hard skills, а также всеми ссылками с текущей страницы профиля Программная инженерия финансовых технологий.
ЧТО ДОЛЖЕН ЗНАТЬ УЧАСТНИК
Математика: начальные главы аналитической алгебры, геометрия, комбинаторика, отдельные разделы теории чисел, статистики и теории вероятности, теории графов и линейной алгебры.
Информатика: кодирование и декодирование информации, структуры хранения и обработки данных, комбинаторные алгоритмы, алгоритмы перебора и сортировки, обработка графов, обработка строк, битовые операции.
Специальные знания в области информатики: ООП, криптография с публичным ключом, многопоточные приложения, микросервисная архитектура сетевых приложений, использование баз данных для обработки и хранения информации, транзакционная модель изменения данных в базах данных.
HARD SKILLS
SOFT SKILLS
Состав команды — 2-3 человека:
Программист, специализирующийся на написании серверных приложений: выстраивание архитектуры многопоточных или микросервисных приложений, понимание особенностей написания ПО для работы в сети и работы с блокчейн узлами, знание RPC API.
Программист, ответственный за компоненты работающие в окружении Ethereum Virtual Machine: понимание транзакционной природы функционирования EVM контрактов, разработка контрактов на языке Solidty или Vyper, понимание концепции gas, оптимизация контрактов для уменьшения вычислительной сложности контрактов и нагрузки на хранилище данных.
DevOps инженер/тестировщик: оформление многопоточного или микросервисного приложения в виде docker сервисов, развертывание частей приложения посредством dockercompose, интеграция с системой ведения версий и системой автоматического тестирования, обеспечение процесса своевременной диагностики на ошибки и несоответствие требованиям.
Роли в командах распределяются самими участниками, роли могут пересекаться, для более качественного распределения ролей лучше выписать сильные стороны каждого участника, посмотреть, что нравится каждому из них и после этого уже распределяться ответственности и обязанности.
Видео-курс от Университета Иннополис по созданию децентрализованных приложений на базе платформы Ethereum.
Задачник от Университета Иннополис для изучающих блокчейн технологии.
Конспект занятий по теме «Идентификация с использованием биометрических методов»
Курс «Введение в машинное обучение»
Курс «Глубокое обучение в решении задач компьютерного зрения» (англ. яз.)
Первая часть конспекта занятий по теме «Чат-боты»кое обучение в решении задач компьютерного зрения» (англ. яз.)
Вторая часть конспекта занятий по теме «Чат-боты»
Конспект занятия по теме «Создание децентрализованного приложения для блокчейн сети на базе Ethereum»
Статья с основными подходами к обработке естественного языка
Хакатоны по профилю «Программная инженерия финансовых технологий» (сезон 2017/18)
Хакатоны по профилю «Программная инженерия финансовых технологий» (сезон 2018/19)
Задачник 2017/18
Задачник 2018/19