Вы уже устали видеть повсюду рекламу курсов по Python. Вы даже уже примерно знаете, что это такое, знаете все эти циклы и условные операторы (ну или хотя бы прошли бесплатные курсы). Как теперь эти знания монетизировать? Об этом наш лонгрид.
На одном известном сайте вакансий по запросу python выдает более 12000 вакансий, из них более 2500 - удаленная работа. Чем бы мы могли заняться с нашими знаниями Python?
Оконные приложения
Самое очевидное что можно делать — оконные приложения. К сожалению, тут Python не чемпион. Нашлось всего около 20 вакансий. Тут у нас есть 2 варианта:
Tkinter – это пакет Python, предназначенный для работы с графическим интерфейсом пользователя. Подойдет начинающим для создания первых проектов с графическим интерфейсом.
PyQt5 является одним из наиболее часто используемых модулей для создания GUI приложений в Python. Это оболочка для мощного фреймворка на С++. В любом случае, работа с интерфейсами — полезный навык.
Веб-скрапинг
Сборка большого объема данных — сама по себе задача не из легких. Для этого Python весьма подходит. Нашлось 25 вакансий. И тут у нас тоже 2 варианта:
Requests + Beautifulsoup — первый модуль отправляет запрос и получает страницу. Второй анализирует её содержимое и достает нужные данные. Знание HTML будет полезно.
Scrapy - полноценный фреймворк для парсинга сайтов, предлагающий полноценный набор инструментов и позволяющий разработчикам не думать о настройке кода.
Боты, API, автоматизация
Когда есть сервис, скорее всего у него есть API. Если есть социальная площадка — скорее всего взаимодействие с ней можно автоматизировать. Нашлось около 100 вакансий.
Vk-api,discord,python-telegram-bot — и многие другие, всё это библиотеки, которые так или иначе автоматизируют общение с клиентами внутри площадки. А ведь есть еще API у финансовых площадок.
Тестирование кода
Тестировщик кода — это относительно новая профессия, спрос на которую создают сами программисты. Суть проста: попытаться найти все потенциальные ошибки в коде до того, как их найдет и использует пользователь.
Unittest, Pytest — два основных пакета для тестирования кода. Их задача — подменить ввод данных и проанализировать вывод. Если все тесты пройдены — скорее всего, код хороший и можно двигаться к реализации новых задач.
Анализ данных
Подходим к топ-3 самых востребованных задач на Python. Анализ данных штука сложная — нужно обработать ОГРОМНЫЙ массив данных, очистить его от погрешностей и ошибок и сделать из него правильный вывод.
NumPy — это библиотека языка Python, добавляющая поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых (и очень быстрых) математических функций для операций с этими массивами. Другими словами — она нивелирует медлительность Python.
SciPy — это библиотека Python с открытым исходным кодом, предназначенная для решения научных и математических проблем. Она построена на базе NumPy и позволяет управлять данными, а также визуализировать их с помощью разных высокоуровневых команд.
Pandas — в экосистеме Python pandas является наиболее продвинутой и быстроразвивающейся библиотекой для обработки и анализа данных.
Matplotlib — картиной можно выразить тысячу слов. В случае с библиотекой Python matplotlib, к счастью, понадобится намного меньше слов в коде для создания качественных графиков.
Seaborn — это библиотека для создания статистических графиков на Python. Она основывается на matplotlib и тесно взаимодействует со структурами данных pandas. Она абстрагирует сложность, позволяя вам проектировать графики в соответствии с вашими нуждами.
Нейросети и машинное обучение
Нейросети — это очень горячее направление в текущий момент времени. С каждым днем открывается всё больше стартапов, использующих данную технологию в своей основе, и всё больше традиционных бизнесов стремится её ввести.
OpenCV2 — это open source библиотека компьютерного зрения, которая предназначена для анализа, классификации и обработки изображений. Опыт её использования высоко востребован.
Scikit Learn — предоставляет ряд контролируемых и неконтролируемых алгоритмов обучения через согласованный интерфейс в Python. Scikit learn будет вашим руководством для того, чтобы модели контролируемого обучения, такие как Naive Bayes, группировали непомеченные данные, такие как KMeans.
TensorFlow — это библиотека AI, которая помогает разработчикам создавать крупномасштабные нейронные сети со многими слоями, используя графики потоков данных. TensorFlow также облегчает построение моделей глубокого обучения, продвигает современную технологию ML/AI и позволяет легко развертывать приложения на базе ML.
Keras — открытая нейросетевая библиотека, написанная на языке Python. Нацелена на оперативную работу с сетями глубокого обучения, при этом спроектирована так, чтобы быть компактной, модульной и расширяемой.
В дополнение к предоставлению более простого механизма для выражения нейронных сетей, Keras также предлагает некоторые из лучших функций для компиляции моделей, обработки наборов данных и визуализации графиков. На бэкэнде (сервере) Keras использует либо Theano, либо TensorFlow.
Веб-сервисы
И наконец, на сегодня самое востребованное направление Python. Веб-сервисы прочно вошли в нашу жизнь, они множатся с большой скоростью и что-то должно управлять взаимодействием серверов и пользователями. Что, впрочем, и не удивительно, простота языка и скорость разработки позволяет быстро поднимать и отлаживать новые сервисы, вводить новый функционал. Тут есть лишь один вариант и одна маленькая рекомендация.
Flask — моя любимая библиотека для создания быстрых веб-сервисов или простых сайтов. Минималистичный фреймворк, дающий лишь самый базовый функционал, в чем же его прелесть? В огромном количестве дополнений к нему и низкому порогу входа.
Если вы знаете, что в скором времени займетесь разработкой крупного веб-приложения, то стоит присмотреться к полноценному фреймворку.
Django. Он же самый востребованный фреймворк среди всех направлений разработки Python. И не удивительно, ведь именно он стоит под капотом многих сервисов. Если фласк — это коробка с инструментами, то джанго — целая мастерская. Благодаря хорошей интеграции с большим количеством хостингов вы сможете запустить небольшой сервер без всяких расширений и без особых хлопот.
Заключение
Как видно, внутри Python есть очень много различных библиотек, каждая из которых в той или иной мере востребована. Однако, если вы хотите быстро стать востребованным специалистом, придется изучать специфичные пакеты, которые несомненно потянут за собой что-то еще, будь то HTML5 или высшая математика.
Если вам интересен мир ИТ, подписывайтесь, далее мы будем разбирать интересные и распространенные алгоритмы, писать мини-проекты на python, JS, C и публиковать переводы статей.
#IT #Python #django