Что написать на питоне новичку
Перейти к содержимому

Что написать на питоне новичку

  • автор:

Проекты на Python для новичков

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

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

Необязательно сразу браться за многопользовательское приложение или свой вариант Instagram (который, кстати, тоже написан на Python). Если новичок начинает делать что-то сложное, есть риск того, что позже его код нужно будет переписывать полностью. Конечно, своему создателю в первое время код может казаться гениальным, ведь эффект Даннинга — Крюгера ещё никто не отменял. Стоит учесть это и не взваливать на себя непосильные задачи, лучше брать то, что требует чуть-чуть больше текущего уровня знаний. Каждому проекту своё время.

Самый первый проект может быть совсем простым. Как вариант — начать с книги «Программируем на Python» Майкла Доусона, где Python изучается посредством создания несложных игр. Уровень программ, описанных в книге, разный — от простых игр наподобие “Крестики-нолики” до более сложных, с графикой и анимацией. Можно взять один из таких примеров в качестве отправной точки проекта и сделать свой вариант.

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

Если вы видите, что вы уже достигли более-менее профессионального уровня, и хотите показать свои навыки в полной красе, то можно задаться таким вопросом: что создают на Python профессиональные программисты? Так как Python является языком программирования общего назначения, то он может быть использован для создания любых программ. Но так сложилось, что прежде всего «питон» востребован в веб-разработке и анализе данных (сюда также можно отнести приложения с искусственным интеллектом и машинным обучением).

Проекты Python в веб-разработке

Посмотрим, что можно написать на Python новичку в каждой области. Если вы хотите продемонстрировать свои навыки веб-разработки, можно начать с самого простого — с блога. Одного знания Python здесь может оказаться недостаточно — нужно также знать основы HTML, CSS и уметь работать с базами данных.

В качестве базы данных в таком проекте можно применить MySQL — эта система управления БД в веб-разработке используется чаще всего, потому что её легко администрировать и диалект языка запросов SQL, который в ней используется, достаточно прост. У блога чаще всего один автор, который обычно является и администратором сайта, так что не нужно будет много времени уделять разделению прав пользователей — достаточно сделать админку с небольшой функциональностью.

ButterCMS — пример CMS для блога, основанной на Python

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

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

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

Проекты Python с искусственным интеллектом

Если вы хотите использовать Python для создания приложений с искусственным интеллектом (например, с использованием нейронных сетей), то помимо Python может потребоваться некоторая математическая подготовка, а также знание принципов построения моделей машинного обучения.

Интересует применение нейросетей для компьютерного зрения или обработки изображений? Можно начать с приложения, обрабатывающего фотографии в соответствии с выбранным вами стилем. Здесь можно применить генеративно-состязательные нейронные сети (GAN). Пользователь такого приложения может загрузить свою фотографию и выбрать, к примеру, стиль Ван Гога, в соответствии с которым его фотография будет преобразована. Такое приложение может работать довольно медленно, поэтому опционально можно придумать более простой проект на «питоне» — например, определение лица на фотографии и дорисовка элементов. Хотя подобных приложений уже много, создать самому что-либо подобное всё равно будет интересно.

Prisma — приложение для обработки фото с помощью нейросетей — в своё время вызвало огромный ажиотаж и появление множества клонов

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

При создании приложений с искусственным интеллектом ваша задача — создать программу, работающую у вас на компьютере либо в облачном сервисе. Это означает, что вам не нужно делать графический интерфейс приложения, а только её серверную часть. Результаты работы серверной части потом можно передавать посредством API в приложение, написанное для Android или iOS мобильными разработчиками.

Итак, мы рассмотрели, что можно делать на Python, но также важны такие вопросы: как наилучшим образом делать такие проекты и какой инструментарий использовать?

Инструменты для разработки на Python

Создание проекта поможет отточить навыки работы с теми инструментами, которые необходимы профессиональному программисту. Забудьте про Notepad++ и сразу используйте подходящую среду разработки. Для Python это прежде всего PyCharm, причём даже бесплатная версия (PyCharm Community Edition) будет на голову выше любого самого продвинутого блокнота. Особенно это преимущество заметно при использовании ООП, так как простой просмотр кода без возможности поиска и навигации по классам и их методам сильно тормозит работу над проектом.

Вот так выглядит PyCharm, разработанная компанией JetBrains

