YOUNG

Как сделать полезное приложение в 16 лет? Советы начинающим программистам

YOUNG
Александр Паволоцкий
Александр Паволоцкий

Академический руководитель школьных образовательных программ по информатике и программированию в Яндексе

Анастасия Фролова

В этом году больше двух тысяч учеников стали выпускниками Яндекс.Лицея — бесплатной двухгодичной программы для школьников 8–10-х классов по промышленному программированию. Ребята разработали и защитили первые проекты: приложения, телеграм-боты, сайты и игры. 

В преддверии нового набора выпускники рассказали, как их идеи помогут людям, с какими сложностями им пришлось столкнуться в начале пути и что бы они посоветовали начинающим программистам.

Как сделать полезное приложение в 16 лет? Советы начинающим программистам
Иван Переверзев, 16 лет, Липецкая область, село Баловнёво
Создал приложение «Электронный журнал»

До девятого класса я учился в Подмосковье, там у меня был классный учитель информатики. Затем мы с родителями переехали в село, где мне стало не хватать уроков программирования. Чтобы восполнить пробел, я поступил в Яндекс.Лицей. Приходилось ездить на занятия в соседний город.

Во время учебы я научился ставить перед собой задачи и находить информацию для их решения, а ещё получил возможность создавать собственные продукты. За два года было три больших проекта: приложение для компьютера, разработка игры и сайта. Можно придумать что угодно, но мне хотелось сделать что-то действительно полезное.

Идея первого крупного проекта пришла на ум сама собой. Мои родители учителя, и они пользуются электронным журналом. Я решил сделать что-то подобное, но не сайт, а компьютерное приложение, не требующее доступа к интернету. Мой журнал позволяет оперативно анализировать успеваемость учащихся: добавлять предметы, быстро узнавать оценки конкретных учеников и рассчитывать их средний балл.

Когда я закончил проект, я попросил родителей его протестировать. Не знаю, насколько их оценка объективна, но они остались довольны. По крайней мере, приложение удобно для быстрых операций — ученики довольно часто просят их узнать оценки.

Да и вместо того чтобы рыться в бумажном журнале или долго заходить на тот сайт, которым пользуются на работе, они могут просто открыть приложение на компьютере. Проект нужно ещё немножко доработать. Например, я хочу добавить расписание уроков и звонков, домашние задания, а также экспорт всех данных приложения в виде таблицы Excel.

Распространение моего «Электронного журнала» уже идёт по нескольким сёлам. И когда я добьюсь внедрения в моей школе, то его смогут использовать и в её филиалах.

Если приложение будет достаточно эффективным и удобным, то вполне возможно, что его начнут рекомендовать и в других городах. Если я смогу с помощью финансирования полностью реализовать проект, то учителя получат ещё один удобный инструмент для работы.

При разработке своих проектов я часто использовал такой приём: когда встречал интересную вещь в каком-нибудь проекте, игре, обычном оконном приложении или веб-сайте, то задавал себе вопрос: «А как бы это реализовал я?». Это не один раз помогало мне решать на первый взгляд сложнейшие задачи и двигаться дальше.

Как я советую приступать к работе над своим проектом:

  1. Проанализируйте рынок и узнайте, что пользуется спросом. Найдите интересную тему и попробуйте внести в неё что-то своё.
  2. Соберите информацию, которая поможет вам получше понять и углубиться в неё. Не ограничивайтесь интернетом. Если у вас есть знакомый специалист, связанный с этой темой, обязательно задайте ему парочку вопросов.
  3. Постарайтесь найти нечто похожее на то, чтобы вы хотите создать сами, и постарайтесь сделать что-то похожее, но своё.  

 

Никита Жуков, Москва
Разработал приложение ClientsPlanner, 2D-игру GoldRunnerGame и делает свою соцсеть

Изучать программирование я начал с восьмого класса — ходил в соседнюю школу в кружок. Там мы писали первые программы на языке Scratch. В кружке я познакомился с мальчиком, который параллельно учился в Яндекс.Лицее и рассказывал о нем.

Я сразу же захотел поступить, но с первого раза мне это не удалось сделать. Я стал заниматься самостоятельно: искал в интернете логические задачи, писал к ним решения и проверял.

Читал учебники по Python и проходил тесты. Сам научился делать игру в «динозаврика»: такого, который появляется в браузере Google Chrome, когда нет подключения к интернету.

