Обучение в The Interchain Developer Academy
Оглавление
- Вступление
 - Что есть Академия
 - Регистрация на курс
 - Вступительное испытание и требования к подготовке
 - Как проходит обучение
 - О самом учебном материале
 - Экзамен
 - Трансляции
 - Что дает обучение в Академии
 - Заключение
 
Вступление
Автор статьи успешно завершил обучение в The Interchain Developer Academy (далее - Академия) и хочет похвастаться поделиться информацией о том, как оно вообще проходит. Статья будет полезна тем, кто планирует влиться в разработку в экосистеме Cosmos и думает о вступлении в Академию.
Что есть Академия
      Академия - это 6-недельный (время на освоение основного материала, не включая экзамен) курс, затрагивающий основы разработки апп-чейна (app-chain, application-specific blockchain - блокчейн, создаваемый под какой-либо конкретный функционал) в экосистеме Cosmos с использованием таких инструментов, как:
- Cosmos SDK (фреймворк для построения блокчейна на основе набора готовых модулей);
 - Ignite CLI (инструмент, упрощающий процесс разработки с использованием Cosmos SDK);
 - CosmJS (библиотека для создания клиентских приложений).
 
Также в курсе дается теоретический минимум по технологии блокчейна, рассматривается архитектура апп-чейна на Cosmos SDK.
В процессе обучения студентам предстоит самостоятельно освоить специально подготовленный материал, пройти тесты и сдать экзамен.
Программа рассчитана на 10 часов самостоятельной работы в неделю. Обучение бесплатное.
Курс разрабатывается и курируется командой B9lab при финансовой поддержке Interchain Foundation. Также в организационном процессе принимает участие Noam Cohen из Interchain GmbH (подразделение Interchain Foundation), координирующий адаптацию и обучение разработчиков в экосистеме Cosmos.
Регистрация на курс
Чтобы записаться на курс, нужно подать заявку на сайте Академии:
      На обучение набирается группа численностью несколько десятков студентов приблизительно раз в 4 месяца. Количество мест на каждый поток ограничено, поэтому не стоит затягивать с регистрацией.
Вступительное испытание и требования к подготовке
После подтверждения почты придет ссылка на вступительный тест, который будет проводиться на платформе HakerRank.
Предварительно нужно будет заполнить анкету, в которой просят рассказать о вашем уровне подготовке, целях обучения и т.п.
Сам тест состоит из двух задач на программирование и десяти вопросов на тему Computer Science - на все отводится 90 минут. За каждую задачу дают по 50 баллов, а за каждый вопрос - 5 баллов, т.е. всего можно набрать 150 баллов. Чтобы успешно пройти тест, нужно получить 135 или более баллов. Задачи несложные, язык можно выбрать на свой вкус (автор статьи кодил на Javascript и не имел никаких проблем). Чтобы проверить корректность решения задачи, будет предложено запустить тесты. Вопросы также не должны вызвать затруднений у студентов с техническим бэкграундом, да и гуглить никто не запрещает. Времени на все хватает с избытком.
      По окончании тестирования на почту приходит подтверждение и остается ждать результатов.
      Что касается требований к подготовке для прохождения курса, то минимумом можно считать знание Golang или Typescript (первый нужен для работы с Cosmos SDK, второй - для CosmJS). Владея одним из двух языков, несложно по-быстрому освоить на базовом уровне другой, чтобы иметь возможность понимать код. Автору статьи хватило одного дня изучения Golang, чтобы сдать экзамен.
Как проходит обучение
Незадолго до начала программы приходит письмо с организационной информацией. После присоединения к Discord серверу Cosmos Network и верификации аккаунта...
      
      Учебный материал представлен в текстовом виде и находится в свободном доступе. На GitHub выложены репозитории учебных проектов, поэтому всегда есть возможность подгрузить рабочий код и не сойти с трека.
В конце первой и второй недели проводится промежуточное тестирование на уже знакомой платформе HakerRank. Задания не доставляют проблем - это такая проверка, что студент не потерял интерес к обучению.
      
      О самом учебном материале