Помимо этого, PyCharm облегчает работу с системами контроля версий, которые также необходимо использовать. В среде современных программистов стандартом здесь является Git, работать с которым можно, не выходя из PyCharm. Если начинающий программист ленится использовать Git и вместо того, чтобы создать репозиторий проекта, хранит его версии по папкам, то рано или поздно он может запутаться в изменениях, которые вносил в проект, и в один прекрасный момент обнаружит, что его код «сломался».

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

Интересна карьера Python-разработчика? Тогда приглашаем вас на факультет Python-разработки GeekUniversity! Вы сможете освоить все навыки, необходимые специалисту уровня Middle, составите портфолио из четырёх полноценных проектов и потренируетесь в командной разработке.

Старт в Python для новичков: с чего начать

Python — универсальный язык программирования: на нём можно делать нейросети, запускать нейросети, собирать сайты и создавать что угодно ещё. Мы собрали всё, что нужно для быстрого старта в Python, — с теорией и практикой, чтобы можно было сразу сделать что-то полезное для себя.

Что такое Python

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

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

Вот как красиво выглядит синтаксис на Python:

a=0 print('Введите число: ') input(a) if a==0: print('Вы ввели ноль') else: print('Вы однозначно ввели не ноль')

В какой бы области вы ни делали проект, скорее всего, для этого уже есть готовая Python-библиотека. Обработка изображений, математика, распознавание речи — для всего есть инструменты. Чтобы вы понимали, насколько это универсальный язык, посмотрите, для чего используют Python-библиотеки:

  • NumPy — машинное обучение и искусственный интеллект;
  • Django и Flask — веб-разработка и веб-приложения (например, Pinterest, YouTube и Instagram написаны на Django);
  • SQLAlchemy — базы данных и обработка больших объёмов информации;
  • Cocos2d — мобильные и браузерные игры;
  • Tornado — приложения, которые требуют высокой производительности и должны работать одновременно с сотней тысяч пользователей;
  • Bubot — программирование робототехники, как вариант — использование на Raspberry Pi.

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

Ещё в Python есть поддержка ООП — объектно-ориентированного программирования, но про это мы ниже поговорим отдельно.

Почитать подробнее про Python:

Как установить

Установка Python простая и занимает от силы 10 минут. Вот статья, как установить Python под Windows и как с ним работать. Для MacOS всё почти то же самое, а если у вас Linux, то вы лучше нас знаете, как это сделать:

Ещё 10 уйдёт на скачивание и настройку редактора кода — в нём пишут текст программы. Также редакторы кода умеют находить простые ошибки и подсвечивать проблемные места.

Как начать писать

Синтаксис — это то, какие команды и конструкции есть в языке, а также правила оформления кода. Главное, что нужно запомнить: в Python нет точек с запятой в конце, а все вложенные конструкции оформляются отступами. Например, вот как выглядит оформление цикла — сразу видно, что куда относится:

a = 5 b = 10 # Условный оператор if a == b: # выводим результат, если верно print('a = b') else : # если условие неверное — выводим другое сообщение print('a ≠ b') # условные операторы— И, ИЛИ, НЕ if a > 5 and b < 10 or not a != b: print('Сложное условие сработало') 

Подробно про синтаксис для начинающих:

На вырост: объектно-ориентированное программирование

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

Основная задача ООП — сделать сложный код проще. Для этого программу разбивают на независимые блоки, которые мы называем объектами.

Объект — это всего лишь набор данных и функций, таких же, как в традиционном функциональном программировании. Можно представить, что просто взяли кусок программы и положили его в коробку и закрыли крышку. Вот эта коробка с крышками — это объект:

Старт в Python для новичков: с чего начать

Программисты договорились, что данные внутри объекта будут называться свойствами, а функции — методами. Но это просто слова — по сути, это те же переменные и функции.

Объект можно представить как независимый электроприбор у вас на кухне. Чайник кипятит воду, плита греет, блендер взбивает, мясорубка делает фарш. Внутри каждого устройства куча всего: моторы, контроллеры, кнопки, пружины, предохранители — но вы о них не думаете. Вы нажимаете кнопки на панели каждого прибора, и он делает то, что от него ожидается. И благодаря совместной работе этих приборов у вас получается ужин.

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

Почитать про ООП:

Проекты

