Проект 1: автоматический генератор ASCII-графики
ASCII-графика — это вид изобразительного искусства, где при создании картинок используются составленные вместе символы ASCII. Вот пример трубы, созданной с помощью ASCII-графики:
Для этого проекта нужно написать программу, которая генерирует ASCII-изображение на основе загруженной в нее картинки. Данная программа — отличный способ изучить циклы for , да и результат часто выходит очень интересным.
Проект 2: программа для решения судоку
Создание программы для решения судоку — отличный способ попрактиковать использование циклов while . Ее можно написать как на Python, так и на JavaScript, и в обоих случаях вы научитесь массе полезных приемов. Самый простой способ создания такого приложения — это использование алгоритма поиска с возвратом. В качестве бонуса вы также можете добавить функцию “сгенерировать судоку”.
Проект 3: браузерная игра
Разработка игр часто может быть очень теоретической и довольно сложной для начинающих программистов. Поэтому для этого проекта мы начнем с азов, а именно создания браузерной игры. Ее цель — напечатать слова, появляющиеся на экране до того, как они дойдут до правой части монитора.
Такую игру можно создать и без использования каких-либо игровых движков, только на основе HTML Canvas.
Проект 4: органайзер для тетрадей
Целью этого проекта является создание приложения, которое автоматически сортирует фотографии тетради по соответствующим папкам на Google Диске. Эта идея хороша для тех, кто делает множество записей, например для студентов.
Для того, чтобы приложение работало, можно приклеивать на тетради по различным предметам стикеры определенного цвета. Красные — на математику, синие — на английский и т.д. Программа будет сканировать фотографию на предмет наличия этих цветов и на этой основе распределять их по соответствующим папкам на Google Диске.
Это отличный проект для изучения обработки изображений и использования API.
Проект 5: DVWA
Информация со страницы с проектами на Github гласит следующее.
Damn Vulnerable Web App (DVWA) — это веб-приложение PHP / MySQL, которое крайне уязвимо. Его главные цели:
— помочь специалистам по безопасности проверить свои навыки и инструменты в правовой среде;
— дать возможность веб-разработчикам лучше понять процессы обеспечения безопасности веб-приложений;
— обучать учителей и студентов тонкостям безопасности приложений в контролируемой среде.
DVWA помогает отработать некоторые наиболее распространенные уязвимости в сети на различных уровнях сложности с простым интерфейсом. Обратите внимание: в этом программном обеспечении есть как задокументированные, так и незадокументированные уязвимости. Это сделано специально. Рекомендуется попробовать найти как можно больше проблем.
Целью этого проекта является не столько создание ПО, сколько его уничтожение. Если вы до этого не пробовали проводить испытание на проникновение, значит, вам стоит начать именно с этого. Если вы планируете стать веб-разработчиком, то обучение основам безопасности — необходимая часть процесса становления как профессионала, а лучший способ попрактиковаться в этом — искать уязвимости в приложениях.
Надеемся, что эта статья вам понравилась и вдохновила на создание какой-либо программы!
Какую программу написать начинающему программисту
Image by Sergei Tokmakov from Pixabay
- работу с текстом и кодами символов;
- пользовательский input;
- текстовый output.
- Генерируйте рандомный список эмодзи.
- Реализуйте шифратор и конвертируйте с его помощью текст в эмодзи.
- Реализуйте эту идею в виде десктопного или веб-приложения.
-
— приложение-справочник по эмодзи.
- Text to ASCII — конвертирует текст в код ASCII.
Image by 272447 from Pixabay
- input, output;
- работу с текстом и числами.
- Разрешите пользователю загружать или выбирать текстовый файл, который затем будет конвертироваться и выводиться в виде нового файла.
- Реализуйте собственный шифратор (не забудьте добавить методы для дешифровки!).
- Используйте GUI или веб-интерфейс с полем для ввода текста и полем, где будет показываться видоизмененный текст. Конвертируйте input по мере ввода.
- Шифр Цезаря — простая техника шифрования со сдвигом букв алфавита.
- Текст в двоичный код.
- Перевод десятичных чисел в шестнадцатеричные.
- Переворачивание текста
Image by Greg Montani from Pixabay
- изучите создание, чтение, модификацию и удаление данных (а это основа любого приложения);
- получите хорошее представление о языке или каком-то инструменте.
- Геймифицировать.
- Интегрировать с другими приложениями.
- Построить приложение на разных платформах (мобильное, десктопное, веб-приложение).
- Добавить напоминания в виде электронных писем или SMS.
- трекер упражнений;
- журнал;
- блог, форум (вроде Reddit);
- приложение для онлайн-банкинга (создание аккаунта, обновление счета и т. п.);
- текстовый редактор;
- приложение для планирования (календарь, kanban-доска);
- трекер привычек.
Image by Free-Photos from Pixabay
Подборка идей для программирования
Не секрет, что для хорошего программиста постоянно нужна практика. И лучше, если это будет разработка целостного проекта, а не простая бесполезная поделка. Но зачастую разработчикам сложно придумать, что бы такого реализовать, да ещё и с пользой для себя и для общества. В статье приведены идеи приложений, которые, конечно, не претендуют на уникальность, но помогут вам быстрее определиться с выбором софта, на котором можно потренироваться кодингу и поддержать себя в форме.
Список приложений разбит на группы:
Инструменты командной строки
- 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
Локальные, неинтерактивные инструменты
- Программа на 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). Функциональность:
- Добавлять / удалять подписки на подкасты.
- Теги для подписок (программирование, музыка, креатив и тому подобное).
- Поиск по тегу.
- Просмотр по тегу.
- Тамагочи.
- Что-то вроде игры в алхимию. Задача — выращивать в саду разные растения, нуждающиеся в определенных условиях. Когда растения вырастут, из них можно готовить разные зелья.
- Игра «Защити свой замок».
- «Ракетный ранец»: человечек должен добраться от одного края карты до другого на ракетном ранце, минуя препятствия.
Веб-сайты
- Онлайн-приложение для структурирования мыслей. Навигация по записям может быть в боковом меню:
- Todo: организованная структура списка дел.
- Notes: бессистемные идеи.
Сервисы
- Онлайн-бот, который следит за ценой товара на eBay/Amazon, и как только она достигает порогового значения, покупает его.
- Программа, которая мониторила бы на eBay/Amazon указанные продукты и уведомляла бы о падении цены или о том, что новый продавец добавил этот товар на витрину по меньшей цене. Альтернативный вариант — уведомление на почту, если цена товара достигла установленного значения.
- Генератор сайта по разметке Markdown, не требующий установки. Нужно просто отправить файл на сервер, и тот его отображает.
- Программа с открытым кодом для поиска и бронирования хостелов, похожая на на DormBooker, но бесплатная и более функциональная.
- Программное обеспечение с распознаванием голоса, контролируемое RaspberryPi, которое отслеживает количество произнесенных WTF (или других более родных слов) в минуту и выводит график продуктивности.

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