0

Идеи для создания программ

Обучаться программированию нужно со страстью. А что разжигает ее лучше, чем работа над собственным проектом? Но что делать, если вам сложно найти стоящую идею для реализации? CEO приложения iConn Дмитрий Щукин рассказал о своем опыте изобретения идеи и поделился полезными ресурсами, с помощью которых каждый сможет придумать проект для мировой экспансии. Далее с его слов.

Как родилась идея iConn

Мы на рынке с сентября 2015. У нас 280 тысяч пользователей. Мы занимаемся привлечением новых клиентов в бизнес и раздаем пользователям скидки и подарки.

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

Человек приходит в кафе, ресторан дарит ему скидку, а он дарит эту скидку своим друзьям в фейсбуке или ВКонтакте. Друзья приходят в это кафе, и уже дарят скидку своим друзьям. Таким образом мы создаем вирусный SMM для бизнеса, лояльных клиентов, широкий охват аудитории в соц. сетях, а клиенты получают скидки и подарки. Все от такой схемы выигрывают и остаются довольны. А мы только претендуем на небольшой кусочек этого пирога.

Так же идея получила свое развитие на фоне того, как люди перестали пользоваться купонаторами и FourSquare. Эти сервисы начали терять свою популярность, а ничего нового не появилось. И тогда появились мы. И сейчас хотим захватить мир.

Что поможет сгенерировать идею для приложения

Я советую отталкиваться от value своего приложения. Какую пользу несет ваша идея? Что вы можете изменить и сделать лучше, если вы выкатите вашу App’у? Только так идея может выстрелить. Вдохновение во всем, начиная от историй успехов крупных компаний, до историй неудач. Его можно найти в дизайне других приложений, в идеях, которые уже существуют. В том как можно сделать вещь лучше, сочнее, полезнее.

Есть несколько ресурсов, где каждый сможет найти что-то, что поможет ему пробудиться:

  1. http://www.producthunt.com/ — Тут появляются новые продукты и услуги, каждый день.
  2. http://betalist.com/ — Здесь можно открывать для себя и получать доступ к новым стартапам.
  3. http://www.startups-list.com/ — Коллекция лучших стартапов.
  4. http://erlibird.com/ — Здесь рождаются прекрасные новые товары, которые можно потестировать.
  5. https://spark.ru/ — Наш российский сервис, где представлены сотни стартапов, и каждый день появляются новые.
  6. http://how.co/ — Тут можно учиться у предпринимателей.
  7. http://www.udacity.com/course/how-to-build-a-startup–ep245 — Бесплатный курс о создании стартапа.
  8. http://howmuchtomakeanapp.com/ — А тут можно посчитать, во что встанет создание мобильного приложения.

Мнение со стороны: потребитель прежде всего

Валерий Мифодовский, CEO 3plet согласен, что главное это ценность, получаемая пользователем: «Время, когда можно было просто „накодить“ интересную фишку и выпустить под нее приложение, прошло. Нужно смотреть на реальные потребности в физическом мире, без привязки к приложениям. И если вы ясно увидите такую потребность, понимаете мотивацию потребителя, то уже после стоит думать о приложении, как способе ее удовлетворения. Это главный тренд в текущей ситуации. Важен смысл, а не форма.

В случае с нашим форматом 3plet был реализован именно такой подход. Большой опыт работы в музыкальной индустрии и цифрового контента привел к пониманию происходящих изменений в отрасли. Вся цифровая революция свелась к созданию инструментов по доставке звука пользователям. Превратила музыкальный альбом в безликую папку с файлами. Сделала из артиста производителя звука. Но такой подход не решает задач артиста по формированию собственного образа и донесению творческих идей. Эти задачи раньше достигались через выпуск альбома на CD, виниле и т.д. На них размещали обложку, иллюстрации, тексты песен, информацию о всех участниках, студии звукозаписи. Все это позволяло задать важный артисту контекст, сильно влияющий на восприятие слушателем музыки.

