Перевод статьи «12 Unique Python Project Ideas for Your Resume».
Чтобы получить достойную работу в IT, пригодится профильное образование и диплом. Но далеко не все разработчики заканчивали вуз. Работу можно найти и благодаря собственным навыкам, доказательством которых служат личные проекты. Причем проекты — мера куда более объективная, чем диплом.
В этой статье мы разберем 12 идей проектов на Python, которыми можно пополнить свое портфолио. Все идеи — из разных областей.
«Проект закончен лишь тогда, когда он начинает работает на тебя, а не ты на него», — Скотт Аллен
1. Умный ассистент
Ассистент — хороший проект. Благодаря ему интервьюер поймет, насколько вы хороший питонист: знаете, как правильно использовать ресурсы и создавать из них что-то полезное.
Чтобы создать ассистента, не нужно быть специалистом в области разработки на Python. Вы можете сделать это с помощью доступных пакетов.
Для реализации подобного проекта вы можете использовать, например, Pyttsx3 для распознавания текста. А с помощью модуля os можно добавить функции вроде проигрывания музыки, запуска приложений, поиска по Википедии и т. д. Но запомните одно правило: «одна библиотека — одна функция».
Также вы можете расширить функционал своей программы, добавив агрегатор веб-страниц или автоматизацию рутинных задач. К примеру, можно добавить скрипт, который будет скрапить результаты поиска Google. Все это вы можете включить в функционал вашего ассистента, чтобы проект смотрелся внушительнее.
У этого проекта нет конечной точки. Чем больше функций, тем профессиональнее и полезнее ваш ассистент.
2. Веб-сайт
Создать свой сайт для портфолио — тоже хорошая идея. Можно создать «обычный» сайт: платформу для электронных платежей, образовательную платформу или что-то подобное. Но вы можете создать и сайт, который автоматизирует повседневные задачи и может использоваться в реальной жизни.
Например, ваш сайт может принимать список адресов электронной почты и отправлять введенное вами письмо на каждый из них. Или конвертировать PDF-файлы в аудио-файлы.
Наверняка у вас есть множество идей — воплотите их в жизнь.
3. Автоматизатор задач
Этот проект похож на первый, но с упором на автоматизацию.
Вы можете написать программу, автоматизирующую разные задачи. Например, для управления папками и файлами (переименование, удаление, перемещение). Полезным будет и скрипт, выполняющий SEO-действия в вашем блоге. Еще одна идея — скрипт, отправляющий поздравление друзьям на их день рождения.
Во всем этом вам помогут следующие библиотеки: BeautifulSoup (веб-скрапинг), Selenium (автоматизация действий в интернете), win10toast (уведомления Windows), os (менеджмент папок) и т. д.
[python_ad_block]4. Игра
Создание игр — кропотливый и времязатратный процесс. Но вы можете создать полнофункциональную игру, и лучше этого ничего не придумаешь.
Игра говорит о своем разработчике многое: о его креативности, собранности. Также качество игры показывает, насколько хорошо разработчик знает концепты программирования и ООП.
Python имеет множество библиотек для создания игр. Вы можете пройти по этой ссылке и выбрать подходящую для вас — ссылка.
5. Разработка модели компьютерного зрения
Компьютерное зрение — тренд 21 века. Каждая компания внедряет компьютерное зрение в свои системы (в каком-либо виде). Существует множество успешных стартапов в данной области.
Если вы реализуете модель компьютерного зрения, вы покажете работодателю, как быстро вы адаптируетесь к новым технологиям.
Компьютерное зрение можно использовать в различных областях. Вы можете создать систему распознавания лиц, распознавания болезней посредством анализа рентгеновских снимков, программу для анализа дорожного трафика.
В экосистеме Python есть множество библиотек, которые помогут помочь вам в этом деле. Одна из лучших — OpenCV.
6. Разработка графического пользовательского интерфейса
Разработка GUI — интересный проект, который вполне можно включить в свое портфолио. Графический интерфейс — это то, что видит пользователь и то, с помощью чего он взаимодействует с вашей программой.
Пройдитесь вокруг дома, зайдите в местные магазинчики, узнайте об их нуждах и создайте программу с GUI, исходя из этих нужд. Запомните: хороший пользовательский интерфейс улучшает впечатление от вашей программы и повышает шансы заработать на ней деньги!
Tkinter — самая популярная библиотека Python для создания GUI. Правда, в ней может быть непросто разобраться, особенно если вы новичок. Но помимо Tkinter существует множество других GUI-библиотек, познакомиться с ними можно по ссылке.
7. Приложение для анализа настроения
Настроение — это наши мысли и чувства. Анализ настроения — это изучение субъективной информации в выражениях. Это сфера обработки естественного языка (Natural Language Processing, NLP). С помощью NLP мы можем распределить данные на позитивные, негативные или нейтральные. Для извлечения информации о настроении из текста используются различные техники обработки естественного языка.
Что касается личных проектов, вы можете написать приложение, которое будет определять настроение пользователя по его отзыву. Речь может идти об отзывах о ресторанах, торговых центрах или сайтах — распознавание настроения пользователей пригодится в любой сфере.
Вы можете предсказать, когда компаниям нужно начинать распродажи или предложить новый продукт. Вы поможете компаниям развивать их бизнес, а они вам — развить ваш стартап.
В этом деле вам помогут соответствующие библиотеки, а именно: NLTK, TextBlob, spacy, Gensim и CoreNLP.
8. Поисковый бот
Поисковый бот — это бот, который периодически просматривает сайты и извлекает нужную вам информацию.
Вы можете написать бота, который будет извлекать информацию из интернет-магазинов, сравнивать цену на два товара и возвращать ссылку на самый дешевый вариант. Также ваш бот может постоянно проверять цену на определенный товар и отправлять вам уведомление, когда, например, цена снижается или начинается распродажа.
А если добавить к поисковому боту немного автоматизации, вы получите продукт, который украсит любое портфолио.
Лучшие библиотеки для такого проекта — Beautiful Soup и requests.
9. Бот для алгоритмического трейдинга
Это больше, чем просто проект. Он может принести вам доход. Речь идет о боте, который автоматически продает и покупает акции в зависимости от цен.
Для новичков этот проект может показаться сложным. Если кратко, то вам нужно написать программу, которая получает две цены акций: нынешнюю и предыдущую. Следующий шаг — создание модели машинного обучения, способной предсказать будущую цену. После того, как ваш бот предскажет цену, сравните прогнозируемую стоимость акций с реальной. Если различие небольшое — поверьте в себя и начните торговать!
Этот проект, конечно же, займет много времени. Но если вы с ним справитесь, то точно получите достойную работу.
10. Пакет Python
Пакет Python — это папка с Python-файлами, которые выполняют определенные задачи. Пакеты помогают разработчикам писать меньше кода — нужно лишь импортировать пакет. Каждый пакет Python содержит в себе набор действий, которые выполняются согласно соответствующим инструкциям.
Создавать пакеты не так сложно — вы можете найти соответствующие руководства на YouTube.
Несколько идей:
- пакет для предобработки текста для NLP
- пакет для скрапинга результатов поиска Google
- скрипт для автоматизации какой-либо задачи, упакованный в пакет, чтобы им мог воспользоваться каждый..
11. Мобильное приложение
Считается, что Python не годится для создания мобильных приложений. Это не совсем так. Существует множество библиотек, которые могут помочь вам создать мобильное приложение.
Одна из них — Kivy. Это кроссплатформенная библиотека, с помощью которой можно создавать приложения и для Android, и для iOS.
12. Упрощение анализа данных
Если у вас есть базовые знания в области машинного обучения, вы, наверно, слышали о анализе данных. С него начинается любой проект в области ML.
Если вы принимали участие в проекте, связанном с дата сайенс, вы знаете, какие шаги нужны для подготовки данных для модели машинного обучения. Они одинаковы практически в любой области — обработка отсутствующих значений, категориальных данных или разделение данных на обучающую и тестовые выборки.
Все эти шаги являются общими для всех моделей машинного обучения.
Вы можете создать сайт, который будет принимать набор данных, обрабатывать его и возвращать результат. На таком сайте нужны лишь слайдеры, выпадающие списки и поля ввода.
При создании подобного сайта вы можете использовать библиотеку streamlit. Это библиотека с открытым исходным кодом, которая была создана для машинного обучения. С ее помощью вы можете писать меньше кода и создавать потрясающие приложения.
Итоги
Все проекты, которые мы обсудили в статье, — лишь идеи. Вы можете их развить или видоизменить до неузнаваемости. При этом каждый из них можно реализовать при минимуме усилий и даже без глубоких знаний.