Лучший способ освоить новый язык программирования — сделать на нём что-то полезное и интересное. Собрали проекты в «Коде», с которыми можно справиться даже без большого опыта в программировании, — с комментариями, пояснениями и разбором.

Попроще:

  • Делаем свой таймер на Python
  • Пишем игру Ним на Python
  • Абсолютня: генератор новых слов на Python
  • Конец ретроградному Меркурию! Пишем собственный гороскоп на Python

Посложнее:

  • Телеграм-бот на Python
  • Игра: арканоид на Python
  • Работаем с биг-датой: визуализируем данные на Python
  • Создаём свою модель распознавания лиц на Python
  • Запускаем Python-скрипт на сервере, чтобы он работал всё время

Бонус: что по деньгам

Python-программисты — одни из самых востребованных в ИТ, поэтому с деньгами сейчас так (сейчас — это на октябрь 2023 года):

  • джуниоры получают примерно 88 000 ₽;
  • мидлы — 190 000 ₽;
  • сеньоры — 315 000 ₽.

По данным Хабр Карьеры, средняя зарплата python-разработчика составляет почти 190 тысяч:

Старт в Python для новичков: с чего начать

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

Что написать на Python новичку, чтобы удостовериться в своих знаниях?

После того, как чувствуешь себя более свободно, пользуясь Python, то что стоит на нём написать? Что-то, что даст мне понять уровень моих знаний и то, что стоит подтянуть и куда дальше стремиться.

P.S. Back-end приветствуется.

  • Вопрос задан более трёх лет назад
  • 27688 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 7
Sergey6661313 @Sergey6661313

checkio.org пробовали? да задачки простые, но там есть функция "посмотреть другие варианты решений". И вот там самый смак.

Ответ написан более трёх лет назад
Нравится 4 1 комментарий

Survtur

Подтверджаю. Такие интересные и красивые решения бывают.
Сергей @red-barbarian

ну кроме стандартных чатов сервер-клиент, можно предложить что рекомендуют в java:
-текстовый квест
-простую sql базу. (реализация простых запросов sql, хранение данных в таблицах)
кроме того
изучить Qt, джанго
попробовать машинное обучение, нейронные сети. сделать например свой определитель иностранного языка. скачать дамп википедии и создать бота который можэет говоить по теме.)
кроме того
рефакторинг своего текста. тупо сидеть и по пять минут выбирать наилучшее наименование для переменной, функции. структуры.
кроме того
посмотреть, посетить митапы питона. узнать что в тренде и к чему лежит душа.
Ну после митапов идей будет много. и желание попробовать.
кроме того
github.
.
можно много придумывать если язык становится не целью а средством.

Лучшие Проекты Для Начинающих Python-Разработчиков

Чтобы научиться ходить – надо ходить, чтобы научиться подтягиваться – надо подтягиваться, чтобы научиться решать задачи по физике – надо решать задачи по физике. Так говорил преподаватель физики в моём университете, и эта аналогия применима и к программированию.

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

Цель данного "топа" – это не создание самого оригинального портфолио и не перечисление уникальных проектов. Цель статьи разобраться в простых вещах, технологиях и темах, которые помогут развить практические навыки программирования. Поэтому не стоит ждать здесь сборку Оптимуса Прайма, программирование Звезды смерти и создание двигателя на китовом жире. Мы пройдёмся по простым, но в тоже время базовым вещам. Ведь как говорил один мой приятель: «Всё великое начинается с малого».

Парсер

Первый проект в списке – парсер сайтов. Это программа, которая просматривает код веб-сайта и получает оттуда какую-то информацию.

Предположим, есть сайт «Авито». Мы можем сделать программу, которая будет «как бы заходить» на Авито; просматривать объявления из раздела «Аренда квартир в Москве» (через программный код на страницах); и записывать в текстовый файл информацию из этих объявлений.

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

В тренировочно-образовательных целях необходимо всё сделать максимально вручную, но без фанатизма. Поэтому используем модуль requests для работы с сетевыми запросами (для получения кода сайта, регистрации, авторизации). Библиотека BeautifulSoup понадобится для разбора и выдергивания информации из HTML-кода сайта, который мы получили с помощью requests.

