Привет всем, друзья! ✌ Сегодня рассмотрим что такое Python и 15 Мощных онлайн-курсов для обучения Python -разработке, которые можно пройти абсолютно бесплатно.
Python — это скриптовый язык программирования. Он универсален, поэтому подходит для решения разнообразных задач и многих платформ, начиная с iOS и Android и заканчивая серверными ОС.
Что будет в статье
- Преимущества Python
- Как используется Python
- Веб-разработка
- Программы
- Мобильные приложения
- Игры
- Встроенные системы (embedded systems)
- Создание скриптов
- Где используется Python
- Системное администрирование
- Научные исследования
- Data Science
- Какие компании используют Python
- Недостатки языка Python
- Трудоустройство и средняя зарплата Python‑разработчика
- 15 Лучших Курсов по Python с нуля
- Бонус 1. «Python: Основы программирования»
- Бонус 2. «Python-разработчик»
- Бонус 3. «Python для начинающих»
- 1. Основы Питона
- 2. Уроки Python для новичка
- На правах профессии «Fullstack-разработчик на Python»
- 3. «Курс Python»
- 4. «Основы языка Python»
- 5. «Python-разработка NEtology»
- 6.Программирование на Python для начинающих
- 7. «Python-разработка от itProger»
- 8. «Python-разработчик от Code Basics»
- 9. «Яндекс.Практикум и питон»
- 10. «Приложение на Python на Flask»
- 11. «Python: основы от Stepik»
- 12. «Программирование от Stepik»
- 13. «Анализ данных от Coursera »
- 14. «Игра от GeekBrains»
- 15. «Kivy: приложения от GeekBrains»
- Заключение
Преимущества Python
Это интерпретируемый язык — он не компилируется, то есть до запуска представляет из себя обычный текстовый файл. Программировать можно практически на всех платформах, язык хорошо спроектирован и логичен.
На примере Мухамета, рассказываю, как стать программистом Python с нуля, а не остаться на обочине.
Разработка идёт в разы быстрее, потому что кода здесь куда меньше, чем на других языках. И ещё Python отлично подходит новичкам.
Как используется Python
Его можно встретить в вебе и на мобильных устройствах, в приложениях и решениях, связанных с машинным обучением (нейросети и искусственный интеллект), а также в качестве встроенной системы.
Веб-разработка
Чаще всего Python используется в веб-разработке. Для работы с ним подключают фреймворки: Pyramid, Pylons, TurboGears, Flask, CherryPy и — самый популярный — Django.
Существуют и движки для создания сайтов на Python:
- Abilian SBE;
- Ella;
- Saleor;
- Wagtail;
- Django-CMS.
Также на Python пишут парсеры для сбора информации в интернете.
Программы
Хоть язык не компилируется, с помощью него создают десктопные программы. Вот, к примеру, что было разработано на Python:
- GIMP — визуальный редактор на Linux;
- Ubuntu Software Center — центр приложений в ОС Ubuntu (один из дистрибутиWow Linux);
- BitTorrent до 6 версии — менеджер торрент-закачек (позже программу переписали на C++, но сети peer-to-peer всё ещё работают на Python);
- Blender — программа для создания 3D-графики.
Мобильные приложения
Мобильная разработка на Python менее популярна. Для Android чаще пишут на Java, C#, C++ или Kotlin, а для iOS — на Swift или Objective-C. На Python обычно программируют серверную часть приложения. Например, клиент Instagram для iOS написан на Objective-C, а сервер — на Python.
Python ищем заказы на фриланс и выполняем их. Python requests, lxml, csv
Игры
Многие компьютерные игры были полностью или частично написаны на Python. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:
- Battlefield 2;
- World of Tanks;
- Civilization IV;
- EVE Online.
Несмотря на возможность реализации пользовательского интерфейса и работы с графикой, на Python в основном пишут скрипты — например, взаимодействия персонажей, запуска сцен, а также обработки событий.
Встроенные системы (embedded systems)
На Python разрабатывают встроенные системы для различных устройств. Например, язык прижился в Raspberry Pi (компьютер размером с карту памяти) и в «Сбербанке» для управления банкоматами.
Еще проекты со встроенной системой на Python:
- The Owl Embedded Python System;
- Python Embedded Tools;
- Embedded Python.
Язык применяется во встроенных системах станков с ЧПУ, средствах автоматического регулирования (температуры, расхода жидкостей, давления и так далее) и в телекоммуникационном оборудовании.
Создание скриптов
Python подходит для написания плагинов и скриптов к уже готовым программам. Например, для реализации игровой логики или создания дополнительных модулей. Скрипты на этом языки встраивают и в программы на других языках, чтобы автоматизировать какие-либо задачи.
Где используется Python
Python широко распространен во многих сферах: от системного администрирования до Data Science.
Системное администрирование
Системным администраторам Python нужен для автоматизации задач. Он простой, мощный и поддерживает специальные пакеты, которые повышают его эффективность. И, самое главное, он по умолчанию установлен на все серверы с ОС Linux.
Благодаря лаконичности Python можно быстро прочитать код и найти слабые места. Форматирование в языке — часть синтаксиса.
Научные исследования
В Python есть несколько библиотек, которые пригодятся для проведения исследований и вычислений:
- SciPy — библиотека с научными инструментами;
- NumPy — расширение, которое добавляет поддержку матриц и многомерных массиWow, а также математические функции для работы с ними;
- Matplotlib — библиотека для работы с 2D- и 3D‑графикой.
Благодаря библиотекам и простоте освоения языка многие учёные выбирают Python — особенно он популярен у математиков и физиков.
Data Science
Python — один из самых используемых в Data Science языков. На нём пишут алгоритмы программ с машинным обучением и аналитические приложения. С помощью него обслуживают хранилища данных и облачные сервисы.
Также он помогает парсить данные из интернета. Например, в Google Python применяют для индексации сайтов.
Какие компании используют Python
В основном Python используется стартапами и компаниями, которые разрабатывают крупные проекты. Вот лишь часть огромного списка:
- Alphabet использует язык для скраппинга в поисковике Google и реализации сервиса YouTube;
- One Laptop Per Child — для разработки интерфейса и модели функционирования;
- BitTorrent — для реализации сетей peer-to-peer;
- Агентство национальной безопасности США — для шифрования и анализа разведданных;
- ESRI — как инструмент настройки геоинформационных программ;
- Maya — для создания мультипликации;
- Pixar, Industrial Light
- Intel, Cisco, HP, Seagate, Qualcomm и IBM — для тестирования;
- JPMorgan Chase, UBS, Getco и Citadel — для прогнозирования финансового рынка;
- NASA, Los Alamos, Fermilab, JPL — для научных вычислений;
- iRobot — для разработки коммерческих роботизированных устройств;
- IronPort — для реализации почтового сервера.
Кроме того, его используют в Instagram, Positive Technologies, Houdini, Facebook, Yahoo, Red Hat, Dropbox, Pinterest, Quora, Mail.ru и Яндексе.
Недостатки языка Python
Несмотря на все достоинства, у языка есть и недостатки.
Программы на Python считаются одними из самых медленных.
Приложения для iOS на Swift работают в 8,7 раз быстрее, чем на Python. Реализация PyPy по скорости близка к Java, но в ней есть не все возможности оригинального языка. Python не подходит для задач, требующих большого объёма памяти, — их лучше решать вставками на C или C++.
Сильная зависимость языка от системных библиотек
Из-за этого затрудняется перенос на другие системы. Для этих целей существует инструмент Virtualenv, но и он с недостатками: избыточность полных методов изоляции, костыли, дублирование системных библиотек.
Global Interpreter Lock (GIL) не позволяет выполнять несколько потоков Python одновременно в реализации CPython.
Однако GIL можно отключить на какое-то время, как это сделано в математическом пакете NumPy.
Трудоустройство и средняя зарплата Python‑разработчика
По данным с hh.ru на начало 2019 года, в России ~4500 вакансий для Python‑разработчиков, из них ~2000 в Москве и ~700 в Санкт-Петербурге. Это меньше, чем по запросу «Java» (~5500), но больше, чем по запросу «PHP» (~3600).
Тенденция в том, что Python медленно забирает позиции PHP с рынка веб-разработки. Хотя на PHP всё ещё написано около 80% всех сайтов в интернете.

