Пет-проект - это проект, который вы делаете в свободное время для улучшения своих навыков и пополнения портфолио.
Для джунов это отличная возможность компенсировать отсутствие коммерческого опыта в резюме.
Пет-проект не сильно отличается от коммерческого. На нём встречаются задачи разной сложности. Чем больше и чем сложнее задачи, тем быстрее развиваешься как разработчик.
Пет-проект требует желания, усилий и свободного времени. Но преимущества в виде полученного опыта и знаний компенсируют это.
Все подборки с пет-проектами об одном и том же: telegram-бот для погоды, змейка и прочие бесполезные вещи. Тут я расскажу о реально полезных, применимых в жизни и одновременно очень простых проектах.
1. Генератор паролей
Простая, применимая в жизни программа, которая позволяет быстро сгенерировать безопасный пароль.
Использование:
Программа предлагает выбрать параметры для составления необходимого пароля:
pwd_length = int(input('Enter password length: '))
pwd_digits = input('Include numbers (yes = y, no = n): ')
pwd_uppercase = input('Include uppercase letters (yes = y, no = n): ')
pwd_lowercase = input('Include lowercase letters (yes = y, no = n): ')
pwd_punctuation = input('Include symbols "!#$%&*+-=?@^_"? (yes = y, no = n): ')2. Шифрование файлов
Программа, позволяющая шифровать и расшифровывать файлы.
Установите модуль для шифрования файлов pyAesCrypt:
pip install pyAesCrypt
Использование:
- Укажите в коде путь к файлу. 
- Запустите программу и введите пароль. 
- Файлы зашифрованы. 
Чтобы расшифровать файлы, используйте скрипт decryption.py и введите пароль, который вводили для шифрования.
3. Генератор QR-кодов

(QR-код - ссылка на GitHub репозиторий)
Программа, которая позволяет генерировать QR-код по ссылке.
Установите библиотеки qrcode и image:
pip install qrcode 
pip install image
Использование:
- В файле main.py укажите ссылку, по которой вы хотите сгенерировать QR-код. 
- В папке появится файл .png, это и есть сгенерированный QR-код. 
4. Преобразование видео в GIF
Программа, позволяющая легко преобразовывать video-файлы в GIF-файлы.
Установите библиотеку:
pip install moviepy
Использование:
- 
Укажите путь к видео файлу. clip = VideoFileClip('<your path>')
- 
Укажите путь к файлу GIF. clip.write_gif('<your path>', fps=10)
5. Распознавание текста на изображении
Программа, которая распознаёт текст на изображении и записывает его в .txt файл.
Установите библиотеку:
pip install pytesseract
Использование:
- Добавьте в папку проекта изображение .jpg или .png, из которого вы хотите распознать текст, и файл .txt для записи текста. 
- Текст с изображения будет записан в указанный вами файл .txt. 
Если у вас тоже есть идеи для pet-проектов, на которых вы изучаете новые технологии, поделитесь своим опытом в комментариях.
Комментарии (16)
 - lesskop03.11.2021 22:28+3- Ну что это такое? Вы хотя бы придумали для каждого пет-проекта задания со звёздочками, я не знаю. Практически в каждом проекте суть заключается в импорте библиотеки и использовании одного или нескольких методов из неё.  - nochkin04.11.2021 04:15+1- Да, уж. Так дойдём до того, что на Хабре статья будет состоять просто из небольшого куска официальной документации. 
 
 - SergeiMinaev04.11.2021 00:16+1- Генератор паролей - 30 строк, большая часть которых отвечает за ввод. Имхо, если пароль по определению должен быть безопасным, о чём можно судить по названию библиотеки, то не нужно спрашивать у пользователя о длине пароля и о том, включать или не включать буквы/цифры. Я бы сделал так: - import string, random ''.join(random.choices(string.ascii_letters + string.digits + string.punctuation, k=12))- Генератор QR-кодов - Буквально несколько строк кода, использующих готовые библиотеки. Намного интереснее было бы изучить алгоритм, по которому генерится QR и хотя бы это сделать самостоятельно. Хотя, конечно, это уже сложно. Но зато скилы прокачались бы ого-го. - Преобразование видео в GIF - Тут у вас самое весёлое :) Целых ТРИ строки кода, которые просто используют готовую библиотеку. Котоорая... в свою очередь, под капотом использует ffmpeg (я даже проверять не стал, это и так очевидно). И ffmpeg сам по себе отлично умеет конвертить видео в гиф ( https://superuser.com/a/556031 ). Чтобы не запоминать все необходимые опции, можно сделать однострочный bash-скриптик, который будет делать нужное. - Распознавание текста на изображении - К сожалению, тут всё аналогично и похвалить не за что - несколько строк кода, использующих тессеракт. Не то чтобы был смысл писать такую распознавалку с нуля, но всё-таки, это недотягивает до слова "проект", даже с приставкой "пет". Скорее, напоминает давний мем про BolgenOS :) 
 По поводу идей: на начальном уровне, к сожалению, ничего толкового сделать не выйдет, т.к. все идеи уже реализованы более опытными. Но если делать для себя, то в образовательных целях можно сделать, например, асинхронный http1.1 сервер, используя только socket - если делать его полноценно, столкнётесь со множеством интересных задач, решая которые, получите кучу опыта. Или, например, какую-нибудь уведомлялку о новых емейлах (себе делал такую, т.к. лень держать запущенным большой и толстый почтовый клиент с gui). Или телеграм бота с инфой по курсам валют, погодой и кол-ву дней до конца света. - dimamatrusmat04.11.2021 01:18- Прикол в том, что на некоторых сайтах, есть свои ограничения на пароль, а так, ты прав)  - nochkin04.11.2021 04:19+1- Если на сайте есть ограничение на максимальную длину пароля или запрет на какие-то символы, то это уж слишком подозрительно на тему как они хранят эти пароли, что нужно ограничивать пользователя таким образом.  - wibbtwo09.11.2021 13:55- Тут вопрос, наверное, не в хранении, а в возможности легкого подбора короткого и часто встречающегося пароля. 
 
 
 
 - TrickyBestia04.11.2021 01:18+3- Все 5 идей об одном и том же: - Установить модуль. 