Разработка парсера заставит разобраться с тем, что такое, зачем нужны и как работают сетевые протоколы HTTP/HTTPS. Придётся выяснить, что такое HTTP-запрос – из чего он состоит; как работать с GET, POST, PUT, DELETE-запросами; чем они отличаются; как формировать заголовки запросов. Предстоит покопаться со статус-кодами, URL-адресами, схемами авторизации, сессиями, редиректами, прокси и куки-файлами. Параллельно познакомиться с форматом JSON и вникнуть в HTML/CSS-код, семантику и DOM-модель веб-страницы.

Работа с сетевыми протоколами – это фундаментальные computer science навыки, без которых называть себя полноценным программистом немного не справедливо.

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

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

Бот

Каждый мужчина должен посадить сына, вырастить дом и построить дерево, а каждый питонист должен сделать хотя бы одного бота для социальной сети или мессенджера.

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

Однако прежде придётся разобраться, что такое API, вникнуть в понятие синхронности/асинхронности, потренировать понимание ООП, если сделать бота классом, а не просто набором функций.

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

В ходе разработки возникнут вопросы: как хранить в проекте секретные данные (токены, пароли), и как разделить бизнес логику приложения. Веcь код, отвечающий за работу непосредственно с площадкой, стоит вынести в один модуль, а код обработки полученных данных в другой модуль. Этим всё не ограничится. В процессе всплывёт ещё много других подводных камней. А это ценный практический опыт, который нам и нужен.

Загрузка (то есть деплой) бота на хостинг по типу Heroku или Google App Engine – уже отдельная история, которая также прокачает твои технические навыки.

Если хочется сделать бота ВКонтакте, то смотрим в сторону библиотек vkwave и vkbottle. Они современные, асинхронные и простые в использовании. Синхронный и уже местами забагованный vk_api использовать не советую.

Для Telegram рекомендую полностью асинхронный Aiogram.

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

В случае с Discord ботами самым популярным является модуль discord.py (c 9 000 звёзд на GitHub). Он асинхронный, хорошо документирован и прост в освоении. По принципу использования и написания кода похож на Aiogram и vkwave.

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

Идея проекта попроще: бот, который по запросу присылает случайный фильм из файла или БД.

Вариант посложнее: бот для учёта финансов. Пишешь ему сообщение сколько денег потратил и на что. Он записывает всё в Google-таблицу, БД или Excel-таблицу и ведёт какую-нибудь статистику.

Можно сделать бота, который следит за ценами. Отправляешь ему ссылку на товар. Если на этот товар появляется скидка, бот присылает уведомление.

В случае с ботами всё ограничивается лишь вашей усидчивостью и фантазией. Ковыряйтесь на здоровье!

Веб-приложение (интернете магазин)

Если браться за создание сайта, то это должен быть не блог, не клон Instagram, не онлайн предсказатель будущего, а именно интернет-магазин.

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

В качестве усложнения проекта можно добавить систему оплаты, скидочные промокоды, раздел с лидерами продаж, кеширование, отправку чека на почту или рекомендательную систему, основанную на in-memory СУБД Redis или вообще модели машинного обучения.

А если вы совсем без тормозов, то прикрутите REST API сайта. Для этого потребуется дополнительно вникнуть в вопросы сериализации JSON-объектов, работе с сетевыми протоколами и прочему.

Разработка веб-сайта познакомит вас с паттерном проектирования MVC (модель-представление-контроллер), HTML/CSS и, возможно, JavaScript кодом.

Основываясь на своём опыте, скажу, что для освоения веб-разработки лучше варианта чем Django нет. Django большой фреймворк, в котором по умолчанию есть модули для всего, что я перечислял выше. Кроме того, он базируется на классическом, упомянутом ранее шаблоне MVC (правда там он называется MVT, но не суть).

Изучая Django придётся научиться работать с маршрутизацией, моделями данных, миграциями, контроллерами, шаблонизаторами HTML и ORM (это специальная штука, которая позволяет работать с базой данных без SQL запросов, а через питоновские объекты). Много предстоит поработать с ООП, потому что все модели данных представлены классами. Часто приходится использовать наследование.

Важно, что практически все современные популярные питоновские и не только фреймворки устроены точно также, как Django. Если вы разберётесь с Django, понять, как работает PHPшный Laravel, Jav'овый Spring или Ruby on Rails не составит труда.

Django ORM практически идентичен Eloquent из Laravel, шаблонизаторы тоже плюс/минус у всех похожи, модели и миграции отличаются чисто косметически.