Минимальная зарплата по России начинается с 70 000 рублей, а в Москве — с 80 000 рублей. В основном ищут опытных разработчиков, junior‑специалисты менее востребованы.
На должность стажёра или младшего специалиста можно устроиться только в крупную компанию, а расположены они в больших городах типа Москвы и Санкт-Петербурга. Из-за этого новичкам крайне сложно устроиться в регионах — остаётся искать заказы на фрилансе.
15 Лучших Курсов по Python с нуля
Бонус 1. «Python: Основы программирования»

- Продолжительность учёбы: 37 уроков с экспертным контентом.
- Формат курса: изучение лекции + выполнение заданий.
- Есть ли связь с преподавателем: нет, но возможно связаться с поддержкой платформы.
- Кто может пройти программу: новички, не знакомые с веб-разработкой.
- Проверяют ли домашние задания: нет.
Что предусмотрено в обучающей программе: в курсе рассматриваются основы языка Python а также необходимые понятия для программирования на нём. Такие как работа с ошибками, отладка, подключение модулей и пакетов.
- Создавать программы, используя основные конструкции языка (условия, циклы, функции и другие)
- Составлять программы, состоящие из нескольких модулей
- Правильно анализировать ошибки в коде и пользоваться отладочной печатью при их поиске
Бонус 2. «Python-разработчик»
С возможностью трудоустройства + постоянной поддержки от эксперта-наставника!

