Идеи проектов для начинающих программистов. Часть 1

Перевод первой части статьи «Starter Project Ideas for Developers».

Image by mohamed Hassan from Pixabay

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

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

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

Засучиваем рукава

Изучаем основы программирования с фокусом на создание, чтение, модификацию и удаление данных (CRUD).

Генератор имен

Image by Gerd Altmann from Pixabay

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

Для начала, следует определиться с тем, какого рода имена вы хотите генерировать (username, имена фантастических героев, персонажей книг или обычные имена). Также нужно придумать, из каких частей будут составляться эти имена.

// Types of names examples:
 [honorific/title] [name] of [location]
 Duke William of Cornwall
 President Wilson of Canada
 [name] of [location]
 Solaire of Astora
 [name] the [object noun] [title noun]
 Kyle the Chicken Slayer
 [name] the [adjective]
 [username or some combination of words][1-4 numbers]
 SomeName1234
 ChickenBob28
 // etc, you get the idea 

После того как придумаете, что за имена будет генерировать ваша программа, нужно обдумать, как вы будете хранить данные (имена собственные, имена существительные и прилагательные, титулы и т. п.). Все это можно прописать жестко и хранить в файловой системе, используя CSV или текстовый файл. Можно извлекать из API. Можно хранить в базе данных. Если вы начинающий программист, изучите, какие структуры данных поддерживает ваш язык (объекты, списки, массивы, hashmap) и поэкспериментируйте с ними.

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

В чем смысл такого проекта

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

Занимаясь этим проектом, вы будете осваивать:

  • основы языка программирования;
  • простые структуры данных;
  • чтение данных и рандомный выбор их частей;
  • вывод данных.

Как можно усложнить проект

  • Генерируйте выбранные случайным образом названия объектов и выводите на экран изображения этих объектов. Это может быть полезным инструментом для людей, связанных с искусством.
  • Генерируйте имена персонажей игр или названия объектов с приложением их мини-историй.
  • Генерируйте темы для писателей.
  • Добавьте возможность ввода данных пользователем. Это может быть список слов, из которых будет делаться выборка, или имя пользователя, которое будет использоваться в качестве основы для производных имен.

Примеры:

  • Name Generator — генерирует названия блюд, блогов, имена пользователей, просто имена людей и т. д.
  • Fantasy Name Generator — фэнтезийные имена для игр и пр.
  • Random Things — выводит изображения случайных объектов.

(От редакции. Как часто вам случалось в соцсетях читать комментарии типа «лучше бы ямы залатали», «лучше бы дороги отремонтировали», «лучше бы на детей внимание обратили»? Можно создать специальный «лучшебыгенератор», случайным образом выдающий «лучше бы» предложение. Реализация — веб-страница. Применение — отвечать советчикам в комментариях, давая ссылку на страницу. Пример можно посмотреть здесь).

Список кодов символов

Image by Sergei Tokmakov from Pixabay

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

В чем смысл такого проекта

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

Занимаясь этим проектом, вы будете осваивать:

  • работу с текстом и кодами символов;
  • пользовательский input;
  • текстовый output.

Как можно усложнить проект

  • Генерируйте рандомный список эмодзи.
  • Реализуйте шифратор и конвертируйте с его помощью текст в эмодзи.
  • Реализуйте эту идею в виде десктопного или веб-приложения.

Примеры:

  • Mojibar — приложение-справочник по эмодзи.
  • Text to ASCII — конвертирует текст в код ASCII.

Конвертер текста и чисел

Image by 272447 from Pixabay

Конвертирует числа в двоичную или любую другую систему счисления, а текст видоизменяет (шифрует, переворачивает и т. п.).

В чем смысл такого проекта

Вы не только создадите полезный инструмент, но и научитесь работать с числами и текстом.

Занимаясь этим проектом, вы будете осваивать:

  • input, output;
  • работу с текстом и числами.

Как можно усложнить проект

  • Разрешите пользователю загружать или выбирать текстовый файл, который затем будет конвертироваться и выводиться в виде нового файла.
  • Реализуйте собственный шифратор (не забудьте добавить методы для дешифровки!).
  • Используйте GUI или веб-интерфейс с полем для ввода текста и полем, где будет показываться видоизмененный текст. Конвертируйте input по мере ввода.

Примеры:

Список задач и альтернативные полнофункциональные приложения

Image by Greg Montani from Pixabay

Наконец, список задач — идея, за которой вы все сюда и пришли. Шутка:) Но список задач, пожалуй, действительно один из самых распространенных видов проектов, так что без него наша статья была бы неполной. Впрочем, мы все же постараемся добавить несколько интересных альтернатив.

В чем смысл такого проекта

Создание списка задач — отличный способ изучить работу с данными (CRUD), какой-то язык или фреймворк.

Например, вы изучаете JavaScript. Вы можете построить список задач для применения в браузере, используя DOM браузера и LocalStorage APIs. Затем вы создаете API списка задач в бэкенде, используя NodeJS, чтобы изучить, как работает REST API. Наконец, вы обращаетесь к десктопу и создаете еще один список задач, используя Electron — чтобы изучить работу десктопных приложений.

Еще один вариант прокачать свои навыки, связанные с CRUD, — использовать разные языки программирования. Вот вы создали все варианты списков задач на JavaScript. А теперь создайте какой-нибудь из них на C#, Java или Haskell и посмотрите, насколько будут отличаться процесс и результаты. Это поможет вам получить хорошее представление о языках.

Занимаясь этим проектом, вы:

  • изучите создание, чтение, модификацию и удаление данных (а это основа любого приложения);
  • получите хорошее представление о языке или каком-то инструменте.

Как можно усложнить проект

  • Геймифицировать.
  • Интегрировать с другими приложениями.
  • Построить приложение на разных платформах (мобильное, десктопное, веб-приложение).
  • Добавить напоминания в виде электронных писем или SMS.

Альтернативные варианты приложений для отработки навыков CRUD

  • трекер упражнений;
  • журнал;
  • блог, форум (вроде Reddit);
  • приложение для онлайн-банкинга (создание аккаунта, обновление счета и т. п.);
  • текстовый редактор;
  • приложение для планирования (календарь, kanban-доска);
  • трекер привычек.

Примеры:

  • Flowdash
  • Todoist
  • Habitica — геймифицированный список задач и трекер привычек.

Секундомер и таймер

Image by Free-Photos from Pixabay

Таймер может быть как простым, так и довольно сложным и интересным.

В чем смысл такого проекта

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

Занимаясь этим проектом, вы будете осваивать:

  • работу с датами и временем;
  • особенности написания кода для постановки приложения на паузу и возобновления его работы;
  • отображение и постоянное обновление значений.

Как можно усложнить проект

  • Создайте какой-то специфический таймер, например, для применения «приема помидора».
  • Проигрывайте музыку или отсылайте уведомление при включении таймера.
  • Сделайте так, чтобы ваш таймер работал на разных платформах (десктопная, мобильная и веб-версии).
  • Интегрируйте таймер в другое приложение.

Примеры:

  • TomatoTimer — Pomodoro-таймер
  • LiveSplit — таймер для скоростного прохождения игры
  • Timecamp — приложение для отслеживания времени

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

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

Оставьте комментарий

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

Прокрутить вверх