Потом, для расширения кругозора, можно ещё взглянуть на микрофреймворк Flask.

Выбирайте предметную область, которая вам интересна. Любите компьютерные игры – создаём магазин игр, тащитесь по топовому шмоту – вот вам магазин одежды. Короче стараемся получить максимум удовольствия. И едем дальше.

GUI

Разработка приложений с графическим интерфейсом не является основной сферой применения Python. Однако это не значит, что GUI на нем не пишут совсем.

GUI на PyQT5

В качестве тренировочного опыта, лично я бы остановился на создании Аудио проигрывателя для компьютера. На функционал не скупимся. Добавляем возможность работать с плейлистами, управление воспроизведением (старт, стоп, пауза, перемотка), стоит добавить анимацию звуковой дорожки, ползунки громкости и т.д. Про уникальный дизайн также не забываем.

Для графики рекомендую использовать фреймворк PyQt, а для работы с аудио библиотеку Pygame.

PyQt – более фундаментальный и сложный графический фреймворк, чем tkinter или pysimplegui. Поэтому обратить внимание стоит именно на него. Тут по аналогии с MVC веб-фреймворками. Разберись с базовыми принципами и дальше проблем не будет. Под базой здесь я подразумеваю концепцию событий (сигналов) и обработчиков событий (слотов).

PyQt также поможет прокачаться в понимании ООП, потому что все графические объекты представлены классами, а наследование используется повсеместно.

Внешний вид элементов в PyQt задаётся в графическом Дизайнере ручками или с помощью CSS-свойств в коде, что делает разработку проще.

По PyQt в Интернете много уроков, есть даже отдельные книги, что также плюс.

Отмечу, что многие графические приложения основаны на шаблоне проектирования MVP (модель-представление-представитель). Это вариация шаблона MVC на котором базируются веб-приложения.

Pygame – простая и популярная библиотека для работы с мультимедиа объектами. Позволяет работать с аудио, видофайлами, а если в ней хорошо разобраться, можно и 2D игру сделать.

Data Science-приблуды

Сферы искусственного интеллекта и Data Science занимают большую часть сообщества Python-разработчиков. Да, проекты подобного рода специфичны и вникать в них всем необязательно. Но не упомянуть о них я не мог.

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

Как по мне интересный проект – анализ настроения пользователя по его комментарию на форуме, или на вполне конкретном сайте, например, Кинопоиске. Оригинальностью проект не блещет. Но покопаться придётся.

Это задача из сферы обработки естественного языка (Natural Language Processing или NLP). Для работы с NLP стоит обратить внимание на библиотеки: NLTK, TextBlob, spacy, Gensim и CoreNLP. Пара слов о каждой.

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

TextBlob – обёртка над NLTK, которая предоставляет простой интерфейс для этой библиотеки. Иногда ею просто удобнее пользоваться.

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

Gensim – библиотека тематического моделирования. Позволяет обрабатывать тексты, работать с векторными моделями слов (например, Word2Vec или FastText) и создавать тематические модели текстов.

CoreNLP – модуль для распознавания свойств текста.

Пока далеко не ушли от кино. Вспомним одну из классических задач машинного обучения – разработку системы рекомендаций. Рекомендательная система – это программа, которая будет угадывать предпочтения пользователя в плане выбора фильма. Для её написания придется научиться работать с такими базовыми библиотеками для любого data scientist'а как Pandas, Numpy, Matplotlib и Scikit.

Pandas нужен для обработки данных, NumPy для математических вычислений, Matplotlib позволяет визуализировать данные, то есть строить диаграммы и графики, а Scikit содержит модели машинного обучения и инструменты для работы с ними.

Следующий большой класс задач – компьютерное зрение. Не мудрствуя лукаво, создаём приложение, которое по фото или видео определяет наличие/отсутствие маски на лице человека. Самая ходовая библиотека компьютерного зрения – это OpenCV. Её и предстоит изучать. Также стоит ознакомиться со сверточными нейронными сетями и концепцией deep learning в целом. Обучающие data-сеты для любого из указанных проектов можно спокойно найти в Интернете.

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

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

Знаете, учиться всегда тяжело. А по началу очень тяжело. Но я в тебя верю! Господь тоже в тебя верит! Но на всякий случай, для подстраховки, он создал тебе в помощь Google. Не забывай про это.

P.S. Также есть видеоверсия данной статьи на YouTube.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *