Пет-проект - это проект, который вы делаете в свободное время для улучшения своих навыков и пополнения портфолио.
Для джунов это отличная возможность компенсировать отсутствие коммерческого опыта в резюме.
Пет-проект не сильно отличается от коммерческого. На нём встречаются задачи разной сложности. Чем больше и чем сложнее задачи, тем быстрее развиваешься как разработчик.
Пет-проект требует желания, усилий и свободного времени. Но преимущества в виде полученного опыта и знаний компенсируют это.
Все подборки с пет-проектами об одном и том же: 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)
lesskop
03.11.2021 22:28+3Ну что это такое? Вы хотя бы придумали для каждого пет-проекта задания со звёздочками, я не знаю. Практически в каждом проекте суть заключается в импорте библиотеки и использовании одного или нескольких методов из неё.
nochkin
04.11.2021 04:15+1Да, уж. Так дойдём до того, что на Хабре статья будет состоять просто из небольшого куска официальной документации.
SergeiMinaev
04.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). Или телеграм бота с инфой по курсам валют, погодой и кол-ву дней до конца света.dimamatrusmat
04.11.2021 01:18Прикол в том, что на некоторых сайтах, есть свои ограничения на пароль, а так, ты прав)
nochkin
04.11.2021 04:19+1Если на сайте есть ограничение на максимальную длину пароля или запрет на какие-то символы, то это уж слишком подозрительно на тему как они хранят эти пароли, что нужно ограничивать пользователя таким образом.
wibbtwo
09.11.2021 13:55Тут вопрос, наверное, не в хранении, а в возможности легкого подбора короткого и часто встречающегося пароля.
TrickyBestia
04.11.2021 01:18+3Все 5 идей об одном и том же:
Установить модуль.
Вызвать его из своего скрипта несколькими строчками кода.
Зарелизить пет-проект.
Ладно бы оно ещё было на каком-нибудь C++, где зависимости ставятся не через `pip install` - можно попрактиковаться с каким-нибудь CMake или meson, но нет, это Python. ИМХО, такие проекты куда-нибудь выкладывать, как минимум, стыдно.
saboteur_kiev
04.11.2021 02:12+3Пет-проект - это проект, который вы делаете в свободное время для улучшения своих навыков и пополнения портфолио.
Нет. Пет-проект, это проект который вы делаете в свободное время, потому что считаете его значимым. Пополнение портфолио и улучшение своих навыков это уже вторичные причины. Если делать пет-проект исключительно для целей, которые указали вы, у вас не будет ни особой мотивации ни особого понимания а зачем собственно.
Вот проект, который интересен вам самим, уже можно сделать проектом, где вы что-то учитесь, намеренно выбрав технологии и инструменты, которые вы хотите изучить поглубже.
unsignedchar
04.11.2021 09:13+2Совсем никуда не годится :( Программа, которая импортирует готовый модуль и использует из него пару методов, не тянет до даже на лабораторную работу, не то что на целый проект.
daniilshat
04.11.2021 11:24+5Хорошие проекты, интересные, а главное ничего делать не надо. Просто импортируем половину интернета себе на ПК и пользуемся парой методов
APXEOLOG
И в чем смысл пет-проекта, который состояит из десятка строк кода, скопированных с SO?
sunsexsurf
Даже не так. Пет-проект состоящий полностью из импорта библиотеки, которая выполняет ровно то же самое. Офигенный пет-проект по распознаванию просто импортом тессеракта, например. Ничем не усложняя и т.д.
pomponchik
Причем просто импортом работать не будет, надо еще сам тессеракт установить. Представляю, сколько "пет-проектов" окончится на этом шаге.