Стоит ли учить Python? Пояснение о backend- и frontend-коде. Как изучать машинное обучение

Меня порой посещают различные идеи по саморазвитию. Это бывают совершенно разные мысли по поводу того, что мне стоило бы освоить, чему научиться, что понять. И вот в один из таких моментов, я задумался о изучении программирования. Я начинал с языка Pascal, актуального в то время, а сейчас, уже изучив порядка 3-х языков, задумался, а стоит ли изучать Python?

Из этой статьи вы узнаете:

Я, Гридин Семён, приветствую всех читателей моего блога kip-world. Вы давно думаете о том, чтобы начать изучать программирование? Может быть вы размышляете на тему того, как же язык программирования выбрать для начала?

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

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

Я составил для вас небольшую «микростатью-рассуждение» для размышлений.

Стоит ли учить Python?

Думаю, ни для кого не секрет, что буквально еще 5-6 лет назад, первым языком для изучения программирования в любой школе был Pascal. Pascal замечательный язык своей эпохи, но, к сожалению или к счастью, он своё отжил и теперь как первый язык программирования это разумный выбор для каждого начинающего программиста!

Вы возможно сейчас зададитесь вопросом: «А почему стоит изучать Python как первый язык программирования?» В этом нет никакой тайны, как и нет загадки.

Преимущества языка программирования Python

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

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

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

Программисты просто обожают этот язык за краткость и простоту кода. Там где в языке JavaScript или C++ вам потребуется написать две-три страницы, в Pythone вы уложитесь всего в одну!

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

Давайте подведем небольшой итог:

  • Python – это полноценный и многофункциональный язык программирования
  • Этот язык применяется в самых различных сферах, в том числе в web-программировании
  • Это идеальный язык для того, чтоб начать своё становление как программиста, потому что он понятен и прост в использовании
  • Является любимым языком множества профессиональных программистов

И если у кого-то все ещё остались вопросы: «Стоит ли изучать Python?», «Подходит ли этот язык для начинающих?», «Смогу ли я, выучив этот язык устроиться на хорошую работу?» Мой ответ: «Определенно да! Учите данный язык, независимо от того, начинающий вы программист или уже бывалый. Он вам точно пригодится и поможет в вашей деятельности!»

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

P.S. А какой язык по вашему подходит для начала? Может быть кто-то дал вам другие советы? Я был бы очень рад мнению со стороны в комментариях!

  • Python ,
  • Разработка веб-сайтов
  • Если вы будете искать ответ на вопрос: «Какой язык программирования выбрать первым», то где-то в 90% всех случаев вам будет предложен Python - как наиболее простой в изучении язык. И очевидно, что определенное число людей, которые до этого не учили программирование, выберут Python из-за этих рекомендаций. И вот тут у нас начинается проблема, о которой пойдет речь ниже. Конечно, с описанием того, как я дошел до такой жизни.

    О себе

    Еще в студенческие годы я понял, что моя специальность не такая уж радужная, как мне казалось в 18 лет. Поэтому я стал думать о том, как заработать адекватные деньги. И наслушавшись историй о том, как мой двоюродный брат получал безумные на то время деньги в 1С, я также решил связать свою жизнь с IT.

    Изначально это были шаблонные сайты на конструкторах и wordpress, потом я занялся SEO, и в один момент наткнулся на Хабр, после чего решил стать полноценным программистом. Высшей математики у меня не было, поэтому я решил выбрать сферу, где она не требуется – веб-разработка.

    У меня появился очевидный вопрос: какой язык выбрать – php/python/ruby. Насмотревшись статей на Хабре, почитал хейт в сторону php, посмотрев пару мотивационных роликов от Yandex. Я выбрал Python. Преимущества языка, я надеюсь, вы знаете, поэтому не буду про это говорить.

    Первичное обучение языку

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

    1) Изучил книги:

    • Марк Лутц - Изучаем Python
    • Марк Лутц - Программирование на Python
    • Чед Фаулер – Программист Фанатик
    • Билл Любанович – Простой Python
    2) Изучил множество роликов от Украинских/Буржуйских авторов по Django
    3) Прошел курс от codeacademy
    4) Освоил PyCharm

    Свой первый проект

    Далее у меня появилась идея небольшого сервиса на весьма специфичную тематику, который я решил сделать, чтобы закрепить знания Python + Django.

    В создания сайта я

    1) Изучил книги:

    • Джон Дакетт - HTML и CSS. Разработка и дизайн веб-сайтов
    • Дэвид Флэнаган - JavaScript. Подробное руководство
    • Бен Форта - Освой самостоятельно SQL.
    2) Изучил документацию Django под свои задачи
    3) Изучил деплой проектов на Django Gunicorn + nginx + centOS

    Свой первый нормальный проект

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

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

    После прочтения книги «Percival H. - Test-Driven Development with Python», решил написать тесты сначала на основе компонентов Django, потом поднял документацию селениума, и уже сделал внешние тесты.

    Я хочу быть крутым

    Открыв вакансии по Python-Django разработчикам, я посмотрел что еще обычно требуется в таких вакансиях:
    • Django Rest Framework
    • Celery
    • Tornado/Twisted/ asyncio (На выбор что-то одно)
    • Class-based view Django
    • Angular/React (На выбор что-то одно)
    Потратил 3 месяца на знакомство/пробование с этими штуками. Также поднял стандартную библиотеку Python + внешняя библиотека для парсинга beautifulSoup.

    Ты не тру без C/C++

    Бытует мнение, что без знания C/C++ программист не может называть себя программистом. Поэтому когда у меня было свободное время, я познакомился с книгами:
    • Брайн Керниган – Язык программирования С
    • Стенли Б ЛиппМан – Язык программирования С++. Базовый курс
    Прочитал книги, поковырялся с кодом, посмотрел на компиляцию, посмотрел примеры кода. В общем, теперь я не делал большие глаза при упоминании ссылок, указателей, сортировок, ООП и туче разных массивов с разными скоростями обработки элемента, в зависимости от его позиции.

    Я готов к бою!

    И вот тут мы приходим к самому важному моменту. Потратив в общей массе 2 года на изучение всех элементов веб-программирования, о которых я говорил выше. Я посчитал себя достаточно готовым, чтобы претендовать на позицию веб-разработчика на Python. Конечно, что-то я знал не очень хорошо, что-то поверхносто, а что-то вообще не знал (например, Flask), но общее понимание и навыки были неплохими.

    И вот тут начались проблемы с Python, на которых люди чаще всего не заостряют внимание. А именно на востребованности бизнеса в Python-разработчиков junior/pre-middle уровня.

    С этим вопросом я вышел на рынок

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

    1. Сразу идет большой отсев вакансий, где Python является исключительно вспомогательным языком. Чаще всего это позиции Java-разработчиков, Системных Администраторов, QA-Автоматизация. Также сейчас идет большой отсев по Data Learning, где требуется мат-образование + язык R. Т.е. с одним Python вы эту вакансию не сможете подобрать.

    2. Оказалось, что в моем городе вакансий под Python нет, от слова вообще нет. Расширив поиск по всей области, я также получил неудовлетворительный результат. Пару вакансий на PHP, где Python шел «будет плюсом». Открыв фильтр за последние 3 года, я также обнаружил, что вакансий на Python не было вовсе. Т.е. бизнес в провинции чаще всего выбирает более простые и популярные технологии, нежели Python.

    3. Открыв вакансии на Python в общем поисковике, я обнаружил следующие тенденции:

    • 90% + вакансий находятся в Москве или Санкт-Петербурге
    • 90% + вакансий требуют уровень middle+ / seniour
    • ~100% вакансий junior позиций в Москве или Санкт-Петербурге (чаще всего от гигантов)
    Другими словами получилась ситуация, что если ты не живешь в Москве, Санкт-Петербурге и не собираешься ехать их «покорять», то тебе практически негде получить свою первую работу.

    Конечно, есть пару очагов, где Python еще используется, например, в Казани. Но чаще всего это какая-то одна фирма, где с Вакансиями тоже весьма middle+ / seniour.

    4. Вариант поиска удаленки на текущий уровень также показал, что работодатели не готовы идти на такой риск. Мало опыта + удаленка = это какая-то фантастика.
    Тем не менее, я все же смог найти пару вариантов, но уже в ходе первичного собеседования стало понятно, что это ерунда по типу: «Ты у нас три месяца поработай, и если клиент заплатит за твою работу, мы тебе тоже заплатим». Не самый лучший вариант.

    5. Поговорил с парой HR из крупных компаний, они высказали такую тенденцию. «Мы обычно берем людей с опытом на Python от года, плюс опытом на другого языке (3+ года). Чаще всего php/Java». Другими словами, они вообще не рассматривали варианты, чтобы взять человека с одним лишь Python.

    6. Поговорив с ребятами с профильных форумов, стало понятно, что это достаточно типичная ситуация. Из их рассказов стало понятно, что люди после тщетных поисков либо шли работать на php/1c, либо как-то пролазили через upwork/собственный проект/автоматизацию тестирования.
    Но опять же от случая к случаю.

    В общем, оказалось, что Python – это отличный язык, который позволяет делать мощные проекты. И так уж сложилось, что их концентрация находится в столицах. И раз это сложные проекты, то и сотрудники туда требуются уже уровня middle+. Готов ли человек, который только что изучил Python получить такую вакансию? Трудно!

    Но есть другой путь!

    В настоящий момент только в моем городе находится 24 вакансии на php различного уровня (начиная от небольших компаний, которым нужно поддерживать текущий сайт, заканчивая гигантами e-commerce, которые предлагают последовательное расширение функционала). И примерно столько же вакансии на 1С. И где-то на половине из этих вакансий готовы взять человека, который хотя бы что-то знает в программировании. Скорее всего, это не самые лучшие места, но это уже первая работа, после который вы официально для HR станете программистом с опытом.

    Так что в итоге

    Получается ситуация, что можно изучить клевый язык программирования Python и остаться на улице. А можно выучить «ненавистный» php/1c и получить работу. Качество этой работы, конечно же, оставляет много вопросов – но это уже опыт.

    Что касается меня, то в моих условиях (не ехать в Москву/СПб) я фактически потратил время на изучение языка, который сейчас востребован исключительно в моих собственных проектах. Найти работу на месте или удаленке у меня не получилось. Сейчас иду в сторону php, так как на нем банально есть работа.

    Поэтому если вы не живете в Москве, СПб, не являетесь студентом тех-вуза, то я бы не советовал вам учить Python первым языком. Обратите внимание на PHP – под него всегда есть места, есть работа, есть опыт. А дальнейший путь развития уже за вами.

    P.S. Как подсказал мне мой знакомый, на Ruby почти такая же ситуация. Но тут я уже говорить с уверенностью не могу.

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

    Основные отличия:

    • Flask обеспечивает простоту, гибкость и полный контроль над проектом. Он позволяет пользователю самостоятельно решать, как реализовывать те или иные вещи.
    • Django – это сервис типа «все включено». Из коробки в нем уже есть админ-панель, интерфейсы баз данных, ORM (объектно-реляционное отображение) и структура каталогов для ваших проектов.

    Что выбрать?

    • Выбирайте Flask, если хотите получить больше опыта и возможностей для обучения. Или в том случае, если вам нужен максимальный контроль над всеми используемыми компонентами, например, базами данных.
    • Выбирайте Django, если вас интересует конечный продукт. Особенно, если вы работаете с простыми приложениями, такими как новостной сайт, магазин, блог, и хотите, чтобы каждая задача решалась одним предельно ясным способом.

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

    Flask из-за своей гибкости лучше подходит для создания REST API .

    С другой стороны, если стоит задача сделать что-то просто и быстро, вероятно, стоит выбрать Django.

    Data Science: машинное обучение, анализ данных и визуализация

    Прежде всего, следует разобраться, что такое .

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

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

    А здесь она должна увидеть стол.

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

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

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

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

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

    • scikit-learn из коробки имеет несколько встроенных популярных алгоритмов обучения;
    • TensorFlow – это более низкоуровневая библиотека. Она позволяет создавать пользовательские алгоритмы.

    Новичкам в машинном обучении лучше начать со scikit-learn. Более опытным разработчикам, которые столкнулись с проблемами эффективности, стоит присмотреться к TensorFlow.

    Как изучать машинное обучение?

    Настоящие аналитики, например, в Google или Microsoft, делают то же самое, только их работа более сложная и комплексная.

    Они используют язык запросов SQL, чтобы извлекать данные из баз. Затем для анализа и визуализации применяются специальные инструменты, например, Mathplotlib (для Python) или D3.js (для JavaScript).

    Способы применения Python для анализа и визуализации данных

    Одна из самых популярных библиотек для визуализации – Mathplotlib .

    Новичкам следует начинать обучение с нее по двум причинам:

    • низкий порог вхождения;
    • освоение Mathplotlib позволит в будущем быстрее разобраться в более сложных библиотеках, основанных на ней, например, seaborn .

    Как изучать анализ данных на Python?

    С недавних пор некоторые компании начали использовать для создания настольных приложений JavaScript. Например, десктопное приложение Slack было создано с помощью JavaScript-фреймворка Electron .

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

    Python 3 или Python 2

    Python 3 – это более современный и популярный выбор.

    Пояснение о backend- и frontend-коде

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

    Если вы будете искать ответ на вопрос: «Какой язык программирования выбрать первым», то где-то в 90% всех случаев вам будет предложен Python - как наиболее простой в изучении язык. И очевидно, что определенное число людей, которые до этого не учили программирование, выберут Python из-за этих рекомендаций. И вот тут у нас начинается проблема, о которой пойдет речь ниже. Конечно, с описанием того, как я дошел до такой жизни.

    О себе

    Еще в студенческие годы я понял, что моя специальность не такая уж радужная, как мне казалось в 18 лет. Поэтому я стал думать о том, как заработать адекватные деньги. И наслушавшись историй о том, как мой двоюродный брат получал безумные на то время деньги в 1С, я также решил связать свою жизнь с IT.

    Изначально это были шаблонные сайты на конструкторах и wordpress, потом я занялся SEO, и в один момент наткнулся на Хабр, после чего решил стать полноценным программистом. Высшей математики у меня не было, поэтому я решил выбрать сферу, где она не требуется – веб-разработка.

    У меня появился очевидный вопрос: какой язык выбрать – php/python/ruby. Насмотревшись статей на Хабре, почитал хейт в сторону php, посмотрев пару мотивационных роликов от Yandex. Я выбрал Python. Преимущества языка, я надеюсь, вы знаете, поэтому не буду про это говорить.

    Первичное обучение языку

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

    1) Изучил книги:

    • Марк Лутц - Изучаем Python
    • Марк Лутц - Программирование на Python
    • Чед Фаулер – Программист Фанатик
    • Билл Любанович – Простой Python
    2) Изучил множество роликов от Украинских/Буржуйских авторов по Django
    3) Прошел курс от codeacademy
    4) Освоил PyCharm

    Свой первый проект

    Далее у меня появилась идея небольшого сервиса на весьма специфичную тематику, который я решил сделать, чтобы закрепить знания Python + Django.

    В создания сайта я

    1) Изучил книги:

    • Джон Дакетт - HTML и CSS. Разработка и дизайн веб-сайтов
    • Дэвид Флэнаган - JavaScript. Подробное руководство
    • Бен Форта - Освой самостоятельно SQL.
    2) Изучил документацию Django под свои задачи
    3) Изучил деплой проектов на Django Gunicorn + nginx + centOS

    Свой первый нормальный проект

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

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

    После прочтения книги «Percival H. - Test-Driven Development with Python», решил написать тесты сначала на основе компонентов Django, потом поднял документацию селениума, и уже сделал внешние тесты.

    Я хочу быть крутым

    Открыв вакансии по Python-Django разработчикам, я посмотрел что еще обычно требуется в таких вакансиях:
    • Django Rest Framework
    • Celery
    • Tornado/Twisted/ asyncio (На выбор что-то одно)
    • Class-based view Django
    • Angular/React (На выбор что-то одно)
    Потратил 3 месяца на знакомство/пробование с этими штуками. Также поднял стандартную библиотеку Python + внешняя библиотека для парсинга beautifulSoup.

    Ты не тру без C/C++

    Бытует мнение, что без знания C/C++ программист не может называть себя программистом. Поэтому когда у меня было свободное время, я познакомился с книгами:
    • Брайн Керниган – Язык программирования С
    • Стенли Б ЛиппМан – Язык программирования С++. Базовый курс
    Прочитал книги, поковырялся с кодом, посмотрел на компиляцию, посмотрел примеры кода. В общем, теперь я не делал большие глаза при упоминании ссылок, указателей, сортировок, ООП и туче разных массивов с разными скоростями обработки элемента, в зависимости от его позиции.

    Я готов к бою!

    И вот тут мы приходим к самому важному моменту. Потратив в общей массе 2 года на изучение всех элементов веб-программирования, о которых я говорил выше. Я посчитал себя достаточно готовым, чтобы претендовать на позицию веб-разработчика на Python. Конечно, что-то я знал не очень хорошо, что-то поверхносто, а что-то вообще не знал (например, Flask), но общее понимание и навыки были неплохими.

    И вот тут начались проблемы с Python, на которых люди чаще всего не заостряют внимание. А именно на востребованности бизнеса в Python-разработчиков junior/pre-middle уровня.

    С этим вопросом я вышел на рынок

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

    1. Сразу идет большой отсев вакансий, где Python является исключительно вспомогательным языком. Чаще всего это позиции Java-разработчиков, Системных Администраторов, QA-Автоматизация. Также сейчас идет большой отсев по Data Learning, где требуется мат-образование + язык R. Т.е. с одним Python вы эту вакансию не сможете подобрать.

    2. Оказалось, что в моем городе вакансий под Python нет, от слова вообще нет. Расширив поиск по всей области, я также получил неудовлетворительный результат. Пару вакансий на PHP, где Python шел «будет плюсом». Открыв фильтр за последние 3 года, я также обнаружил, что вакансий на Python не было вовсе. Т.е. бизнес в провинции чаще всего выбирает более простые и популярные технологии, нежели Python.

    3. Открыв вакансии на Python в общем поисковике, я обнаружил следующие тенденции:

    • 90% + вакансий находятся в Москве или Санкт-Петербурге
    • 90% + вакансий требуют уровень middle+ / seniour
    • ~100% вакансий junior позиций в Москве или Санкт-Петербурге (чаще всего от гигантов)
    Другими словами получилась ситуация, что если ты не живешь в Москве, Санкт-Петербурге и не собираешься ехать их «покорять», то тебе практически негде получить свою первую работу.

    Конечно, есть пару очагов, где Python еще используется, например, в Казани. Но чаще всего это какая-то одна фирма, где с Вакансиями тоже весьма middle+ / seniour.

    4. Вариант поиска удаленки на текущий уровень также показал, что работодатели не готовы идти на такой риск. Мало опыта + удаленка = это какая-то фантастика.
    Тем не менее, я все же смог найти пару вариантов, но уже в ходе первичного собеседования стало понятно, что это ерунда по типу: «Ты у нас три месяца поработай, и если клиент заплатит за твою работу, мы тебе тоже заплатим». Не самый лучший вариант.

    5. Поговорил с парой HR из крупных компаний, они высказали такую тенденцию. «Мы обычно берем людей с опытом на Python от года, плюс опытом на другого языке (3+ года). Чаще всего php/Java». Другими словами, они вообще не рассматривали варианты, чтобы взять человека с одним лишь Python.

    6. Поговорив с ребятами с профильных форумов, стало понятно, что это достаточно типичная ситуация. Из их рассказов стало понятно, что люди после тщетных поисков либо шли работать на php/1c, либо как-то пролазили через upwork/собственный проект/автоматизацию тестирования.
    Но опять же от случая к случаю.

    В общем, оказалось, что Python – это отличный язык, который позволяет делать мощные проекты. И так уж сложилось, что их концентрация находится в столицах. И раз это сложные проекты, то и сотрудники туда требуются уже уровня middle+. Готов ли человек, который только что изучил Python получить такую вакансию? Трудно!

    Но есть другой путь!

    В настоящий момент только в моем городе находится 24 вакансии на php различного уровня (начиная от небольших компаний, которым нужно поддерживать текущий сайт, заканчивая гигантами e-commerce, которые предлагают последовательное расширение функционала). И примерно столько же вакансии на 1С. И где-то на половине из этих вакансий готовы взять человека, который хотя бы что-то знает в программировании. Скорее всего, это не самые лучшие места, но это уже первая работа, после который вы официально для HR станете программистом с опытом.

    Так что в итоге

    Получается ситуация, что можно изучить клевый язык программирования Python и остаться на улице. А можно выучить «ненавистный» php/1c и получить работу. Качество этой работы, конечно же, оставляет много вопросов – но это уже опыт.

    Что касается меня, то в моих условиях (не ехать в Москву/СПб) я фактически потратил время на изучение языка, который сейчас востребован исключительно в моих собственных проектах. Найти работу на месте или удаленке у меня не получилось. Сейчас иду в сторону php, так как на нем банально есть работа.

    Поэтому если вы не живете в Москве, СПб, не являетесь студентом тех-вуза, то я бы не советовал вам учить Python первым языком. Обратите внимание на PHP – под него всегда есть места, есть работа, есть опыт. А дальнейший путь развития уже за вами.

    P.S. Как подсказал мне мой знакомый, на Ruby почти такая же ситуация. Но тут я уже говорить с уверенностью не могу.

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

    А есть Питон (голос зануды про правильное название). Это язык, на котором человек общается с компьютером. С компьютером можно общаться на куче языков: Си, Паскаль, Хаскель, Го, Свифт, Руби, ПХП, Бейсик, Эрланг, Эр и много других.

    Мы тут будем учить именно Питон. Начнём с короткого обзора того, чем он отличается от остальных языков. Делать ничего не надо: прочитал, запомнил пару пунктов и всё, можно хвастаться всем, что ты в теме (не надо так).

    Лаконичность

    У Питона такое сообщество, что оно не приветствует разброда в использовании языка. Стандарт написания кода – это часть языка. Философия написания кода – тоже часть языка. Поэтому два хороших программиста напишут очень похожий код: не надо тратить время на "блин, а что он тут имел в виду?...".

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

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

    У Питона такое количество сторонних модулей, что можно сэкономить тысячи человеко-часов работы. Нужно написать сайт? Научить нейронную сеть разгадывать капчу? Скачать аудио из "Вконтакте"? Узнавать людей на фотографиях? Смоделировать полёт ракеты? Написать бота? Для всего этого есть готовые модули, их надо только установить и воспользоваться.

    Всё это делает процесс написания кода очень быстрым.

    Крутая документация

    Попробуйте загуглить , или, например . В первых результатах будет ссылка на https://docs.python.org – сайт официальной документации.

    Это потому что документация очень подробная: в ней есть материалы для новичков, доки к каждому модулю, рекомендации по использованию, подводные камни и дальнейшее чтение. И это всё – для каждой версии языка. Такой удобной и подробной документации нет ни у кого.

    А ещё есть http://stackoverflow.com/ – сайт, на котором одни программисты отвечают другим программистам на вопросы о программировании. За время его существования там были заданы все возможные вопросы. Серьёзно: любой вопрос в духе "как это сделать на Питоне" или "почему этот код не работает" уже был задан, просмотрен и отвечен.

    Всё это делает процесс изучения и написания кода быстрым: вся нужная информация находится на расстоянии одного удачного поискового запроса.

    Какого из этих вопросов нет в официальных FAQ официальной документации?

    • Why am I getting strange results with simple arithmetic operations?
    • Why is Python installed on my machine?
    • How can I implement base abstract factory class in Python?
    • Writing C is hard; are there any alternatives?

    Строгая динамическая типизация

    Динамическая типизация – значит, в одной и той же переменной в разное время могут храниться значения разных типов. Сейчас – число, потом – строка, и всё – в одной переменной.

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

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

    Может показаться, что это неудобно, но на самом деле это защищает от прорвы ошибок. Чтобы понять о чём речь, достаточно посмотреть на JavaScript, язык со слабой типизацией:

    Автоматическое управление памятью

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

    В Питоне об этом думать не надо: язык программирования всё сделает за программиста. Правда, сделает неидеально: о том, как Питон работает с памятью, надо знать.

    И ещё много всякого

    Помимо перечисленного, Питон знаменит много чем ещё: отступами, интроспекцией, дзеном, портируемостью, GIL-ом, названием.