Contents
- 1 Практикум по Kotlin: 110 задач и собственный Telegram бот (курсовая работа).
- 1.1 Тезисный onboarding в обучение, если вы тут впервые
- 1.2 1: Задания по Kotlin c код-ревью и обратной связью по решениям
- 1.3 Бесплатно начать учить программирование самостоятельно можно уже сейчас
- 1.3.1 Список уроков, по которым разработаны задачи в первой части практикума (22 урока / 110 задач)
- 1.3.2 Отзывы студентов о практике KotlinSprint
- 1.3.3 Получите ознакомительный доступ к 5 урокам (25 задач) со всем, что входит в менторство
- 1.3.4 Загляните и узнайте, что такое результативное обучение за:
- 1.4 2: Создание Telegram-бота на Kotlin пошагово (используя Telegram API)
- 1.5 Разработка Телеграм-бота для изучения иностранных слов
- 1.6 Первый открытый урок по теории:ТРПО + описание этапов проекта
- 1.7 Этапы курсового проекта по разработке телеграм бота
- 1.7.0.1 1. Создание проекта, работа с файлами
- 1.7.0.2 2. Работа со строками, десериализация
- 1.7.0.3 3. Реализация меню и раздела статистики
- 1.7.0.4 4. Реализация функционала изучения слов
- 1.7.0.5 5. Функционал проверки правильных слов
- 1.7.0.6 6. Тестирование и рефакторинг
- 1.7.0.7 7. HTTP, API, JSON, парсинг ответа сервера
- 1.7.0.8 8. Regex, отправка сообщений в бот
- 1.7.0.9 9. Реализация интерфейса телеграм бота
- 1.7.0.10 10. Миграция на Kotlinx.Serialization, многопользовательский режим, публикация на удаленный сервер
- 1.7.1 Что еще пишут участники (отзывы #2)
- 1.7.2 Сделайте первый шаг в разработку с компетентной персональной поддержкой. Начните с пробной подписки на практику KotlinSprint за:
- 1.8 Отвечаю на частые вопросы из лс
- 1.8.0.0.1 Нужно ли сначала пройти все видео уроки курса, чтобы начинать практику?
- 1.8.0.0.2 Что, если практикум окажется слишком сложным для меня?
- 1.8.0.0.3 А ты не порвешься всем в личке отвечать?
- 1.8.0.0.4 Сколько времени потребуется на прохождение курса?
- 1.8.0.0.5 Если сейчас мне git не нужен, можно сдавать задачи другим способом?
- 1.8.0.0.6 Можно ли вернуть деньги?
- 1.8.0.0.7 Есть ли ограничения по времени?
- 1.8.0.0.8 Можно сразу начать решать проект телеграм бота, пропустив задачи?
Практикум по Kotlin: 110 задач и собственный Telegram бот (курсовая работа).
Здравствуйте! Расскажу из чего состоит практический блок в рамках курса по языку программирования Kotlin. Распишу программу полностью.
Начинайте обучение языку по бесплатным видео урокам. Закрепляйте знания тестами и практикой в обучающем телеграм боте.

Тезисный onboarding в обучение, если вы тут впервые
Здесь мы вместе учим Kotlin. Меня зовут Иван и я Android-разработчик, создаю бесплатный контент по Kotlin и Android (YouTube).
Разработал обучающий бот с бесплатными тестами и практикой. Закладываю понимание языка, помогаю перейти к изучению Android и развиваться в этом направлении. Учился в «Школе 21» (42 school) и знаю как учиться эффективно и по фану, чтобы не опускать руки по дороге к долгожданной работе на галерах программистом.
Глобальная миссия – провести студента от нуля до получения оффера на позицию Android-разработчик. Вы уже и так много раз слышали про навыки, которые можно получить при обучении с ментором. Про зарплаты и возможности в этой сфере. Давайте уже сосредоточимся на делах.
Практика состоит из двух глобальных разделов (спринтов)
«Чтобы научиться программировать, нужно программировать»
А еще видеть результат своего труда, чтобы не растерять мотивацию по дороге к офферу и реально оценивать и отслеживать свой личный прогресс в обучении.
Спринт – период времени, в течение которого команда разработчиков работает над определенным набором задач, направленных на достижение общей цели проекта.
Для нас с вами спринт – это период прохождения практических разделов (задачи и разработка бота). Каждый обучается в своем комфортном темпе, поэтому единых для всех дедлайнов я не устанавливаю.
![Задания по Kotlin: практика из 110 задач и свой Telegram бот 2 DALL·E 2023 03 06 12.12.48 futuristic neon photo of an astronaut at a computer. the big numbers 42 are written on a computer screen in red on a black background - Android [Kotlin] для начинающих](https://ievetrov.ru/wp-content/uploads/2023/03/DALL·E-2023-03-06-12.12.48-futuristic-neon-photo-of-an-astronaut-at-a-computer.-the-big-numbers-_42_-are-written-on-a-computer-screen-in-red-on-a-black-background.jpg)
1: Задачи по урокам
с обратной связью
Предлагаю вам окунуться в волшебный мир программирования через задачи в контексте кейсов из реальной жизни.
Детсадовских задачек про поезда, землекопов и даже котиков мы не увидим. Вместо этого мы берем реальную задачу (или проблему), поставленную условным бизнесом и решаем ее.
Таким образом вы сможете понять зачем в каждой конкретной ситуации применять ту или иную технологию/принцип/паттерн. Именно когда увидите в ней потребность – начнете писать код осознанно.
![Задания по Kotlin: практика из 110 задач и свой Telegram бот 3 DALL·E 2023 03 06 12.23.14 telegram messenger interface is drawn on the monitor screen - Android [Kotlin] для начинающих](https://ievetrov.ru/wp-content/uploads/2023/03/DALL·E-2023-03-06-12.23.14-telegram-messenger-interface-is-drawn-on-the-monitor-screen.jpg)
2: Разработка
Телеграм бота
Научившись писать код, придет время создать что-то осязаемое и полезное для общества. Мы напишем продукт, которым сможет пользоваться любой человек. Полностью на языке Kotlin.
Это будет телеграм бот для изучения иностранных слов. Кстати, вот такой я написал для себя и загрузил в него слова из книги «Автостопом по галактике».
Чтобы вы действительно смогли написать его самостоятельно, а не слизать код с видосиков, я разработал программу из 10 этапов. В них есть темы из пройденных задач, а также дополнительные закрытые видео и текстовые руководства.
Теперь подробнее про 1 раздел KotlinSprint
1: Задания по Kotlin c код-ревью и обратной связью по решениям
Код-ревью – процесс проверки и анализа кода, написанного другим программистом, с целью выявления ошибок, улучшения качества и повышения эффективности программного продукта.
110 задач по Kotlin с ментором
Решайте задачи, сдавайте их на проверку и получайте обратную связь в рамках код-ревью.
Простой алгоритм сдачи и получения, приближенный к реальным условиям:
1. Получаете задачу в обучающем боте
2. Решаете в IntelliJ IDEA
3. Загружаете код на GitHub
4. Присылаете ссылку с кодом решения
Обратная связь включает не только рекомендации по оформлению кода, но и помощь в решении. Это направление студента к правильному решению и объяснение «как надо». Как правило студент всегда сам приходит к решению, что положительно сказывается на качестве обучения.
Надо услышать и принять основную цель всего этого мероприятия – сначала мы учимся делать простые вещи хорошо. Чтобы не задумываться о том, как дышать, потому, что это основа. Окунаемся в тему постепенно, по уровням сложности. Как водолазы при погружении, которые продуваются каждые несколько десятков сантиметров. Чтобы избежать получения баротравмы путем закрытия евстахиевых труб. Именно поэтому в первом практическом разделе мы доводим до автоматизма навык продуваться еще на берегу.
Каждый урок содержит 5 задач, которые выдаются в обучающем боте. Интерфейс выбора задач похож на разделы с выбором тестов, которые вы уже скорее всего видели. Каждую задачу вы решаете в среде разработки на своем компьютере.
Установить и настроить IntelliJ IDEA можно по руководствам из имеющихся уроков на канале. Если все-таки возникли проблемы, можно связаться со мной через бот. Ошибки в работе софта случаются. Если вы никогда с ними не сталкивались – это нормально (если начинающий или до этого писали код только в браузерном интерфейсе онлайн школ).
Помимо основ работы в среде разработки типа создания файлов и пакетов, мы отрабатываем и более продвинутые, но обязательные для любого разработчика вещи. Такие как работа с системой контроля версий в интерфейсе «Идеи», дебаг (отладка) программ, консольные команды, система сборки проекта и т.д. Но не будем забегать вперед. Всему свое время.
Уроки открываются по одному ежедневно. 22 урока – 22 дня. Каждый урок содержит 5 заданий. Как в видео, так и в задачах – сложность плавно увеличивается от темы к теме. Начинаем с самых основ – переменные, строки, арифметика и т.д. (бережем психику гуманитариев). И продолжаем погружаться в язык до функций, классов, ООП и так далее, пока не упремся в следующий раздел – курсовая работа. Там нам и пригодится вся пройденная практика, но об этом ниже. Двигаемся по нарастающей сложности – от простого к продвинутому.
Задачи. 4 из них по уровню урока (видео). 5-я задача «со звездочкой» – но это не значит, что она написала для вундеркиндов-олимпиадников. Это значит, что для решения последней в уроке задачи требуется провести дополнительный поиск информации в интернете.
Это тренирует важнейший навык разработчика – самостоятельный поиск решения проблем или попросту говоря «гугление». Есть даже статья про «Догуглиться до senior-программиста» 😀 и, кстати, механики обучения, описанные там, в том числе применяются и у нас в практике.
Решение присылается также через функционал обучающего бота и отправлять его можно двумя способами: с помощью Pull Request’ов используя git-репозиторий или с помощью ссылок на код через специальный сервис GitHub Gist (ограниченную часть уроков). Это значит, что в рамках ознакомительной подписки не обязательно разбираться с гитом. Хотя этот навык уже является одним из базовых для разработчика любого уровня.
После старта спринта вам приходят пошаговые инструкции на оба этих способа. Кстати, ознакомительное видео про сдачу домашек через git-flow есть на канале.
Чтобы давать полноценную обратную связь всем подопечным – я вынужден ограничивать количество мест в группе на спринте.
Поэтому попасть на персональную работу можно только в период дополнительного набора, который производится один раз в несколько месяцев.
Актуальная информация всегда доступна в боте, а также ниже по кнопкам приглашения на пробную подписку на практику KotlinSprint.
Бесплатно начать учить программирование самостоятельно можно уже сейчас
Смотрите уроки на YouTube канале и самостоятельно воспроизводите все, что происходит на экране. Обязательно стараясь понять что происходит. Лучше всего воспроизводить примеры из видеоуроков со своими данными для реализации.
Проходите теоретические тесты в обучающем боте для закрепления материала. Отслеживайте прогресс обучения, в наглядном интерфейсе. Собирайте баллы и соревнуйтесь в общем рейтинге с другими участниками или друзьями для поддержания мотивации.
Если вы тут впервые, можете познакомиться поближе с интерфейсом бота и начать учиться самостоятельно.
![Задания по Kotlin: практика из 110 задач и свой Telegram бот 4 IMG 2088 scaled - Android [Kotlin] для начинающих](https://ievetrov.ru/wp-content/uploads/2023/03/IMG_2088-scaled.jpg)
Получите ознакомительный доступ к 5 урокам (25 задач) со всем, что входит в менторство
Пробная подписка – это возможность испытать на себе работу с ментором за несколько чашек кофе. Заглянуть за ширму настоящей работы в тандеме на задачах в условиях, приближенным к реальным рабочим.
В течение 10 дней мы с вами будем сидеть за одним виртуальным столом и заниматься программированием. Как правило это не только написание кода. А еще и решение проблем с IDEA, ковыряние конфликтов в репозитории (если что-то пошло не так), обсуждение неочевидной работы программы и разбор деталей реализации. Да и просто поддержка, и ответы на вопросы об IT индустрии.
Темы с задачами, которые входят в пробную подписку:
Помимо этого вы овладеете важнейшим навыком, который требует любой работодатель – работа в команде, используя инструменты для контроля версий кода (GIT).
Теперь подробнее про 2 раздел KotlinSprint
2: Создание Telegram-бота на Kotlin пошагово (используя Telegram API)
API (Application Programming Interface) – это программный интерфейс, который позволяет различным приложениям общаться и взаимодействовать друг с другом.
Разработка Телеграм-бота для изучения иностранных слов
Бот будет помогать изучать иностранные слова. Список слов и перевод вы сможете загружать самостоятельно, используя текстовый файл. Техника изучения не претендует на эталонную, однако, чем-то напоминает технику интервальных повторений.
Все дело в том, что механика подразумевает повторный показ слова в случайном порядке, пока оно не будет считаться выученным. А выученным оно будет считаться после того, как выбрали его правильный перевод N раз. И этот параметр настраивается в коде.
Курсовая работа открывается на 21-й день. Разработка разбита на 10 логично связанных этапов (описание этапов размещено ниже). Каждый этап включает в себя в той или иной пропорции следующие материалы (зависит от темы и уровня требуемого погружения в материал):
Первый открытый урок по теории:
ТРПО + описание этапов проекта
ТРПО – технология разработки программного обеспечения.
Это теоретический урок по принципам разработки программ. Одно из нескольких публичных видео по проекту (остальные уроки по продвинутым темам только для участников). С него начинается курсовая работа по разработке телеграм бота на Kotlin.
Понимание бизнес-процессов даст вам неоспоримое преимущество перед другими кандидатами на собеседованиях. Не забывайте, что работодателю выгодно брать специалиста, наиболее приближенного к готовому. Будет плюсом, если будущий джун еще без опыта работы уже будет уметь работать в команде, пользоваться ключевыми рабочими инструментами и иметь понимание внутренней кухни процесса разработки.
Этот урок можно посмотреть на YouTube канале (или нажмите на превью).
Этапы курсового проекта по разработке телеграм бота
Создадим основу для нашего курсового проекта, а также освоим работу с файлами в Kotlin. Во второй части презентации погрузимся в техническое задание. Обсудим проектирование консольного тренажера.
Научимся работать со строками, освоим и применим несколько полезных функций, чтобы распарсить строки и создавать из них объекты. Освоим работу с data-классами, и, как результат, реализуем парсер словаря для нашего тренажера.
На данном этапе мы реализуем основной интерфейс для работы с тренажером. Вам предстоит реализовать функционал формирования и отображения статистики по изученным словам.
На данном этапе мы проработаем алгоритм для выбора не выученных пользователем слов, причем будем брать случайные слова на выбор. Здесь нам пригодятся навыки работы с коллекциями. В результате мы научим нашего бота выводить варианты ответов для пользователя.
Здесь мы реализуем проверку правильности ответа, а также сохранение статистики по выученным словам. На выходе получим “почти” готовый консольный тренажер.
Данный этап посвящен работе над ошибками. Мы протестируем наше приложение, выявим ошибки и несоответствия требованиям. Вы наглядно убедитесь, что не надо бояться написать плохо с первого раза, у нас есть право на ошибку. И в то же время, всегда тестируйте то, что написали. На выходе мы получим полностью рабочий консольный тренажер.
Переходим к разработке Telegram бота. Начнем с изучения основ работы с сетью в Kotlin. Разберем устройство HTTP протокола. Вы узнаете что такое API в целом и Telegram Bots API в частности. Научимся получать обновления от API и парсить их (используя функции для работы со строками).
На данном этапе я расскажу вам про регулярные выражения – более продвинутый способ парсинга строк. Наш бот научится отправлять сообщения пользователю. Таким образом мы будем обладать недостающими знаниями, чтобы реализовать весь функционал бота.
Это самая объемная самостоятельная часть – вам предстоит взять консольный тренажер, написанный к 6 этапу. Вооружившись навыками из 7 и 8 этапов, превратить его в бот для изучения иностранных слов. В итоге вы получите работающий бот в телеграме, который показывает вопрос и варианты ответов в виде кнопок, а также статистику.
Мы разберемся с еще более удобным способом работы с JSON форматом. Сделаем возможность работы бота в чатах с разными пользователями. А в финале я покажу как залить наше творение на сервер, чтобы можно было делиться с друзьями и не держать комп постоянно включенным для поддержания его работы.
Отвечаю на частые вопросы из лс
В этом нет необходимости. Задачи построены таким образом, чтобы после любого просмотренного урока можно было закреплять его тестами и практическими заданиями. Просто садись и учись. Но просмотр будущих уроков, пусть даже беглый, лишним не будет. А в некоторых случаях поможет решить задачу более оптимально, особенно “со звездочкой”.
Ну, во-первых никто не говорил, что программирование – это легко 🙂 Однако, я уверен, что любой человек может достигнуть любого результата. И это работает. Я сопровождаю вас в течение всего пути именно для того, чтобы сложные вещи были разжеваны и отложились в памяти. Прогресс участников говорит сам за себя (см. отзывы).
Чтобы не страдало качество обратной связи, и чтобы эта работа не съедала все мое личное время – донаборы имеют редкий характер. А также ограничение непосредственно по продолжительности донабора в несколько дней. Также тут уместно сказать, что количество мест ограничено и я не буду набирать толпу людей, чтобы бросить их на произвол судьбы.
Зависит от количества времени, которое вы готовы инвестировать в обучение. Мы стартанули в декабре 2022 и пока могу сказать, что средний темп по больнице от 1.5 до 3 месяцев. Включая написание телеграм бота.
Есть возможность сдавать задачи на проверку, загружая код на специальный сервис GitHub Gist и присылая в бот ссылку. Эта возможность распространяется только на пробный период (5 уроков). Инструкция по работе с этим инструментом придет после оформления пробной подписки. Однако, чтобы на программировании зарабатывать деньги, git необходим на 100%.
Да, пропорционально открытым урокам. Уроки в рамках любой подписки открываются ежедневно по одному (один урок содержит 5 задач). Сумма возврата рассчитывается исходя из количества открытых уроков.
Дедлайнов у меня нет как таковых. Ваш ежемесячный дедлайн – ограниченная по времени подписка. Да, ее можно продлить со скидкой. Но вы сами заинтересованы в том, чтобы пройти все темы и этапы как можно быстрее.
Начать работу над курсовым проектом можно через 21 день после старта подписки. Когда откроются все уроки, которые открываются ежедневно по одному. Задачи можно не решать, но если ты уже имеешь опыт, рекомендую попробовать пройтись по задачкам “со здездочкой”. Если же ты чувствуешь необходимость попасть к нам только ради курсового проекта – напиши мне в личку в телеграм (контакты можно найти в боте).