В цифровой реальности стримминга это теряется. Но музыканты по-прежнему хотят выпускать яркие и содержательные альбомы. Эту задачу и решает платформа 3plet, позволяя артисту самостоятельно выпустить полноценный альбом содержащий музыку, иллюстрации, тексты в виде отдельного приложения. Это цифровая замена CD, только без проблем с тиражами и доставкой по всему миру. В итоге логика физического мира успешно реализована в цифровой среде».

Обучаться программированию нужно со страстью. А что разжигает ее лучше, чем работа над собственным проектом? Но что делать, если вам сложно найти стоящую идею для реализации? CEO приложения iConn Дмитрий Щукин рассказал о своем опыте изобретения идеи и поделился полезными ресурсами, с помощью которых каждый сможет придумать проект для мировой экспансии. Далее с его слов.

Как родилась идея iConn

Мы на рынке с сентября 2015. У нас 280 тысяч пользователей. Мы занимаемся привлечением новых клиентов в бизнес и раздаем пользователям скидки и подарки.

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

Человек приходит в кафе, ресторан дарит ему скидку, а он дарит эту скидку своим друзьям в фейсбуке или ВКонтакте. Друзья приходят в это кафе, и уже дарят скидку своим друзьям. Таким образом мы создаем вирусный SMM для бизнеса, лояльных клиентов, широкий охват аудитории в соц. сетях, а клиенты получают скидки и подарки. Все от такой схемы выигрывают и остаются довольны. А мы только претендуем на небольшой кусочек этого пирога.

Так же идея получила свое развитие на фоне того, как люди перестали пользоваться купонаторами и FourSquare. Эти сервисы начали терять свою популярность, а ничего нового не появилось. И тогда появились мы. И сейчас хотим захватить мир.

Что поможет сгенерировать идею для приложения

Я советую отталкиваться от value своего приложения. Какую пользу несет ваша идея? Что вы можете изменить и сделать лучше, если вы выкатите вашу App’у? Только так идея может выстрелить. Вдохновение во всем, начиная от историй успехов крупных компаний, до историй неудач. Его можно найти в дизайне других приложений, в идеях, которые уже существуют. В том как можно сделать вещь лучше, сочнее, полезнее.

Есть несколько ресурсов, где каждый сможет найти что-то, что поможет ему пробудиться:

  1. http://www.producthunt.com/ — Тут появляются новые продукты и услуги, каждый день.
  2. http://betalist.com/ — Здесь можно открывать для себя и получать доступ к новым стартапам.
  3. http://www.startups-list.com/ — Коллекция лучших стартапов.
  4. http://erlibird.com/ — Здесь рождаются прекрасные новые товары, которые можно потестировать.
  5. https://spark.ru/ — Наш российский сервис, где представлены сотни стартапов, и каждый день появляются новые.
  6. http://how.co/ — Тут можно учиться у предпринимателей.
  7. http://www.udacity.com/course/how-to-build-a-startup–ep245 — Бесплатный курс о создании стартапа.
  8. http://howmuchtomakeanapp.com/ — А тут можно посчитать, во что встанет создание мобильного приложения.

Мнение со стороны: потребитель прежде всего

Валерий Мифодовский, CEO 3plet согласен, что главное это ценность, получаемая пользователем: «Время, когда можно было просто „накодить“ интересную фишку и выпустить под нее приложение, прошло. Нужно смотреть на реальные потребности в физическом мире, без привязки к приложениям. И если вы ясно увидите такую потребность, понимаете мотивацию потребителя, то уже после стоит думать о приложении, как способе ее удовлетворения. Это главный тренд в текущей ситуации. Важен смысл, а не форма.

Читайте также:  Йогуртница для творога и сыра