- Вызвать его из своего скрипта несколькими строчками кода. 
- Зарелизить пет-проект. 
 - Ладно бы оно ещё было на каком-нибудь C++, где зависимости ставятся не через `pip install` - можно попрактиковаться с каким-нибудь CMake или meson, но нет, это Python. ИМХО, такие проекты куда-нибудь выкладывать, как минимум, стыдно. 
 - saboteur_kiev04.11.2021 02:12+3- Пет-проект - это проект, который вы делаете в свободное время для улучшения своих навыков и пополнения портфолио. - Нет. Пет-проект, это проект который вы делаете в свободное время, потому что считаете его значимым. Пополнение портфолио и улучшение своих навыков это уже вторичные причины. Если делать пет-проект исключительно для целей, которые указали вы, у вас не будет ни особой мотивации ни особого понимания а зачем собственно. - Вот проект, который интересен вам самим, уже можно сделать проектом, где вы что-то учитесь, намеренно выбрав технологии и инструменты, которые вы хотите изучить поглубже. 
 - unsignedchar04.11.2021 09:13+2- Совсем никуда не годится :( Программа, которая импортирует готовый модуль и использует из него пару методов, не тянет до даже на лабораторную работу, не то что на целый проект. 
 - daniilshat04.11.2021 11:24+5- Хорошие проекты, интересные, а главное ничего делать не надо. Просто импортируем половину интернета себе на ПК и пользуемся парой методов 
 
           
 
APXEOLOG
И в чем смысл пет-проекта, который состояит из десятка строк кода, скопированных с SO?
sunsexsurf
Даже не так. Пет-проект состоящий полностью из импорта библиотеки, которая выполняет ровно то же самое. Офигенный пет-проект по распознаванию просто импортом тессеракта, например. Ничем не усложняя и т.д.
pomponchik
Причем просто импортом работать не будет, надо еще сам тессеракт установить. Представляю, сколько "пет-проектов" окончится на этом шаге.