400 часов теории и практики + обучение в реальной рабочей среде + доступ к курсу
навсегда + поддержка наставника 4 проекта в портфолио + диплом о переподготовке + цепляющее резюме от опытного рекрутера + подготовка к собеседованиям + сопровождение
до трудоустройства.
Программа соответствует требованиям к вакансиям работодателей
• Много практики в среде коммерческой разработки
• Под силу даже если у вас нет опыта в IT
• Всего 11 часов в неделю
Разработчик на Python создает сайты и приложения, которыми вы пользуетесь каждый день.
Python-разработчики — универсальные сотрудники как для полной, так и для частичной занятости.
- Вы чувствуете перспективность IT-сферы, но не знаете, с чего начать
- Вы работаете в смежной области и хотите сменить профессию
Мы исследовали 1230 вакансий, составили список самых частых требований к разработчикам без опыта работы и включили их в программу обучения:
- Основы программирования
- Основы веб-разработки
- Разработка API на Flask
- Погружение в Python, хостинг и деплой
- Разработка API на Django
- Типовые задачи разработчика

Почему учиться на Python-разработчика лучше в Skypro
- Наставникам можно задать любой вопрос в чатах, а на выходных подробно разобрать домашние задания на живом вебинаре
- Преподаватели — практикующие разработчики с опытом найма и наставничества
- Даем только те знания, которые приведут вас к предложению о работе
- Тренировочные собеседования научат презентовать себя
Источник: evgenev.ru
5 классных вещей, которые вы можете освоить с Python
Язык программирования Python стал третьим по популярности в индексе TIOBE и первым у PYPL. Джеймс Гавернер, сооснователь аналитической компании RedMonk, заявил, что этот язык уже стал основным для Data Science. Для каких проектов подходит Python и что вы сможете сделать уже сегодня, если знаете как работать с простейшими командами? Погнали разбираться вместе.
Преимущества Python
Python сравнительно лёгок в изучении за счёт простого синтаксиса и универсален благодаря богатой стандартной библиотеке (набору инструментов и готовых решений, которые не требуют дополнительной установки и настройки), поэтому его применяют в самых разных областях.
Python вообще славится своими классными библиотеками — в какой бы области вы ни делали проект, скорее всего, для этого уже есть готовая Python-библиотека: обработка изображений, математика, распознавание речи — для всего есть инструменты. А чтобы вы понимали, насколько это универсальный язык, посмотрите, для чего используют Python-фреймворки:
- NumPy — для работы с высокоуровневыми математическими функциями и многомерными массивами.
- Django и Flask — веб-разработка и веб-приложения (например, Pinterest, YouTube и Instagram написаны на Django).
- SQLAlchemy — для работы с базами данными с применением технологии ORM.
- Cocos2d — мобильные и браузерные игры.
- Tornado — для создания высокопроизводительных приложений, которые способны работать одновременно с сотней тысячей пользователей.
- Bubot — для программирования робототехники и домашней автоматизации, как вариант — использование на Raspberry Pi.
Мы собрали для вас несколько ярких примеров применения этого языка программирования — возможно именно они вдохновят вас на более глубокое изучение Python и создание чего-то инновационного.
1. Веб-разработка
Python имеет очень хорошую поддержку для веб-разработки с фреймворками. Распространенный стэк технологий, который можно встретить во многих компаниях — Django на бэкэнде и JavaScript фреймворк на фронтенде, например, React. Кстати такой стэк использует DropBox.
Пример — настройка доступа к файловой системе компьютера со смартфона
Вы можете получить доступ к вашей файловой системе Linux, запустив файловый сервер на вашем компьютере. Перейдите в нужный каталог, к которому вы хотите получить доступ, и выполните следующую команду:
Источник: www.reg.ru
Программирование на Python: нет смысла идти на платные курсы пока не разберетесь в бесплатных

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