В случае с нашим форматом 3plet был реализован именно такой подход. Большой опыт работы в музыкальной индустрии и цифрового контента привел к пониманию происходящих изменений в отрасли. Вся цифровая революция свелась к созданию инструментов по доставке звука пользователям. Превратила музыкальный альбом в безликую папку с файлами. Сделала из артиста производителя звука. Но такой подход не решает задач артиста по формированию собственного образа и донесению творческих идей. Эти задачи раньше достигались через выпуск альбома на CD, виниле и т.д. На них размещали обложку, иллюстрации, тексты песен, информацию о всех участниках, студии звукозаписи. Все это позволяло задать важный артисту контекст, сильно влияющий на восприятие слушателем музыки.

В цифровой реальности стримминга это теряется. Но музыканты по-прежнему хотят выпускать яркие и содержательные альбомы. Эту задачу и решает платформа 3plet, позволяя артисту самостоятельно выпустить полноценный альбом содержащий музыку, иллюстрации, тексты в виде отдельного приложения. Это цифровая замена CD, только без проблем с тиражами и доставкой по всему миру. В итоге логика физического мира успешно реализована в цифровой среде».

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

Список приложений разбит на группы:

Инструменты командной строки

  • where-is – команда, помогающая находить путь к файлам. Вывод – список возможных локаций. Пример ввода: where-is grub config . Пример вывода: /boot/default/grub.d или /etc/grub.d .
  • Улучшенная cd с поиском. При вводе cd Directory программа ищет каталог и переходит в него, если каталог с таким именем один. Если результатов несколько, предоставляет на выбор список.
  • Утилита командной строки, которая выводит расширение файла. Пример команды: ext hello.jpg . Пример вывода: jpg .
  • Утилита, которая генерирует случайную строку длины N. Пример команды: chars 10 . Пример вывода: gwrtp+5gl

