Вы хотите начать новый программный проект, но никак не можете найти крутую идею?
В этом посте мы рассмотрим список из более чем 20 идей для начинающих, чтобы вы могли получить вдохновение для своего собственного проекта.
Я отсортировал идеи по трем категориям: Интернет, игры и мобильные устройства. Поэтому, если вы уже знаете, хотите ли вы создать игру, веб-приложение или мобильное приложение, вы можете сразу перейти к конкретному разделу.
Веб-приложения
Начнем с того, что веб-разработка — это отличная область разработки программного обеспечения. Вы научитесь создавать полноценные веб-приложения.
Приложение с полным стеком — это программное приложение, состоящее как минимум из трех уровней.
- Внешний интерфейс — это фактический веб-сайт, который пользователь увидит и с которым будет взаимодействовать.
- Бэкэнд — сервер обрабатывает запросы браузера и отправляет сайт в браузер, который его отображает.
- База данных. База данных содержит все данные вашего приложения. Например, профили пользователей или сообщения такого веб-сайта включаются в базу данных. Они доставляются бэкэндом во фронтенд.
Большинство ролей в разработке программного обеспечения перечислены в веб-разработке. Это делает еще более захватывающим начало создания веб-приложения.
Веб-сайт личного кабинета
Персональный сайт — очень традиционный выбор для первого проекта. Вы можете создать веб-сайт, демонстрирующий информацию о вас, ваших увлечениях и интересах. Нет никаких ограничений в том, что вы можете добавить на свой самый первый веб-сайт. Просто используйте свой творческий потенциал и создайте что-нибудь классное, чтобы показать своим друзьям или семье. Вариантом может быть онлайн-резюме, которым можно легко поделиться при подаче заявления на новую работу.
Требования
- Классные идеи контента
- HTML, CSS, Javascript
- Веб хостинг
Сложность: 2/10
Личный блог
Личный блог аналогичен обычному веб-сайту, указанному выше. Вы можете опубликовать онлайн-дневник, либо общедоступный для всех, либо частный только для вас и приглашенных людей.
Техническая разница заключается в том, что помимо веб-сайта вам также потребуется запрограммировать сервер. Кроме того, вам понадобится база данных для хранения контента.
Вы можете использовать уже существующую платформу для ведения блога, такую как WordPress или Ghost (мой любимый), или создать свою собственную.
Поскольку вы хотите улучшить свои навыки программирования, я бы порекомендовал самостоятельно создать простой движок для ведения блога.
- Фронтенд: HTML, CSS, Javascript
- Серверная часть: Javascript/Node.js или аналогичный
- База данных: MySQL или Postgres
- веб хостинг
Сложность: 6/10
Генератор мемов
Первые две идеи проектов приложений в этом списке были простыми и не очень причудливыми. Если вы хотите создать что-то более необычное, почему бы не создать генератор мемов?
На своем веб-сайте генератора мемов вы можете разрешить пользователям загружать фотографии и добавлять текст для создания мемов. После того, как пользователь создал мем, вы также должны разрешить ему загрузить мем в виде изображения.
- Фронтенд: HTML, CSS, Javascript
- Серверная часть: Javascript/Node.js или аналогичный
- Библиотека обработки изображений, такая как Jimp, или более продвинутое решение, такое как OpenCV.
Сложность: 4/10
Менеджер по расходам
Создайте платформу, позволяющую пользователям управлять своими расходами, загружать квитанции и создавать категории расходов.
Вы также можете добавить такие функции, как ежемесячные отчеты, предупреждения о бюджете и многое другое.
Эта идея программного проекта — хороший выбор, потому что вы можете начать с малого и постепенно увеличивать его сложность.
- Фронтенд: HTML, CSS, Javascript
- Серверная часть: Javascript/Node.js или аналогичный
- База данных, такая как MySql или Postgres
- Библиотека для создания списков и электронных таблиц
- Библиотека для создания экспорта в pdf
Сложность: 8/10
База данных рецептов
Как насчет создания базы данных, содержащей рецепты вкусных блюд. Пользователи могли создавать свои собственные рецепты, добавлять ингредиенты, получать информацию о питании и многое другое.
Возможно, вы могли бы сделать что-то еще лучше:
Разрешите пользователям фотографировать свои холодильники, чтобы приложение предлагало рецепты на основе ингредиентов, которые они уже получили дома.
- Фронтенд: HTML, CSS, Javascript
- Серверная часть: Javascript/Node.js или аналогичный
- База данных, такая как MySql или Postgres
- Вам понадобится сторонний API для получения информации об ингредиентах.
Сложность: 7/10
Совместный текстовый редактор, такой как Google Docs
Идея этого приложения действительно продвинутая. Текстовый редактор для совместной работы, созданный с нуля, означает, что вам придется решать множество сложных проблем.
Например, подумайте об этом:
Два пользователя редактируют одну и ту же строку текста в одном документе. Вашему приложению необходимо найти решение для объединения этих одновременных правок, чтобы оба пользователя не перезаписывали изменения друг друга.
- Фронтенд: HTML, CSS, Javascript
- Серверная часть: Javascript или аналогичный
- База данных, такая как MySql или Postgres
- Интерфейсная библиотека текстового редактора
- Механизм синхронизации для одновременного редактирования
Сложность: 10/10
Игры
Если вы страстный геймер, вы можете рассматривать игру как свой первый программный проект.
Одиночные игры обычно являются клиентскими.
Таким образом, вам не нужно изучать бэкэнд-разработку.
Это может сделать разработку игр более удобной для начала по сравнению с веб-разработкой.
Тест на реакцию
Тест на реакцию — это простая в разработке игра, которая может быть отличной идеей, если вы еще новичок в разработке программного обеспечения.
Это действительно можно было сделать всего за час.
- Вы можете создать тест на реакцию как мобильную игру или в браузере с помощью Javascript.
Сложность: 1/10
Крестики-нолики
Крестики-нолики — это также упрощенная игра, с которой может быть интересно начать. Вы можете легко создать его, используя HTML-таблицы и немного JavaScript.
В первой простой версии вы можете позволить своему компьютерному врагу всегда отмечать случайные ячейки.
Если вы хотите создать более сложную игру в крестики-нолики, вы можете реализовать многопользовательскую функцию. Так что эта игровая идея также идеально подходит для поэтапной разработки. Начните с малого и улучшайте его шаг за шагом.
- Вы можете создать тест на реакцию, мобильную игру или в браузере с помощью Javascript.
- Если вы хотите создать многопользовательскую функцию, вы можете сделать это локально в том же окне браузера, что будет очень просто.
- Другим вариантом будет создание сервера для многопользовательского онлайн-режима.
Сложность: 2/10
Клон летающей птицы
FlappyBird была очень успешной игрой, когда она была выпущена в 2013 году.
Это простая игра, созданная отдельным разработчиком Донг Нгуен.
Игрок должен управлять птицей и избегать труб. Игра спроектирована так, чтобы быть очень сложной, поэтому она заставляет вас всегда хотеть попробовать в другой раз. Тогда это было решающим фактором ее успеха.
Это намного более графическая игра по сравнению с крестиками-ноликами. Так что вам понадобится какой-то графический интерфейс.
Я бы порекомендовал выбрать фреймворк для разработки игр, такой как Libgdx.
Сложность: 6/10
Конфеты раздавить клон
Еще одна чрезвычайно успешная игра — Candycrush от King.
Первоначально Кинг начал эту игру как небольшой побочный проект, который стал огромным успехом, приносящим 1 миллиард долларов дохода каждый год.
По сравнению с Flappy Bird, конфетную игру типа «три в ряд» создать сложнее. Это требует гораздо более сложной игровой логики и великолепного пользовательского интерфейса.
- Версия для браузера с Javascript, HTML, CSS
- Мобильная версия либо нативная, либо кроссплатформенная с Libgdx, unity или чем-то подобным
- Навыки графического дизайна или бесплатные графические ресурсы
Сложность: 8/10
Текстовое приключение
Текстовое приключение может быть вашим выбором, если вам нравятся сюжетные игры.
Ему нужна только базовая графика, поэтому вы можете больше сосредоточиться на фактическом программировании, а не на получении подходящих графических ресурсов.
- Если вы решите создать текстовое приключение в браузере, вам понадобятся HTML, CSS и Javascript.
- Если вы хотите создать многопользовательскую версию или позволить пользователю сохранять свой прогресс, вам нужен сервер и база данных для хранения пользовательских данных.
Сложность: 5/10
Угадай слово
Еще одна фантастическая идея игрового проекта – игра «Угадай слово».
Он отобразит пустое поле ввода и изображения, связанные со словом, которое нужно угадать.
Задача пользователя — угадать слово по картинкам. Чем быстрее он будет, тем больше очков он получит.
- Можно сделать в браузере или как мобильное приложение
- Вам нужно создать базу данных, содержащую изображения и слова для угадывания.
- Вам нужно разработать какой-то бэкенд для извлечения случайного слова и связанных изображений.
Сложность: 5/10
Quizduel
Это самая сложная идея игры, которую я здесь перечислил. Потому что это многопользовательская игра, которая потребует гораздо большей настройки серверной инфраструктуры, чем другие игровые идеи в этом посте.
По сути, эта игра заключается в том, чтобы бросить вызов своим друзьям, чтобы они соревновались с вами в викторинах. Тот, кто даст больше правильных ответов в викторине за более короткий период, выиграет сессию викторины.
- Фронтенд в браузере с HTML, CSS, Javascript
- ИЛИ мобильное приложение
- Серверная часть и база данных с управлением пользователями, профилями, списком друзей, информацией о викторинах, списками лидеров и т. д.
- Возможности сервера в реальном времени для отдельных сеансов викторины. Это можно сделать с помощью веб-сокетов.
Сложность: 9/10
Мобильные приложения
Калькулятор
Очень простая идея для создания мобильного приложения — это простой калькулятор.
Если вы поклонник математики, это может стать вашей любимой идеей для начала.
Вы можете сначала создать базовое приложение-калькулятор, а затем добавлять в него все больше и больше математических функций.
Чтобы создать базовый калькулятор, вам нужно всего лишь написать код:
- Поле ввода текста
- Поле выбора для выбора типа расчета
- Кнопка для запуска расчета, нажав на нее.
Сложность: 1/10
Список дел
Todo-List — это идея проекта для начинающих из-за его простоты и возможности расширять его практически неограниченными способами.
Чтобы создать мобильное приложение со списком задач без каких-либо функций синхронизации, вам потребуется запрограммировать следующие вещи:
- Пользовательские интерфейсы для отображения элементов todo.
- У каждого элемента есть имя и флажок для завершения элемента списка дел.
- Вам также потребуется локальное хранилище для хранения данных списка дел на вашем мобильном устройстве.
Сложность: 3/10
Приложение для заметок
Эта идея приложения имеет много общего с приложением todo. Позвольте пользователям создавать заметки и редактировать их.
Как и в случае с приложением todo, вам также потребуется реализовать решение для хранения данных пользователей на их устройствах.
Позже вы сможете создавать более продвинутые функции, такие как совместное использование заметок, экспорт в формате PDF и встраивание изображений, видео и другого контента.
Вы даже можете объединить приложение для заметок с приложением списка дел.
Сложность: 3/10
Анализатор Wi-Fi / Тест скорости Интернета
Идея этого проекта идеально подходит для изучения сетей и подключения к Интернету в сочетании с разработкой мобильных приложений.
- Вам нужно будет создать мобильное приложение, которое может сканировать доступные соединения Wi-Fi и отображать такую информацию, как мощность сигнала, расстояние, скорость интернета и канал.
- Для простой версии этой идеи приложения серверы не требуются.
- Может быть, вы могли бы создать приложение, которое вычисляет количество радиации, которой подвергается пользователь. Вы можете добиться этого, просканировав все соединения поблизости. Например, вышки сотовой связи, устройства Bluetooth, сигналы Wi-Fi и т. д.
Приложение для чата в WhatsApp
WhatsApp — одно из самых популярных мобильных приложений в мире. До того, как WhatsApp был приобретен Facebook в 2014 году, над проектом работало всего 32 человека.
Создать подобное приложение не очень сложно. Тем не менее, по сравнению с другими в этом списке, разработать идею этого проекта сложнее.
- Вам понадобится мобильное клиентское приложение. Я бы рекомендовал использовать кроссплатформенный фреймворк, такой как React-Native, Nativescript или Flutter, чтобы один раз написать код и получить приложения для Android и iOS.
- Вам нужно серверное приложение. Выберите язык, который вам нравится больше всего. Моим фаворитом был бы Node.js.
- Вам нужна база данных для хранения профилей пользователей и чатов.
Сложность: 7/10
Instagram, как фотодневник
Instagram также является значительным приобретением Facebook. Первоначально купленный всего за 1 миллиард долларов, теперь он оценивается в более чем 100 миллиардов долларов.
Среди молодых пользователей приложения Instagram очень популярен, даже больше, чем само приложение Facebook.
Если вы являетесь поклонником Instagram, это может быть интересной идеей для разработки приложения.
Его создать сложнее, чем приложение для чата, потому что оно имеет больше функций, таких как профили, хэштеги, чаты, сообщения или истории.
- Вам нужно было создать мобильное приложение. Займитесь кроссплатформенной разработкой, создайте версии для Android и iOS.
- Серверная часть с API, позволяющим приложению запрашивать данные.
- База данных, содержащая такие вещи, как пользователи, профили, сообщения и сообщения чата.
Сложность: 10/10
Трекер веса
Это приложение может быть вашим ежедневным спутником, если вы в настоящее время находитесь на строгой диете. Просто шаг за шагом создайте собственную версию Apple Health.
Начните с таких функций, как отслеживание веса, для которых вы должны разрешить пользователям добавлять свой текущий вес тела. Затем приложение подсчитывает прогресс и может визуализировать его в виде красивых графиков.
- Первая простая версия этой идеи мобильного приложения не нуждается в бэкэнде.
- Создайте кроссплатформенное мобильное приложение.
- Позже вы можете добавить более продвинутые функции, такие как подключение к весам с питанием по Bluetooth.
Сложность: 4/10
Приложение-напоминание
Еще одна простая, но интересная идея проекта приложения — приложение-напоминание. Вы можете разрешить пользователям добавлять простые напоминания, устанавливать напоминание, дату и время.
Затем пользователь получит уведомление, если будет достигнуто определенное время.
- Не требуется сервер или база данных.
- Вам понадобится только внешний интерфейс приложения и способ локального сохранения напоминаний на вашем мобильном устройстве.
Сложность: 2/10