Материал состоит из шести основных и одного опционального разделов, на освоение каждого из которых отводится по неделе:
- Опциональный раздел. Основы блокчейн технологии, базовые понятия криптографии, понятие консенсуса в распределенных сетях. Завершается необязательным квизом.
 - Экосистема Cosmos и отличительные особенности ее блокчейнов, архитектура апп-чейна, устройство Cosmos SDK.
 - Про установку инструментов (Golang, Rust, Nodejs, Docker, VSCode) и начало практической работы с Cosmos SDK и Ignite CLI на примере апп-чейна для игры в шашки. По мнению автора статьи в разделе не хватает информации про то, что пользователям Windows для дальнейшей работы придется установить WSL2 - по крайней мере, у нескольких студентов возникали вопросы по этому поводу.
 - Продолжение разработки апп-чейна с Cosmos SDK и Ignite CLI, а также один урок про добавление в него CosmWasm смарт контракта. Следует понимать, что этот курс не про CosmWasm вовсе, а здесь всего лишь демонстрация возможности деплоя смарт контракта в апп-чейн.
 - Отдыхаем от шашек - подробный теоретический блок (но с примерами кода) про работу IBC.
 - Написание клиентской части на CosmJS и работа с кошельком Keplr.
 - Завершение работы над апп-чейном - доработка пользовательского интерфейса и написание сервера-индексатора.
 
      Учебный график нестрогий, от него можно отклоняться - важно вовремя сдавать тесты и проработать материал до экзамена (дата его начала известна заранее).
Экзамен
Продолжительность экзамена - 2 недели (может быть увеличена, если будет проводиться дополнительный набор учащихся). Для его успешного прохождения необходимо завершить 3 упражнения (100 % прохождение юнит-тестов). Рабочий процесс примерно такой:
- Получаете доступ к репозиториям на GitLab и клонируете себе проект.
 - Вносите в проект изменения согласно заданию и ожидаемому в тестах поведению.
 - Запускаете тесты в своей среде и Docker.
 - Пушите проект на GitLab, где CI/CD процесс запускает тесты.
 
В 1-ом упражнении надо будет написать немного кода на Golang; во 2-ом поработать с Ignite CLI; в 3-ем добавить функционал на Typescript (возможно, в будущем задания изменятся, но для первого потока было так).
В целом экзамен простой, можно сделать все за выходные.
      Трансляции
В течение экзаменационного периода проводятся трансляции интервью с представителями команд экосистемы Cosmos, где можно узнать о самих проектах и позадавать свои волнующие вопросы.
Студенты первого потока имели возможность пообщаться с представителями Interchain GmbH, Evmos, Osmosis Labs, Celestia, ixo World, Informal Systems. Записи трансляций доступны всем.
      Что дает обучение в Академии
Итак, мы выяснили, что:
- Курс основан на материалах, хранящихся в свободном доступе.
 - Тесты и экзамен просты и служат для поверхностной проверки приобретенных знаний.
 - Трансляции с командами экосистемы могут посмотреть не только студенты Академии.
 - В противовес всему вышеперечисленному - студенты получают плюшки в виде помощи кураторов; общения с сокурсниками; доступа к доске вакансий (на момент написанию статьи это еще не реализовано) и новых эвентах экосистемы; а также значок выпускника, ссылку на который можно добавить в свои профили в социальных сетях.
 
По мнению автора статьи нет принципиальной разницы между полностью самостоятельным обучением и участием в Академии, но для многих последний вариант может быть предпочтительнее (особенно с учетом того, что попасть в нее не так сложно).
Так какого уровня знания получает выпускник и на что он может рассчитывать? На выходе студент имеет: представление об архитектуре и работе «космических» блокчейнов, понимание рабочего процесса и навыки использования инструментов, умение ориентироваться в существующем проекте и вносить в него изменения - отличный задел для дальнейшего совершенствования своих скиллов. Стоит потренироваться на пет-проектах и можно приступать к поиску работы!
Заключение
Вывод можно сделать такой: если хотите приобщиться к разработке апп-чейнов в экосистеме Cosmos и дополнительно получить возможности нетворкинга - смело подавайте заявку в Академию. Ну а если не успели или не прошли, то не отчаивайтесь и изучайте материал самостоятельно.
Если есть вопросы или пожелания, пишите @defailt_handle (Telegram)/M. Daeva#3933 (Discord). Спасибо за внимание!