.

  • Хешировщик. Пользователь вводит строку и хеш-алгоритм (SHA-1, MD5, Bcrypt и так далее), а приложение возвращает хешированную строку.
  • Инструмент командной строки для команды grep в SQL: grepsql "sarah" -db="people" .
  • Локальные, неинтерактивные инструменты

    • Программа на USB-накопитель для автоматического перемещения файлов с флешки на ПК без предупреждений о «потенциальной угрозе».
    • Обучение конфигурированию Apache из командной строки. По принципу работы должно быть похоже на githug.
    • OCR (Optical Character Recognition) – инструмент для распознавания текста на изображении.
    • Генератор глифов. Создает глиф для каждой буквы алфавита и сохраняет его в файле шрифта.
    • Программа или скрипт на Bash, который ведет лог всех действий с отслеживаемыми файлами. Пример лога:
      [23-02-2015] my/php/file.php [opened]
    • Программа для поиска в исходнике неиспользуемых функций. Примитивная попытка реализации.
    • Программа, которая ищет захардкоженые элементы и предлагает им замену. К примеру, на использование строки «You can register by 30th of June» в HTML-шаблоне она должна давать предупреждение «You can register by REGISTRATION_DATE».
    • Программа, которая конвертирует изображение в текстовый эквивалент. Пример: конвертация Image to ASCII.
    • Программа, которая восстанавливает номер телефона по аудиофайлу его тонального набора. Подробности.

    Настольные приложения

    • Просмотр логов Apache — вывод в колонках, с поддержкой регулярных выражений. Утилиты вроде Graylog слишком перегружены для таких простых целей.
    • Базовый редактор видео, который поддерживает полезный минимум функций, включая слияние двух видео.
    • Кроссплатформенный менеджер подкастов (пример — gpodder). Функциональность:
    • Добавлять / удалять подписки на подкасты.
    • Теги для подписок (программирование, музыка, креатив и тому подобное).
    • Поиск по тегу.
    • Просмотр по тегу.
  • Настольное приложение, отражающее системную информацию. Разметка на HTML и поддержка CSS-стилей. Вывод — панель, показывающая нагрузку на ЦП в процентах. Пример реализации.
  • Приложение-метроном, поддерживающее сложные размеры и такты, к примеру, один такт 7/8, а следующий — 5/4. Плюс поддержка нескольких темпов в пределах нескольких тактов.
  • Настольное приложение для профилирования кода. Обеспечивает выполнение анализируемого приложения/функции заданное количество раз и на выходе выдает файл с результатами в формате csv/txt.
  • Графический интерфейс для удаления/добавления записей контекстного меню.
    • Тамагочи.
    • Что-то вроде игры в алхимию. Задача — выращивать в саду разные растения, нуждающиеся в определенных условиях. Когда растения вырастут, из них можно готовить разные зелья.
    • Игра «Защити свой замок».
    • «Ракетный ранец»: человечек должен добраться от одного края карты до другого на ракетном ранце, минуя препятствия.

    Веб-сайты

    • Онлайн-приложение для структурирования мыслей. Навигация по записям может быть в боковом меню:
    • Todo: организованная структура списка дел.
    • Notes: бессистемные идеи.
  • Онлайн-календарь, не требующий авторизации. При создании календаря пользователь получает постоянную ссылку на него. Все, у кого есть ссылка, могут добавлять в календарь события.
  • Веб-утилита, которая генерирует изображение как определенного разрешения, так и определенного размера файла.
  • Веб-сайт, который показывает список IT-работ от благотворительных организаций или других людей. Разработчики выбирают проект и выполняют работу бесплатно. Что-то похожее есть, однако сервис не ориентирован на IT.
  • OpenGameMusic —веб-сайт, где музыканты будут публиковать свою музыку и предоставлять разработчикам игр возможность использовать ее.
  • Онлайн-версия «Змейки» с дополнениями.
  • Веб-сайт с базой данных птичьих голосов. Представлен в формате: Фото птицы | Имя птицы | Кнопка для прослушивания голоса | Кнопка «Узнать больше».
  • Веб-сайт, содержащий базу данных инструментов, которые есть в песне. К примеру, можно искать песни, в которых две скрипки и фортепиано.
  • Сервисы

    • Онлайн-бот, который следит за ценой товара на eBay/Amazon, и как только она достигает порогового значения, покупает его.
    • Программа, которая мониторила бы на eBay/Amazon указанные продукты и уведомляла бы о падении цены или о том, что новый продавец добавил этот товар на витрину по меньшей цене. Альтернативный вариант — уведомление на почту, если цена товара достигла установленного значения.
    • Генератор сайта по разметке Markdown, не требующий установки. Нужно просто отправить файл на сервер, и тот его отображает.
    • Программа с открытым кодом для поиска и бронирования хостелов, похожая на на DormBooker, но бесплатная и более функциональная.
    • Программное обеспечение с распознаванием голоса, контролируемое RaspberryPi, которое отслеживает количество произнесенных WTF (или других более родных слов) в минуту и выводит график продуктивности.


    Только начали изучать программирование? Рекомендуем ознакомиться с нашим планом обучения Computer Science.

    Перевод статьи Тэш Постоловски «40 Side Project Ideas for Software Engineers».

    Один из главных способов развития навыков и повышения своих шансов устроиться на работу программным инженером это работа над сторонними проектами. Проекты могут быть самыми разными: от проектов с открытым исходным кодом, вспомогательных инструментов и сценариев до интересных игрушек.

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

    По моему опыту, это случается когда мы подсознательно искусственным образом себя ограничиваем. Например, мы можем намеренно ограничивать виды проектов, которые воспринимаем как “стоящие”.

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

    Читайте также:  Беспроводные наушники для телевизора отзывы

    В этой статье я хочу помочь вам в борьбе со «ступором», предложив 40 идей сторонних проектов, которые каждый программный инженер может начать в выходной. Здесь нет ударения на проектах, которые изменят мир. Вместо этого здесь есть интересные проекты, которые позволят вам добавить что-то к своему портфолио и сделают вас лучшим разработчиком.

    Сторонние проекты, связанные с информатикой

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

    1. FTP клиент (предлагаемая реализация: web, CLI или десктопное приложение). Постройте простой FTP-клиент. В качестве дополнительной задачи сделайте поддержку безопасной передачи файлов (secure file transfer).
    2. HTTP-сервер (предлагаемая реализация: любой язык программирования, над которым вы хотите поработать). Для глубокого понимания HTTP постройте HTTP-сервер. Есть много доступных руководств, которые могут помочь вам в этом процессе.
    3. Постройте простую операционную систему (предлагаемая реализация: любой язык программирования, над которым вы хотите поработать). Это технически сложный проект, который поможет углубить ваше понимание работы компьютера и операционных систем. Возможно, вы захотите начать с бесплатной книги с интересным названием: «Operating Systems: From 0 to 1».
    4. Постройте веб-скрапер (предлагаемая реализация: любой язык программирования, над которым вы хотите поработать). Создайте инструмент, принимающий URL в качестве input и возвращающий контент в виде HTML или XML.
    5. Bandwidth monitor (предлагаемая реализация: инструмент обновления CLI в реальном времени). Создайте инструмент для отслеживания количества скачиваемых и загружаемых в интернет данных. Пускай ежемесячно присылает вам отчет на email. Для дополнительной нагрузки – прогноз пикового времени использования.
    6. Осуществление шифрования (предлагаемая реализация: любой язык программирования, над которым вы хотите поработать). Создайте инструмент, принимающий текстовую строку в качестве input и зашифровывающий ее, например, с помощью шифра Цезаря.
    7. Создайте downtime-сигнализатор (предлагаемая реализация: приложение, подключенное к Twilio API для отправки текстовых сообщений). Создайте приложение, принимающее URL как input и отсылающее вам текстовое сообщение, когда запрос к URL возвращает другой код ответа, чем 200 (OK).

    Сторонние проекты, связанные с личными финансами

    Эти проекты помогут вам решить практические задачи (лучше управлять своими финансами), а также улучшат ваши навыки в программной инженерии.

    1. Калькулятор прибыли и трекер ( предлагаемая реализация: CLI, веб или мобильное приложение). Создайте калькулятор, который сможете использовать для отслеживания ежемесячного роста и снижения своих доходов. Вы можете руководствоваться чем-то вроде net worth worksheet от Чральза Шваба. Возможное расширение: пусть он отсылает вам отчет за предыдущие 12 месяцев 01 января каждого года.
    2. П рогноз налогов ( предлагаемая реализация: веб-приложение). Это будет особенно полезно, если вы занимаетесь программной инженерией на фрилансе. Создайте инструмент, принимающий в качестве входных данных ваши заработки и выдающий ожидаемую сумму налогов, которую нужно будет уплатить в конце финансового года. Сделайте его достаточно умным, чтобы он мог учитывать периоды большего или меньшего спроса на ваши услуги.
    3. Поиск сделок ( предлагаемая реализация: веб-приложение с мобильными уведомлениями). Создайте простое веб-приложение, уведомляющее, когда желанный для вас товар будет выставлен на продажу по хорошей цене. Вы можете использовать веб-скрапер для извлечения страницы продукта и уведомления вас об изменении цены.
    4. Отслеживание расходов ( предлагаемая реализация: веб- или мобильное приложение). Создайте простой интерфейс, который вы сможете использовать для добавления и разбивки своих расходов по категориям. Генерируйте ежемесячный отчет, основанный на входящих данных, и напишите пользовательские уведомления вроде «тратишь слишком много на кофе… как всегда».
    5. Калькулятор финансовой независимости ( предлагаемая реализация: веб-приложение). По существу, финансовая независимость это как можно большее сохранение и вкладывание доходов (инвестиции), что позволяет не нуждаться в работе для получения денег. Хотя многие финансово независимые люди продолжают работать, они могут позволить себе работать над тем, чем им нравится заниматься, а не тем, за что больше платят. Постройте инструмент для подсчета того, насколько вы далеки от финансовой независимости, основанного на ваших текущих сбережениях, инвестициях, доходах, пенсионных счетах и расходах. Примеры: FIREcalc, cFIREsim.
    6. «Разбиватель» счетов ( предлагаемая реализация: мобильное приложение). Постройте простой инструмент, который поможет вам и вашим друзьям делить счет, когда вы вместе обедаете.

    Игры и симуляторы

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

    1. Генератор случайных имен ( предлагаемая реализация: CLI, веб- или мобильное приложение). Постройте генератор случайных имен (пример), создающий уникальные названия на лету, основываясь на алгоритме. Используйте приемы машинного обучения чтобы помочь натренировать программу с примерным набором данных из имен, похожих на те, что вы хотите генерировать. Или создайте собственные лексические правила генерации имен. Например, алгоритм генерации имен, вдохновением для которого послужил «Рассказ служанки», может иметь условие, что имена Служанок должны начинаться с «Оф», а оканчиваться на случайное мужское имя, например, Офпитер.
    2. И гра «Жизнь» (Conway’s Game of Life) ( предлагаемая реализация: любая платформа, способная на графический рендеринг в реальном времени). Игра «Жизнь» симулирует жизнь простых клеток, которые подчиняются алгоритмическим законам. Это видео поясняет, как работает игра, и включает пример возможного результата:
  • Процедурно генерируемый создатель карт ( предлагаемая реализация: приложение на основе браузера). Создайте браузерное приложение, позволяющее процедурную генерацию карты местности на основе случайного начального числа. Карта может быть такой простой или сложной, как вы хотите. Этот проект – хорошая возможность изучить процедурную генерацию.
  • Генератор персонажей ( предлагаемая реализация: браузерное, мобильное приложение, CLI). Создайте инструмент, позволяющий случайно генерировать подходящие персонажи для вашей любимой ролевой игры, как настольной (вроде Pathfinder), так и видео-игры (вроде «Divinity: Original Sin»).
  • Interactive fiction (предлагаемая реализация: CLI). Интересный способ войти в разработку игр без необходимости волноваться о графических ресурсах. Interactive fiction создает мир для игрока с помощью текстовых описаний. Dreamhold – хороший пример Interactive fiction с полезной командой «help».
  • Сторонние проекты, связанные с искусственным интеллектом

    Применение ИИ в ежедневной программной инженерии растет не по дням, а по часам. Вторгнуться в мир искусственного интеллекта сейчас легче чем когда-либо.

    1. Идеальный движок для игры в крестики-нолики (предлагаемая реализация: программа CLI). В качестве прекрасного первого ИИ-проекта попробуйте написать движок, который нельзя победить в игре в крестики-нолики. Вы можете достичь такого результата, реализовав эту стратегию, которая делает ничью худшим исходом игры.
    2. Шахматный движок (предлагаемая реализация: любой язык программирования, над которым вы хотите поработать ). Попробуйте написать движок, способный играть в шахматы с человеком, используя GUI, совместимый с Universal Chess Interface, например, Xboard. В качестве примера посмотрите Stockfish. Чтобы упростить задачу вы можете сфокусироваться на поведении только какой-то части, например, коней.
    3. Чат-бот (предлагаемая реализация: веб-приложение). Часть лучших умов человечества сейчас заняты реалистично отвечающими чат-ботами. Это ужасно сложная задача, но если сузить рамки для вашего чат-бота, у вас будет сторонний проект на вечера и выходные. Создайте чат-бот, выдающий реалистично звучащие ответы по теме, которой вы увлекаетесь: ваша любимая музыкальная группа, видеоигра, спортивная команда, ТВ-шоу. Используйте уже существующую библиотеку, такую как ChatterBot.
    4. Определитель спама (предлагаемая реализация: любой язык программирования, над которым вы хотите поработать ). Постройте инструмент для определения, является ли письмо спамом, основываясь только на содержимом. Вы можете воспользоваться этим публичным набором данных из исследования Enron для тестирования вашего определителя спама.

    Сторонние проекты, связанные с развлечениями

    Это проекты для программных инженеров, которые хотят работать над чем-то интересным и беззаботным.

    1. Поиск времени показа фильмов ( предлагаемая реализация: веб- или мобильное приложение с смс-уведомлениями или отправкой е-мэйлов). Постройте программу, которая будет уведомлять вас с помощью смс или email о времени показа потенциально интересных для вас фильмов в вашем любимом кинотеатре. Представление об «интересном фильме» может быть получено с помощью машинного обучения (если вы смотрите достаточно фильмов для получения хороших тренировочных данных) или написанного вручную алгоритма. Например, для построения программы, которая будет уведомлять вас о фильмах в жанре научной фантастики с рейтингом IMDB 7.0 и выше, или фильмах с Эми Адамс, фильмах со средним рейтингом 8.0 или выше, можно использовать Open Movie Database API вместе с HTML-парсером вроде BeautifulSoup.
    2. Б локировщик спойлеров ( предлагаемая реализация: расширение браузера). В современном мире спойлеры ваших любимых фильмов, особенно таких популярных, как «Игра престолов», могут настигнуть вас повсюду (в социальных сетях/интернете/бачках с питьевой водой). Создайте расширение браузера, удаляющее все упоминания о вашем любимом шоу с загружаемых страниц или заменяющее их картинками с котятами.
    Читайте также:  Зачем выдают военный билет

    З абавные сторонние проекты

    Все эти проекты разные, от логов сенсорных данных до поиска новых фонов рабочего стола для вашего компьютера. Их роднит только то, что они занимательны, а некоторые из них заставят вас познакомиться с интересными API.

    1. Pixel art генератор ( предлагаемая реализация: любой язык программирования, над которым вы хотите поработать ). Постройте инструмент, принимающий изображение в качестве входящих данных и преобразует его в pixel art на выходе. Если хотите улучшить свои навыки, касающиеся фронтенда, генерируйте конечный pixel art используя CSS.
    2. Инструмент, предлагающий музыку ( предлагаемая реализация: постройте враппер для Spotify API). Создайте инструмент, отслеживающий музыку, которую вы слушаете, и генерирующий плейлист сходного качества, но из песен, которые вы прежде не слышали. Spotify API предоставляет все инструменты, необходимые для извлечения данных о прослушанных композициях и для создания плейлиста, а движок рекомендаций – за вами!
    3. Регистратор температуры ( предлагаемая реализация: Raspberry Pi, датчик температуры, веб-приложение). Подключите ваш Raspberry Pi к датчику температуры и отсылайте температурные данные из вашего дома на веб-приложение, которое сохранит их в базе данных или обновит CSV-файл. Для получения бонусных очков сделайте еженедельный отчет по температуре, присылаемый вам на email. Другие проекты Raspberry Pi: домашняя автоматизация, домашняя безопасность.
    4. Приложение для «микрообучения» ( предлагаемая реализация: мобильное или веб-приложение). Постройте приложение, высылающее вам ежедневно одну страницу по теме, которую вы хотите изучить. Это может быть случайная страница из Википедии, из документации по React, о букве кандзи или страница из CIA World Factbook.
    5. Slack-бот ( предлагаемая реализация: Slack API). Если вы или ваша команда используете популярное чат-приложение Slack, постройте бот, облегчающий какие-то аспекты вашей жизни. Идеи: бот заказа кофе, бот, ежедневно докладывающий о числе коммитов, сделанных в репозиториях вашей команды, или напоминалка по какой-то теме.
    6. Обои рабочего стола ( предлагаемая реализация: Unsplash API, язык сценариев для вашей ОС). Постройте приложение, которое будет ежедневно обновлять обои вашего рабстола.

    З адачи на написание кода

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

    1. Advent of Code ( предлагаемая реализация: любой язык программирования, над которым вы хотите поработать ). Задания в Advent of Code появляются ежегодно в преддверии Рождества. Они включают множество занимательных задач, которые могут помочь вам подтянуть язык программирования, который вы изучаете или с которым хотите поработать. Задачи за 2015, 2016 и 2017 год все еще доступны.
    2. Kaggle’s Titanic Challenge ( предлагаемая реализация: Python или R). Kaggle предлагает захватывающее задание, знакомящее вас с основами машинного обучения с помощью Python или R: использовать настоящий набор данных о регистрации пассажиров «Титаника» для предположений, кто из пассажиров скорее всего пережил катастрофу.
    3. Project Euler ( предлагаемая реализация: любой язык программирования, в котором вы хотите попрактиковаться ). Задания в Project Euler посвящены изучению союза математики и программирования. Используйте инструменты программирования для решения разнообразных математических задач.

    Сторонние проекты, связанные с обыденностью

    Эти сторонние проекты имеют практическое назначение: они помогают справляться с некоторыми аспектами вашей ежедневной жизни. Поскольку они решают простые проблемы реального мира (вроде выбора обеда), эти решения по вашему желанию могут быть как простыми, так и сложными.

    1. Выбор обеда ( предлагаемая реализация: CLI, мобильное или веб-приложение). Если вы работающий программный инженер, вы, должно быть, сталкивались с самым сложным вопросом в разработке программ… «куда пойти поесть?». Ваш инструмент для выбора обеда призван дать ответ на этот вопрос. Он может быть супер-простым и делать случайный выбор из известного вам списка опций или более сложным – извлекать данные из Google Reviews и учитывать расположение, цены и тип кухни.
    2. Планировщи к свиданий ( предлагаемая реализация: мобильное приложение). Самое сложное в том, что касается свиданий и длительных отношений, это решение, куда пойти на свидание. Постройте инструмент, просматривающий обзоры ресторанов, календари событий и собирающий другие данные для выдвижения идей.
    3. Инструмент для упрощения вашей электронной переписки ( предлагаемая реализация: скрипты, подключенные к почтовому серверу). Если мы с вами похожи, вы еженедельно получаете слишком много писем и они накапливаются в вашем почтовом ящике. Вместо того чтобы отписываться от них от всех в припадке гнева, постройте инструмент, который будет компилировать их в одно письмо и отправлять вам его раз в неделю.
    4. Напоминалка «Возьми зонтик» ( предлагаемая реализация: мобильное приложение). Постройте простое мобильное приложение, которое по утрам будет присылать вам на телефон уведомление о том, что нужно взять с собой на работу зонтик (например, если в вашей местности ожидается дождь).
    5. Отслеживатель коллекций ( предлагаемая реализация: мобильное или веб-приложение). Постройте инструмент для отслеживания чего-то, что вы собираете. Вы можете следить за ценой предмета, годом изготовления, состоянием, местоположением.

    Сторонние проекты, связанные с данными

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

    1. Создайте и автоматически обновляйте набор данных ( предлагаемая реализация: веб-скраппер на входе и CSV на выходе). Постройте инструмент, автоматически создающий и обновляющий набор данных, касающихся чего-то, что вас интересует. Рекомендуемые наборы данных: статистика по вашей любимой спортивной команде, полеты в направлении, куда и вам бы хотелось отправиться, метеорологические данные региона, где вы живете. Самое главное, что этот набор данных должен нуждаться в регулярном обновлении по мере генерации новых данных, и это должно осуществляться автоматически. Например, когда результаты вашей спортивной команды публикуются на сайте, данные должны автоматически скрапиться и добавляться к вашему набору данных.
    2. Вступите в соревнование по науке о данных ( предлагаемая реализация: R или Python). На Kaggle есть много соревнований по науке о данных, оперирующих наборами данных из реального мира и имеющих огромные денежные призы. Перед вами будут стоять реальные проблемы вроде того, как определить отравляющие онлайн-комментарии, предсказать посетителей в ресторане или распознавать объекты из космоса.

    Поделитесь своим сторонним проектом

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

    • Что было сложнее всего в работе над этим проектом?
    • Что вы узнали, занимаясь этим проектом, чему научились?
    • Что бы вы посоветовали тем, кто хотел бы начать похожий проект?

    admin

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *