Меня порой посещают различные идеи по саморазвитию. Это бывают совершенно разные мысли по поводу того, что мне стоило бы освоить, чему научиться, что понять. И вот в один из таких моментов, я задумался о изучении программирования. Я начинал с языка Pascal, актуального в то время, а сейчас, уже изучив порядка 3-х языков, задумался, а стоит ли изучать Python?
Из этой статьи вы узнаете:
Я, Гридин Семён, приветствую всех читателей моего блога kip-world. Вы давно думаете о том, чтобы начать изучать программирование? Может быть вы размышляете на тему того, как же язык программирования выбрать для начала?
Или, возможно, вы просто боитесь начать? Или же вы просто человек случайно наткнувшийся на мою статью? В любом случае, тут вы найдете ответы на некоторые свои вопросы!
В любом из вышеперечисленных случаев я хочу задать вам самый важный вопрос: Какие задачи вы будете решать с помощью того или иного языка?
Я составил для вас небольшую «микростатью-рассуждение» для размышлений.
Думаю, ни для кого не секрет, что буквально еще 5-6 лет назад, первым языком для изучения программирования в любой школе был Pascal. Pascal замечательный язык своей эпохи, но, к сожалению или к счастью, он своё отжил и теперь как первый язык программирования это разумный выбор для каждого начинающего программиста!
Вы возможно сейчас зададитесь вопросом: «А почему стоит изучать Python как первый язык программирования?» В этом нет никакой тайны, как и нет загадки.
Во-первых , важно знать, что данный язык программирования сейчас востребован во многих предприятиях, особенно это выражено в Москве и Санкт-Петербурге. Так что если вам повезло жить в этих городах, то с этим языком можно поискать очень интересную и высокооплачиваемую работу.
Во-вторых , это развивающийся язык программирования, различные изменения в нём происходят раз в два-три года, а это очень хороший показатель для языка программирования.
В-четвёртых , многие поддерживают скриптовый язык программирования. Вы можете общаться с внешним миром через внешние входы-выходы.
Программисты просто обожают этот язык за краткость и простоту кода. Там где в языке JavaScript или C++ вам потребуется написать две-три страницы, в Pythone вы уложитесь всего в одну!
А ещё очень важной особенностью языка Python является то, что он применяется для Web-разработок. Причем он используется не как обычный язык, а выполняет одну из интересных функций. Python для web-разработок применяется в тех случаях, когда другие языки не справляются! Это ведь очень интересный и любопытный факт. В данной сфере у языка своя собственная, личная ниша!
Давайте подведем небольшой итог:
И если у кого-то все ещё остались вопросы: «Стоит ли изучать Python?», «Подходит ли этот язык для начинающих?», «Смогу ли я, выучив этот язык устроиться на хорошую работу?» Мой ответ: «Определенно да! Учите данный язык, независимо от того, начинающий вы программист или уже бывалый. Он вам точно пригодится и поможет в вашей деятельности!»
На данной ноте я вынужден с вами попрощаться. Подписывайтесь на мой блог, рассказывайте о нём друзьям – тут будет ещё очень много интересной и важной информации!
P.S. А какой язык по вашему подходит для начала? Может быть кто-то дал вам другие советы? Я был бы очень рад мнению со стороны в комментариях!
Прежде чем начать изучать тот или иной язык программирования, люди обычно задумываются, как потом смогут применить свои знания и навыки на практике. Что касается Python, этот язык общего назначения пригодится во множестве различных сфер. Разработчик и основатель стартапа CS Dojo Ек Суги рассказал о трёх самых частых способах использования Python.
Фреймворки, основанные на Python, такие как Django и Flask , в последнее время приобрели широкую популярность среди веб-разработчиков. Эти фреймворки позволяют создавать серверный код (backend-код) на Python, который выполняется на сервере, в отличие от frontend-кода, исполняемого на пользовательских устройствах и в браузерах.
Веб-фреймворки упрощают разработку серверной логики: обработку URL, обращение к базам данных, создание HTML-файлов, которые видят в браузерах пользователи.
Два наиболее популярных веб-фреймворка для Python — Django и Flask. Их рекомендуется использовать начинающим разработчикам.
Отличную статью в ответ на этот вопрос подготовил Гарет Дуайер .
Основные различия:
Лучше воспользоваться:
Таким образом, Flask предпочтительнее использовать новичкам, потому что этот фреймворк имеет не настолько богатый функционал, а также тем, кому важна возможность настроить его по своему усмотрению. Кроме того, благодаря своей гибкости Flask больше, чем Django, подойдёт для разработки REST API. С другой стороны, если требуется создать простой продукт, быстрее это получится сделать на Django.
Машинное обучении лучше объяснять на наглядном примере. Пусть нужно разработать программу, которая автоматически распознаёт изображённые на картинках объекты. На первой картинке программа должна опознать собаку.
На второй она должна распознать стол.
Первый путь — написать для этого специальный код. Например, если на картинке много светло-коричневых пикселей, значит, на ней нарисована собака. Или можно найти способ распознавать границы предметов: если на рисунке много прямых линий, то это — стол.
Очевидно, что такое решение будет бесполезным, если на картинке показана, например, собака светлого окраса, у которой вообще нет коричневой шерсти, или только круглая столешница без ножек. Именно здесь раскрываются перспективы машинного обучения.
В машинном обучении обычно используют алгоритм, который автоматически ищет заданный образ во входных данных. Например, можно ввести тысячу картинок с собаками и тысячу — со столами. Далее алгоритм машинного обучения выявит разницу между собакой и столом. Когда алгоритм получит новое изображение собаки или стола, то сможет идентифицировать объект.
То есть систему обучают на конкретных примерах: ей не указывают отдельные признаки того или иного предмета, а показывают множество изображений и говорят, что на всех из них нарисован этот предмет. Аналогичным образом обучаются
Самые широко известные алгоритмы машинного обучения:
Любой из этих алгоритмов можно использовать для решения задачи с маркированием изображений выше.
Для Python есть популярные библиотеки и фреймворки машинного обучения. Две самые крупные из них — scikit-learn и TensorFlow . В scikit-learn встроены некоторые общеизвестные алгоритмы машинного обучения, о которых шла речь выше. TensorFlow — более низкоуровневая библиотека, которая позволяет строить пользовательские алгоритмы.
Чтобы изучить основы этой технологии, можно пройти курсы Стэнфордского университета или . Но для понимания некоторого материала понадобятся базовые знания матанализа и линейной алгебры.
Далее полученную информацию нужно закрепить на сайте Kaggle . Здесь можно соревноваться с другими разработчиками в создании лучшего алгоритма машинного обучения для различных задач. Сайт также предлагает полезные самоучители для начинающих.
В качестве примера можно взять аналитика данных воображаемой компании, занимающейся продажей товаров через интернет. Аналитик может представить результаты продаж в виде столбчатой диаграммы.
На диаграмме видно, что в заданное воскресенье покупатели мужского пола приобрели более 400 единиц товара, а женского — около 350. У специалиста может быть несколько предположений, почему возник этот разрыв.
Одно из очевидных объяснений — продукт более востребован среди мужчин, чем женщин. Другая возможная причина — недостаточно большая выборка, а разницу можно списать на случайность. Третий вариант — по какой-то причине мужчины склонны больше покупать этот продукт только в воскресенье. Чтобы понять, какое из объяснений истинно, можно нарисовать ещё одну диаграмму.
Необходимо принять во внимание статистику продаж не только в воскресенье, но и за всю неделю. Как видно из диаграммы, такая динамика прослеживается по всем дням. Этот небольшой анализ позволяет сделать вывод, что наиболее правдоподобная причина различия в продажах в том, что продукт просто более популярен среди мужчин, чем среди женщин.
Но если бы диаграмма выглядела так,
можно было бы заключить, что по той или иной причине мужчины активнее покупают этот товар только по воскресеньям.
Это очень простой пример анализа данных. И для этого компании используют в том числе Python, а для визуализации данных — библиотеку Matplotlib .
Matplotlib — одна из наиболее распространённых библиотек для визуализации данных. Начинать лучше с неё потому, что она проста, а также потому, что на ней основаны некоторые другие библиотеки, например, seaborn . Поэтому знание Matplotlib поможет в будущем освоить и их.
В первую очередь нужно выучить основы. Ек Суги предлагает собственное вводное видео в анализ и визуализацию данных на Python и Matplotlib на YouTube, а также полный практический курс на образовательной платформе Pluralsight, который можно получить бесплатно после подписки на 10-дневный пробный период на сайте. После этого полезно изучить основы статистики, например, на Coursera и Khan Academy.
Обычно под этим понимают создание небольших программ для автоматизации простых задач. Например, компании используют различные системы поддержки клиентов по электронной почте. Чтобы анализировать полученные сообщения, компаниям нужно подсчитать, какой их количество содержит определённые ключевые слова.
Это можно либо делать вручную, либо написать незамысловатую программу (скрипт) для автоматической обработки сообщений. Для подобных задач отлично подходит Python, главным образом благодаря относительно простому синтаксису и потому, что на нём можно легко и быстро писать и тестировать небольшие проекты.
На этом языке ведут программирование многие разработчики для Raspberry Pi и других аппаратных основ.
Для разработки игр можно использовать библиотеку PyGame, хотя существуют и более популярные игровые движки. На ней можно создавать любительские проекты, но для разработки серьёзных игр стоит поискать что-то получше.
Например, можно начинать с Unity на C# — это одна из самых общеизвестных сред разработки компьютерных игр. Она позволяет создавать межплатформенные игры для Windows, Mac, iOS и Android.
Десктопные приложения можно разрабатывать на Python с помощью Tkinter, но это также не самый частый выбор: разработчики приложений для ПК предпочитают языки Java, C#, и C++. В последнее время некоторые компании для этого начали применять и JavaScript. Например, десктопное приложение Slack построено во фреймворке Electron, использующем JavaScript. Этот язык даёт возможность повторно использовать код из веб-версии приложения, если такая имеется.
Лучше выбрать Python 3, потому что на сегодняшний день это более современная и более востребованная версия языка.
Есть английский язык. На нём общаются люди. А ещё – на немецком, филиппинском, испанском, греческом и прорве других.
А есть Питон (голос зануды про правильное название). Это язык, на котором человек общается с компьютером. С компьютером можно общаться на куче языков: Си, Паскаль, Хаскель, Го, Свифт, Руби, ПХП, Бейсик, Эрланг, Эр и много других.
Мы тут будем учить именно Питон. Начнём с короткого обзора того, чем он отличается от остальных языков. Делать ничего не надо: прочитал, запомнил пару пунктов и всё, можно хвастаться всем, что ты в теме (не надо так).
У Питона такое сообщество, что оно не приветствует разброда в использовании языка. Стандарт написания кода – это часть языка. Философия написания кода – тоже часть языка. Поэтому два хороших программиста напишут очень похожий код: не надо тратить время на "блин, а что он тут имел в виду?...".
У Питона такой синтаксис, что он помогает писать код очень коротко. Нет лишних скобок, длинных ключевых слов, сложных трюков и всякого такого. Описать логику, перевести на английский, разбавить отступами и синтаксисом – всё, программа готова.
У Питона такая стандартная библиотека, что она помогает выполнять кучу рутинных операций. Она поможет отправить емейл, закодировать строку, поднять веб-сервер, узнать время, удалить файл, посчитать дисперсию, заархивировать файл, вытащить данные из базы данных и ещё прорву всего всего парой строк.
У Питона такое количество сторонних модулей, что можно сэкономить тысячи человеко-часов работы. Нужно написать сайт? Научить нейронную сеть разгадывать капчу? Скачать аудио из "Вконтакте"? Узнавать людей на фотографиях? Смоделировать полёт ракеты? Написать бота? Для всего этого есть готовые модули, их надо только установить и воспользоваться.
Всё это делает процесс написания кода очень быстрым.
Попробуйте загуглить , или, например . В первых результатах будет ссылка на https://docs.python.org – сайт официальной документации.
Это потому что документация очень подробная: в ней есть материалы для новичков, доки к каждому модулю, рекомендации по использованию, подводные камни и дальнейшее чтение. И это всё – для каждой версии языка. Такой удобной и подробной документации нет ни у кого.
А ещё есть http://stackoverflow.com/ – сайт, на котором одни программисты отвечают другим программистам на вопросы о программировании. За время его существования там были заданы все возможные вопросы. Серьёзно: любой вопрос в духе "как это сделать на Питоне" или "почему этот код не работает" уже был задан, просмотрен и отвечен.
Всё это делает процесс изучения и написания кода быстрым: вся нужная информация находится на расстоянии одного удачного поискового запроса.
Какого из этих вопросов нет в официальных FAQ официальной документации?
Динамическая типизация – значит, в одной и той же переменной в разное время могут храниться значения разных типов. Сейчас – число, потом – строка, и всё – в одной переменной.
Во многих языках так нельзя: создал, мол, целочисленную переменную, вот и храни в ней целые числа. Это удобно для компьютера, но не всегда удобно для программиста.
Строгая типизация – значит, нельзя просто так производить действия с объектами разных типов. Например, строку с числом сложить не получится: сначала надо превратить строку в число, а только потом – сложить. Сам Питон такое преобразование делать не будет.
Может показаться, что это неудобно, но на самом деле это защищает от прорвы ошибок. Чтобы понять о чём речь, достаточно посмотреть на JavaScript, язык со слабой типизацией:
Управление памятью – это когда для каждой кучки данных в программе нужно руками выделить место в оперативной памяти. Следить, чтобы данные не вышли за пределы этого места. Не забыть освободить это место после того, как данные не нужны. В общем, адский геморрой.
В Питоне об этом думать не надо: язык программирования всё сделает за программиста. Правда, сделает неидеально: о том, как Питон работает с памятью, надо знать.
Помимо перечисленного, Питон знаменит много чем ещё: отступами, интроспекцией, дзеном, портируемостью, GIL-ом, названием.
Python является универсальным языком высокого уровня, который может быть расширен и встроен. Он, например, входит в комплект приложений как инструмент написания макросов. Это делает Python разумным выбором для многих задач программирования, больших и не очень, и не таким удачным для небольшого числа вычислительных задач.
Язык Python идеально подходит для проектов, требующих быстрой разработки. Он поддерживает несколько парадигм программирования, что хорошо для программ, требующих гибкости. А наличие множества пакетов и модулей обеспечивает универсальность и экономит время.
Гвидо ван Россум - создатель Python, ласково удостоенный сообществом звания «великодушный пожизненный диктатор». В конце 1980-х Гвидо нравились особенности некоторых языков программирования, но ни один из них не обладал всеми возможностями, которые бы ему хотелось иметь. В частности язык должен был обладать следующими характеристиками.
Сценарий представляет собой программу, которая управляет другими программами. Языки сценариев подходят для быстрой разработки и прототипирования, потому что они хорошо справляются с передачей данных от одного компонента к другому и избавляют программиста от таких хлопотных вещей, как управление памятью.
Сообщество пользователей предпочитает называть Python динамическим языком программирования.
Python определяет принадлежность выражений к одной группе с помощью отступов. Такая группа называется блоком кода. В других языках для этого используется другой синтаксис или знаки препинания. Например, в C символ символ { обозначает начало и } - конец последовательности команд. Наличие отступов считается хорошей практикой и в других языках, но одним из первых, в котором соблюдение отступов обеспечивается принудительно, был Python. Что это дает? Отступ делает код более удобным для чтения, а кодовые блоки требуют меньше обозначений их начала и конца и знаков препинания, которые можно случайно пропустить. Все это ведет к меньшему количеству ошибок.
Компьютеры хранят данные в единицах и нулях, но люди нуждаются в более сложных формах, таких как текст. О языке, поддерживающем сложные данные, говорят, что он поддерживает типы данных высокого уровня. Такими типами данных легко оперировать. Например, в Python строки можно разделять, объединять, переводить в верхний или нижний регистр, в них можно производить поиск и т. д. Высокоуровневые типы данных, такие как списки и словари, которые могут хранить и другие данные, обладают гораздо большими функциональными возможностями, чем другие языки.
Расширяемый язык программирования может быть дополнен. Такие языки являются очень мощными, потому что дополнения делают их пригодными для множества применений и операционных систем. Расширения могут добавлять или концепции, модули и плагины. Язык Python расширяется несколькими способами. Основная группа программистов работает над его изменением и улучшением, а сотни других пишут модули для конкретных целей.
Интерпретируемые языки выполняются непосредственно из исходного кода, написанного людьми, а программы, написанные на компилируемых языках, таких как C ++, должны быть переведены в более медленные, так как трансляция происходит на лету, но написание программ и их отладка происходит быстрее, так как отсутствует необходимость ожидать завершения работы компилятора. Они легче переносятся на разные платформы.
Можно спорить по поводу того, является ли Python интерпретируемым или компилируемым языком. Хотя во многих отношениях он работает как интерпретируемый, перед выполнением его код компилируется (как в Java), и многие его компоненты работают на полной скорости машины, так как написаны на C.
Гвидо начал писать Python во время рождественских каникул в 1989 г., и в течение следующего года он дорабатывал язык на основе отзывов своих коллег. Широкая публика увидела результат в феврале 1991 г., когда он был размещен в одной из новостных групп Usenet.
Для того чтобы начать писать программы на Python, нужно его установить. У версий Python 2.7 и Python 3.5 есть существенные различия, из-за которых программы, написанные на них, являются несовместимыми.
В компьютерах «Макинтош» данный язык предустановлен, и его версия зависит от возраста ОС. При работе в Windows придется самостоятельно установить Python. Файлы инсталляционного пакета можно выбрать на сайте python.org.
Одной из причин простоты, которой отличается программирование на Python, является то, что он поставляется с инструментами, которые помогут разрабатывать, писать и отлаживать программы.
В интерактивном режиме команды вводятся по одной строке за один раз, почти так же, как операционная система (оболочка) принимает команды из командной строки. Также можно создавать короткие многострочные программы или импортировать код из текстовых файлов или встроенных модулей Python. Для начинающих будет полезно знать, что интерактивный режим включает обширную справочную систему. Это удобный способ изучения возможностей языка программирования.
Среда разработки IDLE включает интерактивный режим и инструменты для написания и запуска программ, а также систему отслеживания имен. Среда написана на Python и демонстрирует обширные возможности языка.
Здесь можно делать практически все, что можно сделать в программе, даже писать многострочный код. Данный режим может служить:
Интерактивный режим можно использовать в качестве калькулятора, манипулировать текстом и присваивать значения переменным. Также можно импортировать модули, функции или части программ для их тестирования. Это помогает экспериментировать с объектами Python без написания длинных программ и отлаживать программы путем импортирования их частей по одной за раз.
После запуска Python в окне терминала отобразится информация о текущей версии программы, дате ее выпуска, несколько подсказок дальнейших действий и приглашение ввода >>>.
Для работы в интерактивном режиме следует ввести команду или выражение и нажать клавишу ввода.
Python интерпретирует ввод и отреагирует, если набранное требует ответа, или интерпретатор его не понимает.
Следующая команда напечатает строку. Поскольку место печати не указано, вывод происходит на экран.
Эта единственная строка является целой программой! В интерактивном режиме Python обрабатывает каждую строку введенного кода после нажатия клавиши ввода, и результат появляется ниже.
В интерактивном режиме есть два способа просмотра информации об объекте:
Результат зависит от объекта.
При использовании некоторых типов данных (целых и списков, например) эти два метода дают одинаковый результат:
Для строк результат набора команды «print имя» немного отличается от результата, полученного для ввода имени. В первом случае значение заключается в кавычки, а во втором - нет:
Когда имя относится к блоку кода (например, функции, модулю или экземпляру класса), ввод имени предоставит информацию о виде данных, имени и месте хранения.
В следующем примере создается класс с именем Message и выводится информация о
В Python строки являются последовательностями символов. Строковый литерал создается путем заключения символов в одинарные ("), двойные (") или тройные (""" или """) кавычки. В приведенном примере присваивается значение переменной x:
Строка Python имеет несколько встроенных возможностей. Одной из них является способность вернуть свою копию со всеми Эти возможности известны как методы. Чтобы вызвать метод объекта, следует использовать точечный синтаксис. То есть после ввода имени переменной, которая в данном случае является ссылкой на объект строки, нужно поставить оператор-точку (.), а затем название метода с последующим открытием и закрытием скобки:
Можно получить часть строки с помощью оператора индексирования s[i]. Индексация начинается с нуля, так что s возвращает первый символ в строке, s возвращает второй, и так далее:
Строковые методы работают как с обычными строками, так и с "Юникодом". Они производят следующие действия:
Если строки Python ограничены символами, то списки каких-либо ограничений не имеют. Они представляют собой упорядоченные последовательности произвольных объектов, включая другие списки. Кроме того, можно добавлять, удалять и заменять их элементы. Ряд объектов, разделенных запятыми внутри и есть Что это собой представляет, показано ниже - здесь приведены примеры данных и операций с ними:
В этом примере был создан список отдельных символов. Затем в конец был добавлен элемент, обращен порядок элементов, извлечены элементы по позиции их индекса, был удален элемент со значением "U" и произведена сортировка элементов. Удаление элемента из списка иллюстрирует ситуацию, когда методу remove() необходимо предоставить дополнительную информацию, а именно значение, которое следует удалить.
Помимо методов, подобных remove(), Python обладает еще одной сходной возможностью, называемой функцией. Единственное различие между функцией и методом является то, что первая не связана с конкретным объектом.
Функции выполняют действия над одним или несколькими значениями и возвращают результат. Большое их количество встроено в Python. Примеры встроенных функций:
Также есть возможность определить свои собственные функции.
Процесс создания собственной Python-функции такой. Первая строка начинается с ключевого слова def, за которым идет имя функции и аргументы (ожидаемые входные значения), заключенные в скобки, и заканчивается двоеточием. Последующие команды составляют тело функции и должны иметь отступ. Если комментарий находится вначале тела функции, он становится частью ее документации. Последняя строка функции возвращает результат:
В этом примере была создана функция под названием transcribe, которая ожидает строку, представляющую последовательность ДНК. Метод replace() возвращает копию исходной строки с заменой всех вхождений одного символа на другой. Три строки кода позволили транскрибировать ДНК в РНК. выглядит так:
Функция reverse принимает строку, создает список, основанный на ней, и изменяет его порядок. Теперь нужно сделать обратное преобразование. Объект имеет метод join (), который объединяет список, разделяя каждый его элемент значением строки. Так как разделитель не нужен, метод используется на пустой строке, представленной двумя кавычками ("" или "").
А словарь Python - что это? Он имеет те же преимущества, что и обычный бумажный словарь. Позволяет быстро найти нужное значение (определение), связанное с ключом (словом). Словари заключаются в фигурные скобки и содержат разделенную запятыми последовательность пар ключ-значение. Словари не упорядочены. Вместо этого словарные значения доступны через их ключ, а не их позицию.
Для того чтобы создавать свои собственные объекты, необходимо определить своего рода шаблон, называемый классом. В Python для этого служит оператор class, за которым следует имя и двоеточие. Тело определения класса содержит свойства и методы, которые будут доступны для всех экземпляров объектов, основанных на этом классе.
Большинство языков программирования предлагают удобные функции, но ни один из них не обладает такой комбинацией удобства и мощности, которую предлагает Python. Что это за преимущества? Вот некоторые из них:
Т.е. как, я лично разговаривал с рядом людей, которые имели свой веб-проект на Python и для захвата большой аудитории писали приложения на Kivy, и у них его даже использовали, но это имеет вид «Программист пишет то, на чем хочет».
Что касается использования, то Python используется в качестве инструмента апробации, либо на небольших задачах. Если проект большой, то обычно модель пишут на Java/Scala/C++, а специалист по обучению уже выступает в качестве консультанта/аналитика.
Сложность этого направления заключается в том, что у вас должны быть высокие знания в области математики и статистики, практически всегда будет спрашиваться высшее технические, математическое образование.
По вакансиям все довольно неплохо, но в таких вакансиях требуется не знание Python, а ваша голова.
Тем, кто хочет быстренько пощупать данное направление, советую прочитать книгу: «Vvedenie_v_mashinnoe_obuchenie_s_pomoschyu_Python_-_A_Myuller_S_Gvido_2017» - есть на торрентах, читается быстро, представление дает хорошее.
Проблема заключается в том, что вакансий в этой сфере мало, основные клиенты сидят на фрилансе, которые предлагают за фикс написать им скрипты парсинга для их говно-сайтов, спам-машин, и изредка генераторов отзывов.
Область интересная, но денег в ней мало.
Что же касается реального использования, то у вас появляется три движка Kivy, PyGame, Panda3D, если первые два больше подходят для пет-проектов, то третий реально использовался на боевых проектах неплохого качества, правда эти проекты были 2004 года. Что как бы намекает, что использование проверенных движков на других языках типа Unity или Game Maker выглядит более убедительно.
Однако незаметно сюда крадется движок Ren’Py, который внезапно стал лучшим движков для написания визуальных романов (страдальческих историй для девочек), которые неплохо окупаются даже в рамках РФ. Серия «7 демонологов Петра Великого», тому доказательство.
Вакансий в GameDev для питона естественно нет, но деньги на «стартапе» поднять можно при должной сноровке. Но надежней взять другой язык и проверенные движки.
Сила Python заключается в том, что он позволяет быстро разрабатывать комплексные веб-приложения, имеет огромное число качественных модулей, прекрасно подходит для сервисов статистики и аналитики (где, в общем, и идет для него большая часть вакансий). Данное направление занимает оставшуюся треть всех вакансий.
Отдельно хочется отметить написание ГИС сервисов на Python, которые хотя и имеют вполне адекватный инструментарий для работы с геоданными, но все же использование Java для этих целей выглядит перспективней.
2) Наиболее перспективными выглядят сферы веб-разработки и машинного обучения (аналитики), которые явно выделяют питон на фоне его конкурентов в виде PHP и Ruby. И если вы хотите изучить питон, то вам желательно сосредоточится именно на этих сферах и не тратить свое время на что-то другое. Под это есть вакансии, на этом можно построить стартап.
3) Все остальные сферы, хотя и предлагают определенные инструменты для решения проблем, но перспективность использования этих инструментов выглядит весьма сомнительно. И главное, найти оплачиваемую работу на эти сферы практически невозможно.