Python часто советуют изучать тем, кто никогда раньше не программировал. Одно из его преимуществ — универсальность, за счёт которой он используется профессионалами в разных областях: от журналистики до продакт-менеджмента. Его можно применять для решения рутинных задач: например, чтобы визуализировать большой объём данных или составлять списки дел и покупок. Автор и менеджер программы «Анализ данных» в Яндекс.Практикуме Анна Чувилина рассказала как оптимизировать свой быт и работу при помощи программирования, какие библиотеки (шаблоны решений) могут использовать новички и как выбрать курс по изучению Python. Материал подготовлен Академией Яндекса
Почему Python советуют новичкам
Одно из главных преимуществ Python — низкий порог входа. Код на нём лаконичный и обычно сходу понятен даже тем, кто изучал другой язык. А подробная документация поможет разобраться в программировании с нуля.
Ресурсы для изучения Python:
- База книг по Python
- Habr
- Бесплатные курсы по Python на Kaggle
- Обучающие видео
Вокруг Python сформировались сообщества энтузиастов, которые пишут на этом языке. Например, в Москве есть группа Moscow Python: они проводят конференции и неформальные встречи и сотрудничают с крупными ИТ-компаниями.
Для Python существует объёмная система библиотек — готовых решений для тех или иных задач. Есть как алгоритмы для базовых математических операций, так и для сложных задач: например, распознавания картинок и звуков.
У языка много понятных приложений: его можно использовать для анализа данных и машинного обучения, бэкенда, веб-разработки, системного администрирования и игр. Конечно, при этом нужен разный набор навыков помимо программирования, но с Python можно начать осваивать почти любую предметную область.
Важно понимать, что для анализа данных язык программирования — это инструмент. Анализ данных можно проводить и в Excel, и на бумажке, а программирование — только один из вариантов того, как можно решать такие задачи.
Одно из распространённых приложений Python — работа с данными для продакт-менеджмента. Анализ данных позволяет менеджерам получать инсайты о поведении пользователей и принимать обоснованные решения. В крупных компаниях должности аналитиков и продакт-менеджеров обычно разделены, но в небольших проектах продактам нужно работать с данными самостоятельно.
Как понять, что вам нужен именно Python
Называть его «убийцей Excel» — некорректно. Многие команды и компании в России ведут весь учёт в обычных таблицах, и им этого достаточно. А Python нужен в тот момент, когда речь идет про действительно большие объемы данных. Например, у Яндекс.Музыки множество платящих пользователей, и их действия ежедневно генерируют какие-то события (лайки и прослушивания) — и терабайты данных. Хранить их в табличке Excel — из разряда фантастики.
В Python проще делать интерактивную и сложную визуализацию или проводить вычисления — для этого существуют библиотеки вроде Seaborn, matplot и Plotly. В Excel есть встроенный аппарат для решения математических задач (например, работы с данными), но для него нужно запоминать много названий операций — и работает он довольно неповоротливо. Кроме того, в Python можно быстрее и с разных сторон посмотреть на данные. Регрессию можно построить и в Excel, но зачем, когда в Python есть для этого готовые библиотеки?