В итоге, когда я всё-таки поступил, первые полгода программы для меня не были чем-то новым. Потом программа стала сложнее, но изучал я её с удовольствием — оба года я находился в топе учеников, и ко мне часто обращались за помощью на любом этапе обучения.

Мне нравится, что те проекты, которые я создавал даже в рамках обучения, не оторваны от жизни. Я хотел сделать приложение, которым действительно будет кто-то пользоваться. Подвернулся удачный случай: моему тренеру по фитнесу нужно было оцифровать учёт клиентов.

Он индивидуальный предприниматель, занимается всем в одиночку: сам тренирует, сам ведёт бухгалтерию и общается с клиентами. Раньше он записывал всех гостей ручкой в большой тетради, а расписание занятий вёл в календаре Google.

Мне захотелось объединить всё в одном месте, и аналогов в интернете я не нашёл. ClientsPlanner мы разрабатывали с моей девушкой. По ходу проекта мы консультировались с тренером, какие функции ему нужны для работы.

Наше приложение позволяет составлять собственное расписание занятий, отмечать посетивших тренировки клиентов, работать с базой данных своих клиентов, а также просматривать месячные отчёты о работе.

Приложение ClientsPlanner полностью закончено, тренер уже пользуется им в работе. Говорит, что теперь всё разложено по полочкам. Причём по функционалу оно может быть применимо не только в спортивных залах, но и, например, в медицинских учреждениях.

Ещё я делал 2D-игру GoldRunnerGame. Игру оценили мои одноклассники, на переменах они даже отбирали у меня ноутбук, чтобы в неё поиграть. Суть её такова: нужно собрать все монетки на уровне, избегая зомби, одним из которых может управлять второй игрок.

Я смотрел игры, которые делали другие лицеисты, — многие из них ты проходишь один раз, и больше нет желания возвращаться. Карта не меняется, за более быстрое прохождение ничего не получаешь, а мою игру можно было проходить раз за разом, улучшая результат.

Сейчас я готовлюсь к поступлению в МФТИ и увлечён разработкой собственной социальной сети с лайками и дизлайками — писать её довольно сложно, и знаний из Яндекс.Лицея мне не хватает. Например, не так-то легко настроить автоматическое обновление страницы диалога, я с этим довольно долго мучился.

Однако я видел, что другие лицеисты тоже пытаются делать подобные проекты, — возможно, их идеи помогут мне развить свою. Мне хочется реализовать социальную сеть с базовым функционалом, но которую можно развивать во что-то новое. 

Мои советы тем, кто начинает путь в разработке:

  1. Если вы начинающий разработчик и не знакомы с языком или конкретной технологией (разработка игр, WEB), то ищите гайды в интернете: «Как написать игру» или «Как сделать вебсайт». Разобравшись в них, вы получите базу, с которой сможете написать свой проект.
  2. Решайте задачи. Существует множество сайтов (Leetcode, Codeforces), на которых можно найти задачи любого уровня сложности, а этот навык необходим любому программисту.
  3. Разбирайтесь с ошибками самостоятельно. 
  4. Не беритесь за все и сразу. Не стоит пытаться писать 3D-онлайн шутер, если вы не можете сами написать змейку. Даже если вы найдете нужный гайд, в нем будет множество сложных технологий, с которыми вы не сможете разобраться. А просто скопировав проект из гайда, вы ничему не научитесь.

 

Егор Щукин, 15 лет, Подмосковье

Создал телеграм-бот для операций с криптовалютами


В 10 лет я любил читать научно-популярные журналы, и однажды в одном из них я узнал о профессии разработчика. В статье рассказывалось о программистах, и мне показалось, что они настоящие супергерои: у них классные задачи, они пишут код и своими руками создают программы из ничего. Поэтому через некоторое время я записался на школьные дополнительные курсы по программированию на Pascal.

Потом в 13 лет поступил в Яндекс.Лицей. При этом меня взяли с седьмого класса, хотя обычно приём с восьмого.

Финальный проект мы придумывали с друзьями. Не хотелось разрабатывать что-то просто для галочки. Делать сайт нам показалось скучным, а вот разработка телеграм-бота нас заинтересовала.

Потом выбирали тему и остановились на одной из самых популярных сейчас — криптовалюте. Мои соавторы что-то пытались купить, инвестировать, но мне больше нравилось работать в коде, тема была не так важна.

