12 актуальных идей для портфолио Python: веб-сайты, аналитика данных, автоматизация и парсинг

Существует два способа получить достойную работу в сфере информационных технологий:

  1. С помощью платного сертификата.
  2. С помощью проектов, созданных в свободное время.

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

Но прежде всего, запомните одну важную цитату:

“Проект завершен, когда он на вас работает, а не вы работаете на него”.  —  Скотт Аллен


1. Виртуальный ассистент

Собственноручно написанный виртуальный ассистент только украсит ваше резюме. Такая программа покажет интервьюеру на собеседовании, что вы знаете, как правильно управлять ресурсами, создавая из них что-то полезное.

Для написания такого ассистента не нужен особо высокий уровень технической подготовки, ведь она создаётся с помощью различных готовых пакетов, например, Pyttsx3 для чтения текста, os для добавления возможностей вроде воспроизведения музыки или запуска приложения, Wikipedia для поиска ответов в Интернете и многое другое. Помните об одном: каждый пакет должен предоставлять вашему проекту определенную функцию.

Дополнительно вы можете сделать виртуального ассистента более продвинутым, добавив средства веб-скрейпинга и автоматизации: напишите скрипт-скрейпер результатов поиска Google.

У проекта виртуального ассистента нет конца, разве что этап успешной монетизации, ведь чем больше функций вы добавите в свой проект, тем более профессиональным и полезным он станет.


2. Веб-сайт

Создание собственного сайта-портфолио  —  всегда хорошая идея. В Python вам доступны два варианта практики веб-разработчика:

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

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


3. Автоматизация задач

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

Вам доступно множество библиотек для облегчения работы над проектом автоматизатора задач, например, Beautiful Soup (веб-скрейпинг), Selenium (веб-автоматизация), win10toast (уведомления на рабочем столе), os (организация папок) и так далее.


4. Видеоигра

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

Собственноручно созданная игра говорит о разработчике только хорошее. Она показывает, насколько программист креативен и организован, она также показывает, что разработчик хорошо разбирается в концепциях программирования и ООП; более того, уже существует множество библиотек Python для создания игр.


5. Программа с компьютерным зрением

Компьютерное зрение  —  модная технология двадцать первого века. Многие компании внедряют те или иные приложения с компьютерным зрением в свой рабочий процесс; также на рынке можно встретить много успешных стартапов в области компьютерного зрения.

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

Доступно множество вариантов создания проекта в области компьютерного зрения: вы можете написать систему распознавания лиц, систему обнаружения заболеваний по рентгеновским снимкам или что-то полезное для дорожного движения.

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


6. Графический интерфейс (GUI)

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

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

Tkinter  —  самая известная библиотека Python для создания графических интерфейсов. Иногда она сложна для понимания  —  особенно для новичка в программировании. Так или иначе, на рынке представлено множество других замечательных библиотек, подходящих для создания удивительных графических интерфейсов. 


7. Анализатор настроения

Настроение  —  это чувство или мысль. Анализ настроений  —  это изучение субъективной информации в выражениях пользователя, область обработки естественного языка, определяющая то, характеризуются ли данные как положительные, отрицательные или нейтральные. Для извлечения данных о настроении пользователя из текста пригодятся различные методы NLP (Natural Language Processing, Обработка Естественного Языка).

Было бы неплохо создать для портфолио проект на основе реальной жизни, например, программу, способную определить настроение клиента на основе его отзыва. Будь то рестораны, торговые центры или сайт электронной коммерции, такой программный продукт пригодится всем.

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

На Python написано множество библиотек для обработки естественного языка, но особенно популярными можно назвать пять из них: NLTK, TextBlob, spacy, Gensim и CoreNLP.


8. Веб-краулер

Веб-краулер или поисковой паук  —  это Интернет-бот, систематически просматривающий веб-страницы с целью извлечения данных.

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

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

Лучшими и простыми библиотеками для веб-поиска считаются Beautiful Soup и requests.


9. Бот-трейдер

Это больше, чем просто проект. Он может стать для вас источником дохода. Вам нужно написать скрипт, который автоматически продает и покупает криптовалюты или акции в зависимости от их цены.

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

Бот-трейдер, безусловно, займет много времени, но если вы справитесь с ним, то он сможет обеспечить вас достойной работой сам по себе.


10. Пакет Python

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

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

Создание пакета Python не требует глубоких познаний. Вы можете легко создать его, следуя туториалам на YouTube.

Некоторые идеи для вас:

  1. Создайте пакет Python, форматирующий любого типа текст в удобную для обработки естественного языка структуру.
  2. Создайте пакет Python, с помощью которого можно получить результаты поиска Google в удобном формате.
  3. Преобразуйте свой сценарий автоматизации в пакет Python, полезный другим разработчикам.

11. Мобильное приложение

Одним из ограничений Python можно назвать невозможность создания мобильных приложений, однако это не на 100% правда. Для Python уже существует множество библиотек, вполне пригодных для создания мобильных приложений.

Kivy  —  одна из них: это кроссплатформенный фреймворк для создания мобильных приложений как на Android, так и на iOS.


12. Упрощение анализа данных

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

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

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

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

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


Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен


Перевод статьи Abhay Parashar: 12 Unique Python Project Ideas for Your Resume

Предыдущая статья5 впечатляющих возможностей Julia, которых не хватает в Python
Следующая статья11 уникальных однострочников JavaScript, достойных восхищения