Для статистических расчетов можно использовать R — люди с математическим образованием обычно осваивают его быстрее, чем Python. Однако большинству будет проще начать с Python.
Для разных задач анализа данных существуют коробочные решения. Например, Amplitude (для продуктовой аналитики), Mixpanel (для анализа поведения пользователей) Яндекс.Метрика и Google Analytics. При этом их использование часто платное.
Где применять Python, если вы не разработчик
Помимо анализа данных у языка есть и более простые приложения. Так, в учебниках по Python часто встречается задача с рассылками. В ней нужно создать рассылку, например, для людей, которые не сдали деньги на ремонт — найдя их данные в Excel-таблице. С помощью такого скрипта можно разослать письма по шаблону — и имена будут подставлены автоматически.
Python — про автоматизацию рутинных задач. Например, можно запустить скрипт, который подставляет пароли — и он автоматически откроет запароленные страницы или папки. Есть алгоритмы для того, чтобы автоматически создавать списки покупок или переименовывать фотографии определённым образом.
Люди, которые умеют писать код, придумывают такие вещи «на автомате». Например, маркетологи могут запустить скрипт для построения воронок продаж. А тестировщики — написать алгоритм, который будет подставлять данные в формы и тестировать приложения.
Если говорить про анализ данных, то многие начинают осваивать его из любопытства — чтобы найти инсайты в сфере, которую пока не исследовали. Например, можно определить социальные проблемы своего региона, анализируя опубликованную статистику. А если вы хотите через какое-то время попасть на стажировку или на работу, где нужен анализ данных, то такой кейс поможет вам показать свои навыки. Начать можно с простых, стандартных проектов, которые обычно предлагают тем, кто изучает Python.
Что нужно, чтобы выучить Python
Из математического аппарата кроме базовой арифметики для программирования ничего не нужно. Чтобы придумать, какой алгоритм использовать для решения той или иной задачи, важно структурное мышление — но это не математическая компетенция. Парадокс в том, что и развивать его нужно с помощью регулярной работы с задачами — важно быть готовым просидеть над, казалось бы, тривиальным заданием несколько часов и не отчаяться.
Для анализа данных, помимо школьной математики, понадобятся знания математической статистики и теории вероятности. Начинающему специалисту важнее всего освоить базовые понятия: уметь проверять гипотезы, знать, что такое доверительные интервалы, чем отличаются медиана и мода, понимать, как обозначать события и их вероятности.
Материалы по математике:
- Курс на Coursera
- Видеокурс по алгоритмам
- Статистика. Вероятность. Комбинаторика — Я. С. Бродский
Тем, кто хочет заниматься анализом данных (как профессионально, так и для себя), важно развить критическое мышление. Например, нужно самому выделять критерии для сравнения объектов: тут нет какого-то стандартного решения. Ещё важно сходу видеть закономерности и аномалии в данных.
Изучать программирование и анализ данных можно и самому — я не рекомендую обращаться к платным курсам до тех пор, пока вы не посмотрели бесплатный контент.
Во-первых, он служит для профориентации: чтобы лучше понять, какие приложения есть у программирования или анализа данных для разных профессий. Во-вторых, даёт понять, сколько сил и времени нужно будет прикладывать для изучения.
Преимущества обучения на курсах в том, что на них можно получить чётко сформулированные практические задачи. Также преподаватели могут рассказать о том, как общаться с заказчиком и уточнять у него необходимую информацию.

Как выбрать образовательную программу
Выбирая образовательную программу, важно обратить внимание на преподавателей, которые его ведут или создавали для него контент, — можно посмотреть их профили на Facebook и узнать про профессиональный опыт.
Что касается цены, то по моему опыту, качество курса не всегда с ней коррелирует — поэтому ориентироваться нужно на то, сколько вам комфортно потратить на обучение.
Также стоит чётко сформулировать то, что хочется получить в результате, — и сделать это ключевым критерием для выбора. Бывают случаи, когда студенты приходят на курс по анализу данных для менеджеров и ожидают занятия по программированию — а их учат общаться с аналитиками и рассказывают общие вещи про то, как внедрять анализ данных. Зачастую проблема не в плохой организации или преподавателях, а в том, что человек сам не проверил, соответствует ли программа его задачам. Правило с постановкой целей работает не только на выбор программы, но и на обучение в целом — не стоит осваивать язык программирования, чтобы поставить галочку.
Источник: zeh.media
Веб-разработка на Python: выгодно бизнесу, удобно разработчикам.
Опыт kt.team
В данной статье вы узнаете подробности нашего опыта работы с Python: какие продукты мы пишем на этом языке программирования, почему выбираем для этих задач именно его, какие выгоды от этого получают заказчики разработки.
Разобраться в этом вопросе нам помогут:
- Егор, старший инженер-программист;
- Антон, тимлид, партнёр компании;
- Антон, руководитель проектов, исполнительный директор, партнёр компании.
Преимущества разработки на Python для бизнеса
Ускоренная разработка MVP