Я отвечал за основной код, который связывал «Телеграм» с ботом. Другие участники команды отвечали за презентации, документирование проекта и дополнительные операции — например, подтягивание ежедневных новостей из интернета в бот. На мой взгляд, за время проекта я научился работать в команде и быстро адаптироваться к меняющимся реалиям и форс-мажорным обстоятельствам — это пригодится и в работе, и в жизни.

Дальнейшее развитие проекта упёрлось в финансирование, потому что для сбора средств на краудфандинге нужно быть совершеннолетним, а мне только 15 лет. Спрашивали родителей, но тогда они не поддержали нашу идею.

Отсутствие денег на проект, конечно, несколько меня сдерживает, но полученные знания уже помогают мне зарабатывать: я попробовал выполнять заказы на фрилансе, сделал бота в «Телеграме», сайт. Иногда папа просит меня разработать что-то для него, поэтому я регулярно делаю новые проекты, нужные людям.

Что я бы посоветовал начинающим разработчикам:

  1. Не бояться ошибок, потому что разработчики и должны их исправлять. На ошибках надо учиться.
  2. Начинать изучать что-то новое нужно по урокам на YouTube и чтению документации от создателей технологии, потому что там будет описано и показано максимально подробно.

 

Дмитрий Куценко, Александр Костенко и Владимир Кальсков, Санкт-Петербург

Создали веб-игру Petersburg Explorer, которая позволяет прогуляться по Северной столице


В восьмом классе на линейке мы узнали, что в нашей школе открывается Яндекс.Лицей, где будут бесплатно учить программированию на Python. Мы уже знали азы программирования, но проектов ещё никаких не разрабатывали.

Санкт-Петербург — наш родной и любимый город, мы неплохо разбираемся в его истории, поэтому во время учёбы мы решили создать веб-игру Petersburg Explorer, которая позволяет прогуляться по Петербургу, проникнуться красотой и культурой города, а заодно и научиться ориентироваться в нём.

Цель игры — дойти от одной точки до другой по панорамам Яндекс.Карт. Таким образом игрок запоминает расположение достопримечательностей Санкт-Петербурга, их внешний вид и маршруты между ними. Мы работали над игрой около трёх недель. Дима занимался серверной частью, логикой, связанной с панорамами, Саша занимался дизайном и помогал в серверной части, а Володя отвечал за идеи и тестирование.

В начале работы мы планировали создать нечто вроде викторины с панорамами. Игрок должен был по панораме определить, в какой точке мира находится, и поставить метку, но потом решили сделать так, чтобы пользователь мог перемещаться в виртуальной реальности и зарабатывать очки.

Когда игрок завершает игру, панорама отправляет координаты на сервер. Сервер сравнивает координаты и по формуле высчитывает, сколько очков игрок получает. Есть аналог нашего проекта — GeoGuessr. Там нужно по панораме определить, где ты находишься, но у нас другая концепция. Наша фишка — игрок может гулять по панораме, всё происходит от первого лица.

Это не только учебный проект — игра уже доступна в сети для каждого. К тому же, речь не только о развлечении: мы считаем, что Petersburg Explorer может быть использована на уроках географии, истории города или стать своеобразным интерактивным элементом на сайтах туристических фирм.

Мы очень хотим, чтобы игра получила логическое продолжение, развивалась. Поэтому планируем её продвигать — возможно, совместно с туристическими компаниями. Хочется дальше осваивать программирование, веб-вёрстку и новые языки. В планах на лето — изучить Android и C++.

Начинающим разработчикам мы советуем:

  1. Всегда стараться выходить из зоны комфорта.
  2. Гуглить. Ответы почти на все вопросы есть в интернете.
  3. Не бояться задавать вопросы на форумах и специалистам и стараться получать какую-либо обратную связь по своим проектам.

Фото на обложке: Matej Kastelic/shutterstock.com

Иллюстрации предоставлены автором.

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Skillbox начал открывать офлайн-школы
  2. 2 Запуск бизнеса в Индии: опыт онлайн-школы IT-профессий
  3. 3 Как перейти в IT-компанию: отвечают рекрутеры и HR
  4. 4 Опыт внедрения российского ПО: 3 ошибки и как их избежать
  5. 5 Как выбрать профильный детский лагерь
EdTech: карта российского рынка
Все компании и инвесторы в области образовательных технологий
Перейти