С развитием гибких подходов и философии Agile циклы разработки становятся всё короче. Software-инженерам не нужно годами писать проекты «в стол», сверяясь с техническим заданием на тысячу страниц. Разработка начинается с создания MVP. В приоритете — за один-два месяца выпустить на рынок минимально жизнеспособную версию продукта и получить обратную связь от реальных пользователей (подробнее о разработке MVP можно прочитать в нашей статье в блоге: «MVP, или как не попасть в бесконечную разработку»).
MVP (сокр. от англ. minimum viable product, рус. минимально жизнеспособный продукт) — продукт, обладающий минимальными, но достаточными для удовлетворения первых потребителей функциями.
Для быстрой разработки MVP отлично подходит Python. Секрет скорости — в синтаксисе, максимально приближённом к естественному английскому языку.
На скорость влияет большое количество свободных библиотек и фреймворков, а также минималистичных микрофреймворков, например Flask. Они разработаны под разные нужды, имеют обширное и дружелюбное комьюнити, привлекают простотой и гибкостью синтаксических конструкций.
Нюанс: такая высокая скорость поддерживается при относительно невысокой сложности проекта (малая и средняя e-Commerce, CRM, несложные интеграции).
Если же разработка ведётся для enterprise-проектов, то все работы занимают примерно одинаковое время независимо от используемого стека технологий. Писать на Java, PHP или Python — неважно, ведь общее количество часов не будет значительно отличаться.
При этом время может по-разному распределяться на разные типы работ. С каким-то стеком больше времени потребуется на рефакторинг, с другим — на MVP, c третьим — на тесты и т. д. Например, чтобы быстро работать на Python, нужно предварительно продумать архитектуру и правильно подготовить окружение. К тому же нельзя судить о сложности работы по количеству строк кода и скорости его написания. Минимальное количество кода означает его высокое качество, а чтобы разработчик мог уложить задачу в три строки, он должен тщательно продумать, как это сделать, в какой части программы разместить код и т. д.
Лёгкая интеграция с другими технологиями и программным обеспечением
Сегодня любой продукт разработки требует большого количества интеграций: с разнообразными информационными системами самой компании и её контрагентов, с банковскими, маркетинговыми ИС и многими другими.
Python удобен для интеграций и может управлять различными компонентами ПО, в том числе разработанными на другом языке. Универсален для любых платформ.
Это было одной из причин, почему мы выбрали именно Python для создания API принт-сервиса на одном из текущих проектов. Он отлично взаимодействует с сервером печати Linux CUPS — из Python легко обращаться к ядру ОС для выполнения нужных операций.
Масштабируемость и возможность добавлять новые функции
Масштабируе-
мость и возможность добавлять новые функции
Это преимущество не возникает само по себе, оно требует продуманной архитектуры проекта и соблюдения чистоты кода. Можно сказать, что на Python с его простыми и понятными синтаксическими конструкциями проще писать легко масштабируемый код, чем на большинстве других языков.
Это было важно для нас, когда мы выбирали стек для управления сервисами печати. С Python нам не пришлось вносить изменения в основной модуль принт-сервиса при изменении его частей.
Недостатки Python
Большинство особенностей Python заметны только на стороне разработчиков и создают трудности именно им, а не заказчикам и пользователям продукта.
Скорость исполнения кода
Пожалуй, самая болезненная тема для «питонистов» — это скорость исполнения кода. Python считается довольно медленным языком программирования: это связано с особенностями структуры интерпретатора языка и его динамической природой. Чтобы повысить производительность, разработчики либо переписывают «тормозящий» кусок кода на C или Cython (транслятор Python-кода в C), либо используют PyPy — альтернативный интерпретатор языка программирования Python (его название расшифровывается как Python, написанный на Python).
Разработчики часто говорят, что на Python можно написать всё, даже сам Python.
В принципе, это нормально в сегодняшней практике: компилятор Rust тоже пишут на Rust, а компилятор Golang — на Golang.
Обновления PyPy чуть отстают от обновлений основной версии интерпретатора Python. Например, актуальная версия Python — 3.8, а PyPy — ближе к версии 3.5 с некоторыми фичами из 3.6.
Можно выделить следующие принципы ускорения при разработке на Python:
- у Python много библиотек, нужно выбрать подходящую и проверенную в решении аналогичных задач, т. к. иногда они уже написаны на C и имеют высокую производительность в решении поставленных задач;
- чтобы ускорить небольшую проблемную часть кода, можно переписать её на Cython (это транслятор, «промежуточный слой» для Python в C/C++);
- для ускорения больших частей кода, написанных на Python, помогает использование PyPy, если код нечувствителен к версии языка (Django-проекты уровня enterprise часто стартуют именно на PyPy).
PyPy крут технологией JIT-компиляции (just-in-time compilation).
JIT (сокр. от англ. just-in-time) — точно в срок.
Функции, которые есть в программе, на лету будут компилироваться в машинный код, ускоряя работу программы с последующим использованием. При этом не надо переписывать код, просто нужно иметь в виду понижение версии.
Однострочные анонимные функции и пайплайны
В Python анонимные функции (лямбда-функции, функции без названия) — однострочные. Разработчикам иногда не хватает многострочных лямбд, но они никогда не появятся, т. к. это противоречило бы идеологии Python.
Пайплайны — это последовательное исполнение функций с последующей передачей данных из предыдущей.
На Python приходится писать последовательность примерно следующим образом.
В каком-нибудь другом языке программирования (скажем, Elixir) это выглядело бы проще.
Это не отражается на производительности кода, но причиняет некоторые неудобства разработчикам, мешая соблюдать методологию функционального программирования.
Бизнес-задачи, которые решает разработка на Python

Типичные задачи на разработку, которые успешно решаются на Python:
- корпоративный сайт (каталог, интернет-магазин);
- системы для корпоративного обучения и проведения хакатонов;
- системы распознавания образов (фотографий, изображений, лиц);
- системы распознавания документов (OCR, машинное зрение);
- управление сервисами печати со сложными маршрутами;
- асинхронные модули для существующих систем (транспортные модули, платёжные шлюзы).
Сегодня один из трендов в разработке на Python — его использование для написания микросервисов. Микросервисы, в разработке которых чаще всего применяют Python:
- для машинного обучения (да, такие возможности есть и у R, и у Scala, но именно Python считается общепринятым стандартом большого комьюнити в этом вопросе);
- для обработки объектов с запросом и ответом (request
- все должны пройти онлайн-регистрацию;
- можно создать свою команду, вступить в чужую или участWowать в одиночку;
- проверка правильности ответов должна быть автоматической.
С помощью этой платформы участники отправляют свои ответы. Система валидирует ответы каждого участника, сравнивает их с идеальным решением, проверяя при этом соблюдение большого количества условий. Каждому решению проставляются оценки, на основе которых формируется список лидеров. По завершении хакатона система автоматически определяет победителей.
SPA (сокр. от англ. single page application) — одностраничное приложение.
Для решения этой задачи мы использовали SPA (Vue.js + Nuxt.js) + Django (это фреймворк Python). SPA общается с backend’ом через API.
Почему именно Python?
Это решение нравится нам своей гибкостью: в отличие от громоздкой архитектуры с десятками тысяч строк кода, здесь можно гибко управлять всеми сущностями, не переживая за перекрытие кода.
Все сущности можно создать и описать очень быстро и мгновенно получить доступ к данным через API.
В результате нам удалось разработать готовую к высоким нагрузкам платформу с нужным функционалом для проведения хакатона. Система поддерживает определённый свод правил. Есть админ-панель с отображением результатов, выгрузкой статистики и прочих данных.
Где ещё используется Python
Можно сказать, что Python сейчас «в моде» (хотя поклонники Go или Dart могут поспорить), и многие разработчики с удовольствием пишут на нём.
Расскажем об интересном примере, как наши коллеги из frontend’а попробовали писать на Python.
Недавно к нам пришёл заказчик, backend на проекте которого написан на PHP. Стояла задача — переделать его на Django. Чтобы состыковать back и front, frontend-разработчики за два дня изучили синтаксис Python, за третий день — документацию Django, а на четвёртый влюбились в Python и теперь не хотят возвращаться во frontend. Очень жалеют, что Python подходит только для backend-разработки.
Не только разработчики, но и представители смежных профессий применяют Python для своих задач.
Системные администраторы могут автоматизировать процессы, используя Python вместе с Bash. Например, в сложных конструкциях, если нужно сделать скрипты на серверах, которые будут опрашивать части системы, проверять, всё ли в порядке (проводить health check).
Бизнес-аналитики часто приходят в Python, изучив стек анализа данных (pandas, Matplotlib, Jupyter). Это специфическое решение для сложных агрегаций, которое позволяет делать продвинутые дашборды, вычислять и визуализировать множество важных показателей.
Источник: kt-team.ru
