5 языков программирования, которые надо учить первыми
Содержание:
- Python
- JavaScript
- Java
- Шаг 3. Пойми, какие виды языков программирования бывают
- Критерии востребованности языков программирования
- SQL
- По принципам программирования
- Декларативное программирование
- PHP
- Особенности языка программирования
- C#
- Интервью с создателем Python. Что он думает о других языках?
- Какие языки проще, а какие сложнее?
- Машинно-ориентированные языки
- Универсальные языки программирования
- Что почитать по теории языков?
- Python (1991)
Python
Python существует на рынке с 1991 года и используется как язык программирования общего назначения. Применяется при веб-разработке, в работе с нейросетями, для анализа данных и в Data Science, для написания скриптов, игр и т.д.
Python достаточно прост в изучении, поэтому является одним из первых языков, который осваивают новички.
Преимущества Python:
- легкий синтаксис;
- большая область применения;
- кроссплатформенность;
- прост в изучении;
- средний порог вхождения;
- для него есть много библиотек и программных платформ.
К минусам Python можно отнести медленную работу программ и ограниченные возможности анализа кода.
Если сравнивать спрос на специалистов Python или PHP, то на программистов Python он меньше. Средняя зарплата для новичков составляет 60 тысяч рублей, а для профессионалов с опытом ― 160 тысяч рублей. Разработчики, владеющие знаниями о нейросетях и машинном обучении, на рынке труда оцениваются выше.
Стек технологий Python содержит следующее:
- Редактор/IDE: Pycharm.
- Для машинного обучения: Scikit-learn, Keras, Tensorflow.
- Для анализа данных: iPython/jupyter, Anaconda, Matplotlib, Pandas, Numpy, Pyspark.
- Для веб-разработки: Django, Tornado, Flask.
- Менеджер зависимостей: pip, conda.
- Cython-синтаксис – требуется для написания компьютерного кода.
Кстати, такие популярные ресурсы как YouTube и Instagram полностью написаны Python, а NASA создала систему автоматизации процессов WAS при помощи данного языка программирования.
JavaScript
Сложность: можно выучить JavaScript быстро, главное — отрабатывать теорию на практике в тренажерах (подборка хороших интерактивов и обучалок). Уже за полгода можно освоить документацию, поскольку логика у него простая и гибкая. Язык мощный, а его инструменты просты и доступны.
Профессии: Frontend-разработчик / Fullstack-разработчик / Веб-девелопер.
Продукты: Frontend сайтов программируют только на Javascript, так что он используется на большинстве сайтов.
JavaScript — язык веб-разработок. Изначально на нем можно было программировать только frontend сайтов, но сейчас, благодаря Node.js, который выступает в роли веб-сервера, можно писать и серверные приложения. Язык делает сайты интерактивными и высокопроизводительными. А чтобы эффективно использовать возможности языка для создания красочных сайтов, нужно уметь пользоваться инструментами верстки HTML и CSS, знать один из популярных фреймворков (React, Vue или Angular).
В веб-разработках сообщество большое, так как fullstack- и frontend-разработчики нужны всем. Сайтов огромное количество, мы пользуемся ими каждый день, и их всегда нужно улучшать. Кроме того, такие проекты можно вести самому с нуля вплоть до самого релиза, что тоже очень ценно, если вам привычнее инди-разработка.
Курс
Frontend-разработчик
Цель специализации — дать полный набор скилов, необходимых для погружения в реалии разработки визуальной части веб-приложений. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
Java
Консервативный и надежный язык, который подходит для разработки под любые платформы. Пожалуйста, не путайте его с JavaScript — это абсолютно разные технологии, и между ними нет ничего общего.
На Java разрабатывают десктопные программы, приложения под Android, серверные конструкции и масштабные промышленные и банковские системы. Достаточно сложный в освоении язык.
Новички могут рассчитывать на 35–60 тысяч рублей. Специалисты среднего уровня — на 50–100 тысяч. Высокий уровень — на доход 135–270 тысяч рублей.
Синтаксис простой и понятный. Методология языка — классическое объектно-ориентированное программирование. Работает на всех операционных системах. На Java можно написать ПО любой сложности — от небольшой утилиты до комплекса с миллионами строк. Кстати, если хотите писать для Android — приложения на нем делают только на Java.
Особенности:
- Разработка на Java подразумевает высокий уровень абстракции. С одной стороны, такое ПО легче поддерживать и развивать. С другой — типовые и простые вещи требуют бОльших усилий. Сравните: на PHP для чтения файла по ссылке нужна одна строчка кода. На Java придется написать пять-десять строк.
- Строгость языка. Это надежно, отсутствуют неявные конструкции, нет упрощений. С другой стороны, код очень громоздкий. Представьте, что вы продаете машину. Если говорить просто, то выйдет что-то вроде: «Вот машина. Вася продал ее Пете. Петя отдал деньги Васе». На Java все то же самое придется написать в форме договора купли-продажи — когда отдают деньги, где что в машине, какие номера двигателя, корпуса. Плюс еще масса данных. Так, чтобы не было многозначности.
- Высокий порог вхождения: синтаксис прост, примеров много, но общие принципы понять сложно. Придется очень много учиться и практиковаться. Но и возможности в итоге получите практически безграничные.
Стек:
- IDE: Eclipse, Netbeans, IntelliJIDEA, AndroidStudio;
- среда выполнения: JVM (Java Virtual Machine);
- фреймворк: Spring, Swing, Hibernate, OrmLite (для Android);
- инструменты для Android: SDK Manager, Android Emulator (эмуляторы ОС разных версий);
- базы данных: Oracle, MySQL и любые другие;
- менеджер зависимостей: Grandle, Ant, Maven.
Может показаться, что для сложного языка нужен особый талант. На самом деле ключевое — ваше желание, интерес и усердие. Никто не ценит способности в вакууме
Важно, насколько далеко вы продвинулись в обучении за последний месяц или год. Если есть интерес и желание, всё получится
Пример кода на Java — создаем окно с кнопкой
Шаг 3. Пойми, какие виды языков программирования бывают
Python
Пожалуй, самый простой язык программирования из всего списка. Минимум служебных символов, динамическая типизация, максимально понятный синтаксис. И если ты мало что понял из прошлого предложения — это повод начать обучение именно с Python. Несмотря на визуальную простоту, этот язык — один из мощнейших. На нем одинаково легко работать как с текстом, так и строить нейронные сети.
Узнай, “Почему Python — это подходящий язык для новичков”
С
Универсальный язык программирования. Популярен у программистов, потому что сочетает в себе возможности языков программирования высокого и низкого уровней. Большинство программистов используют этот язык для серьезных разработок потому, что их привлекают свобода выражения мыслей, мобильность и чрезвычайная доступность этого языка.
С++
Крайне востребованный язык почти во всех областях программирования. К примеру, если ты планируешь работать с железом, то придётся изучить библиотеки для работы с конкретными устройствами и средствами отладки.
Java
Более двух десятков лет этот язык находится в списке самых востребованных, а это уже что-то значит. Сегодня он в основном ассоциируется с разработкой приложений для Android. При помощи Java ты можешь создавать графические виджеты для веба или писать десктопные приложения. Java — великолепный язык, чтобы полноценно понять программирование.
Java Script
JavaScript сейчас везде. Это один из самых быстроразвивающихся языков современности, и он очень быстро набирает популярность. JavaScript многофункционален, на нём можно разрабатывать программы для любых платформ. Изначально использовался для создания интерактивных веб-страниц, но сейчас на нём делают и серверные, и мобильные, и десктопные приложения, и многое другое.
Swift
Swift не вполне универсален: он еще не полностью вытеснил Objective-C из приложений для Apple, но перспективы у него блестящие. С помощью Swift вы можете создавать приложения для всех продуктов Apple: macOS, watchOS, iOS и любой новой системы, если она появится.
РНР
PHP — чемпион по популярности в веб-разработке. Его широко используют в создании серверных приложений, скриптов и утилит. Вы найдёте его в сайтах многих известных компаний, например Avito, Badoo, «ВКонтакте», Wikipedia, Facebook. Иногда приходится слышать, что PHP умирает или что это ужасный язык. Не верьте — это мнение устарело.
По версии HeadHunter, работодатели чаще всего ищут backend и fullstack разработчиков.
Ruby
Один из самых молодых языков программирования и входит в десятку самых используемых. Это возможно благодаря простому синтаксису и быстрому написанию программ. Язык удобен для разработчиков, с сильной абстракцией и использованием конструкций натурального или человеческого языка.
SQL
Язык программирования, предназначенный для облегчения получения конкретной информации из баз данных. Проще говоря, SQL — это язык баз данных.
GO
Язык программирования, который был разработан корпорацией Google. Часто его еще называют «Golang» – сокращение от «Google language». Мощный, изящный и современный язык программирования, по скорости
сравнимый с C и C++, а по простоте создания кода — с Python. Используется для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах.
C#
Если ты не определился с языком, значит еще не решил, что больше привлекает: веб, мобильные или десктопные приложения. Тогда твое решение — C#, универсальный инструмент для всех направлений разработки.
Критерии востребованности языков программирования
На свете существует несколько тысяч языков программирования. Все они использовались или используются в той или иной степени. К сожалению или к счастью, развитие IT-сферы настолько стремительно, что сложно предугадать, какой язык программирования станет наиболее востребованным через месяц, год или 10 лет.
Любой язык содержит в себе большой объем информации, как и средство общения, имеет определенный свод правил и норм. Чтобы усвоить начальный уровень знаний в среднем требуется от 6 до 10 месяцев. Это сравнительно небольшой срок для освоения нового навыка. Однако за это время тенденция на рынке программирования может измениться, и изучаемый вами язык утратит свою ценность.
Все языки популярны, но в разной степени. Каждый из них подходит под определенный вид программ. Соответственно, и специалисты изучают как можно больше языков с целью охватить обширную зону спроса и стать более востребованным работником на рынке труда.
Одним из способов составления рейтинга языков программирования может быть сбор данных на основе аналитики поисковых запросов. Но и этих данных может оказаться недостаточно, так как информация порой бывает недостоверна.
Критерии востребованности языков программирования
Для лучшей систематизации языков программирования создаются специальные рейтинги. Два самых известных – это TIOBE и IEEE. Каждый из них использует свой алгоритм и критерии для оценки популярности языков. Рассмотрим поближе первый из них.
TIOBE (англ. The Importance Of Being Earnest) — самый популярный индекс по оценке спроса на языки программирования. Для его составления используются данные из поисковых систем, все запросы, в которых указывалось название того или иного языка. Каждый запрос рассматриваются отдельно и принимается решение, засчитывать его или нет. Бывает, что происходит специальная накрутка запросов.
TIOBE не предоставит данные о реальном использовании какого-то из языков, он опирается лишь на косвенные данные, помогая принять решение, ссылаясь на мнение большинства.
TIOBE собирает данные множества поисковых систем. Проще уточнить те, которые не входят в этот список, например, Яндекс и Baidu. Два крупнейших сервиса в России и Китае. Казалось бы, улетучивается множество запросов от самых купных стран. Но все же рейтинг не теряет свою актуальность.
SQL
SQL относится к универсальным языкам программирования, но является мощным предметно-ориентированным языком для управления реляционными базами данных. Способы его применения — от хранилищ данных Fortune 500 до встроенного SQLite — широко используются в десктопных и мобильных приложениях. На многих позициях в ИТ и разработке необходимо хотя бы базовое знание SQL. Расширенные навыки позволяют разработчику создавать чрезвычайно безопасные и надежные правила предметной области, не зависящие от языка программирования или используемого SDK. Высокопрофильные реализации включают в себя Microsoft SQL Server, Oracle Database и PostgreSQL. Каждая из них обладает уникальным расширением языка SQL и предлагает новые функции, выходящие за рамки базовой спецификации SQL. Изучение SQL не займет много времени и пригодится во многих областях от аналитики и обработки данных до управления в сфере ИТ и разработки программного обеспечения.
Области применения: работа с реляционными данными, встраивание данных в приложения.
По принципам программирования
По принципам программирования различают процедурные, непроцедурные языки и языки объектно-ориентированного программирования.
Процедурные языки основаны на описании последовательной смены состояния компьютера, то есть значения ячеек памяти, состояния процессора и других устройств. Они манипулируют данными в пошаговом режиме, используя пошаговые инструкции. В процедурных языках выдерживают четкую структуризацию программ, поэтому их еще называют языками структурного программирования. К таким языкам относятся Fortran, Algol, Pascal, BASIC и др.
Процедурные языки полностью удовлетворяют потребности разработки небольших программ и программ средней сложности. Но в начале 80-х годов XX века объем и сложность программ достигли уровня, который требовал новых концептуальных подходов к программированию.
Непроцедурные языка эффективны для программирования поиска данных в больших объемах, а также для программирования задач, процесс решения которых невозможно описать точно (перевод, распознавание образов). В этих языках сама процедура поиска решения встроена в интерпретатор языка. К таким языкам относятся языки функционального и логического программирования.
В конце XX в. была презентована новая методика программирования, получила название объектно-ориентированного программирования (ООП). То есть начали развиваться языки, содержащие конструкции, позволяющие определять объекты, принадлежащие к классам и имеющие средства для работы с абстрактными типами данных. К таким языкам относятся C ++, Java, C #, Python и др. Сегодня языки ООП практически вытеснили с рынка профессионального программирования процедурные языки.
Декларативное программирование
Декларативное программирование — это парадигма программирования, в которой задаётся спецификация решения задачи, то есть описывается, что представляет собой проблема и ожидаемый результат. Противоположностью декларативного является императивное программирование, описывающее на том или ином уровне детализации, как решить задачу и представить результат.
Как следствие, декларативные программы не используют понятия состояния, то есть не содержат переменных и операторов присваивания.
К подвидам декларативного программирования также зачастую относят функциональное и логическое программирование — несмотря на то, что программы на таких языках нередко содержат алгоритмические составляющие.
“Чисто декларативные” компьютерные языки зачастую не полны по Тьюрингу — примерами служат SQL и HTML — так как теоретически не всегда возможно порождение исполняемого кода по декларативному описанию. Это иногда приводит к спорам о корректности термина “декларативное программирование”.
Функциональное программирование
Основные концепции:
- отсутствие неявных побочных эффектов
- ссылочная прозрачность
- отсутствие неявного состояния
- данные и функции – это концептуально одно и то же
Основано на лямбда-исчислении
Аппликативное
Аппликативное программирование — один из видов декларативного программирования, в котором написание программы состоит в систематическом осуществлении применения одного объекта к другому. Результатом такого применения вновь является объект, который может участвовать в применениях как в роли функции, так и в роли аргумента и так далее. Это делает запись программы математически ясной. Тот факт, что функция обозначается выражением, свидетельствует о возможности использования значений-функций — функциональных объектов — на равных правах с прочими объектами, которые можно передавать как аргументы, либо возвращать как результат вычисления других функций.
Комбинаторное
Комбинаторное программирование (англ. function-level programming) — парадигма программирования, использующая принципы комбинаторной логики.
Является особой разновидностью функционального программирования, но, в отличие от основного его направления, комбинаторное программирование не использует λ-абстракцию.
На практике это выливается в отсутствие “переменных”, содержащих данные.
Логическое программирование
Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Самым известным языком логического программирования является Prolog.
PHP
PHP (Personal Home Page Tools, дословно переводится как «инструменты для создания персональных страниц») ― язык программирования с открытым исходным кодом или скриптовый язык. Он был создан в 1995 году и на данный момент является самым популярным среди веб-разработок.
PHP широко используется для создания веб-сайтов, серверных приложений, утилит, скриптов, мобильных приложений. Такие популярные сайты как «ВКонтакте», Avito, Facebook были созданы как раз при помощи PHP.
Вот почему этот язык программирования такой популярный:
- быстро читается;
- предназначен для веб-разработок;
- имеет широкую область применения;
- кроссплатформенный;
- легко изучить;
- востребованный, а значит, специалисту в этой области будет просто найти работу;
- в последние версии добавились новые возможности и синтаксис стал лучше.
Но, естественно, ничего не бывает совершенным, и PHP не исключение. К основным минусам языка относятся слабая типизация, неудобная стандартная библиотека и то, что он, в основном, ориентирован на веб-разработки.
В отличие от JavaScript, код у PHP прочитать самостоятельно с первого раза не удастся, для этого нужно знать основы языка, освоить которые реально за несколько часов.
Спрос на специалистов PHP высокий, но зарплата немного ниже, чем у разработчиков JavaScript. К примеру, новичок может претендовать на оплату, в среднем, 40 тысяч рублей, а профессионал с опытом – от 100 тысяч рублей. В любом случае, трудоустроиться в данной области не составит труда, главное – знать технологии работы с этим языком.
Набор инструментов для работы с PHP состоит из:
- Редактор/IDE: SublimeText, Atom, Notepad++, PhpStorm.
- Хранилища: Memcached, Redis, MongoDB.
- Сервера баз данных: PostgreSQL, Mysql.
- Отладчик: XDebug.
- Популярные фреймворки: Symfony, Yii, Laravel, Zend, Lumen, Silex, Slim.
- Профайлер: XHProf – оценивает время работы на каждом этапе и помогает вычислить, где программа выполняет свои функции медленно.
- Менеджер пакетов: Composer.
Специалисты в сфере веб-технологий будут востребованы еще много лет, поэтому смело можете выбирать для себя обучение PHP.
Особенности языка программирования
Язык программирования – это технический, искусственный язык, обладающий некоторыми свойствами естественного. Так, в любом из них есть лексика, синтаксис и семантика. Программист обязан соблюдать алгоритм, иначе код получится нерабочим. Схема одинакова практически для любого языка программирования – хоть для Fortran, появившегося в 50-х годах прошлого века, хоть для React 2012 года.
На данный момент существует более 8 тысяч языков программирования.
Тенденции в сфере программирования:
- Регулярно появляются новые языки программирования с более простым форматом создания кода (переход на высокоуровневые системы).
- Более актуальными становятся платформы, поддерживающие облачные технологии, сайты и мобильные приложения.
- Разнообразие несколько усложняет изучение материальной части, переход на другие языки иногда затруднен из-за различий в механике.
Операторы обычно представляют собой английские слова, указывающие на то, какие операции должны активироваться при их внесении в код. Из-за этого кардинально различные языки программирования немного похожи друг на друга. Они отличаются только синтаксисом или подходом, парадигмой.
C#
C# — универсальный, гибкий и многофункциональный язык от Microsoft. Он позволяет программистам писать всё — от системных приложений до сайтов.
Microsoft активно поддерживает C# и даже создала для него библиотеку ML.NET, которая содержит всё необходимое для работы с машинным обучением. Компания активно обкатывала библиотеку на протяжении десяти лет и только после этого выложила в открытый доступ. По замыслу разработчиков, она должна стать альтернативой многочисленным библиотекам Python и сделать C# ведущим языком в ML. Но пока это только мечты — прямо сейчас найти работу в сфере искусственного интеллекта на C# не так просто.
Интервью с создателем Python. Что он думает о других языках?
Где смотреть: запись прямого эфира на YouTube.
Зачем смотреть: чтобы узнать немного об истории создания Python, планах на будущее и отношении Гвидо ван Россума к другим языкам.
Создатель Python ещё в мае дал интервью Microsoft. Он рассказал, что думает о Rust, Go, Julia и TypeScript.
- Rust, по его мнению, — отличный язык для своих целей. Ван Россум также отметил, что в Rust неплохо решена проблема с аллокацией памяти — в отличие от того же С++.
- Язык Go он назвал «самым питонистым» языком общего назначения.
- Julia, по мнению Гвидо, тоже напоминает Python — но с некоторыми отличиями. Поэтому он не советует программировать на Python и Julia в один день. Сравнивая эти два языка, Гвидо сказал, что в своей нише Julia явно выигрывает, зато сфера её применения не такая широкая.
- TypeScript тоже получил высокую оценку мэтра. Ван Россум признался, что Python нередко вдохновляется TypeScript, хотя и отметил, что TypeScript тоже учится у Python.
Гвидо также рассказал об истории создания Python, переходе с Python 2 на 3 и о том, планируется ли выход Python 4.
Какие языки проще, а какие сложнее?
Трудно объективно определить, какой язык проще, а какой сложнее, потому что это зависит не только от его особенностей, но и от вашего бэкграунда, желания разбираться в документации и т.д.
Относительно универсальный критерий сложности — близость языка к программированию на машинном коде. Чем ближе к нему язык, тем более он низкоуровневый. Высокоуровневые языки, наоборот, лучше адаптированы для использования программистом.
У высокоуровневых языков есть крупные стандартные библиотеки, а значит, большое количество разработанных доступных решений. Низкоуровневые языки предполагают работу с процессором, памятью и другими аппаратными ресурсами: можно контролировать всю изнанку, но из-за этого легче запутаться в синтаксисе. Впрочем, и такая классификация условна: на тему того, какой язык отнести к высокому, а какой к низкому уровню, ведутся споры.
Евгений Картавец:«В целом, сложность языка — довольно субъективный вопрос. Для изучения с нуля лучше всего подходят Python и JavaScript. PHP, Swift и Kotlin — немного сложнее. Java и C# — еще сложнее. C++, на мой взгляд, самый сложный. Go — достаточно простой язык, но у него сложная сфера применения, поэтому проще всего на него переходить с другого языка».
Машинно-ориентированные языки
Компиляторы никогда не станут такими же умными, как люди, они не могут читать мысли программиста. Поэтому для написания максимально эффективной программы, которая идеально реализует замысел программиста, придется писать в машинных кодах.
Дональд Кнут в своей классической книге «Искусство программирования» приводил такой довод в пользу низкоуровневых языков: «Например, некоторые комбинаторные вычисления нужно повторять триллионы раз, и мы сэкономим приблизительно 11,6 дней работы за счет того, что сократим время вычислений во внутреннем цикле всего на одну микросекунду». Даже один сэкономленный такт вычислений дает огромную экономию в крупном масштабе!
Если вам попалась невероятно эффективная и быстрая программа — она наверняка написана с применением низкоуровневого языка.
Универсальные языки программирования
Если необходимо просто освоить программирование без упора на специфику будущих разработок, востребованность на рынке и тренды – следует делать первые шаги в программировании, изучая языки общего профиля – те, которые помогут в любой ситуации. Подобные языки программирования сочетают в себе простоту изучения и функциональность, необходимую начинающему пользователю.
Python |
Hypertext Preprocessor (PHP) | C# |
Подходит для создания программ и сайтов |
Широкие возможности при небольшом количестве кода |
Универсальный язык программирования с разными версиями для разработки десктопных и мобильных приложений, а также веб-программирования |
Формирует у пользователя собственный стиль написания кода |
Подходит для создания программ, приложений, динамических и статистических веб-страниц |
Создан компанией Microsoft, сочетает в себе простоту и надёжность |
Большая база модулей позволяет быстро освоить основные алгоритмы |
Большая библиотека модулей |
Подходит для создания огромного количества приложений для всех платформ |
Отличная база для освоения более сложных языков программирования |
Модули легко модифицируются под нужды конкретного пользователя |
Возможно использование для баз данных |
Минимальный набор служебных символов |
Если говорить о том насколько актуальны и востребованы универсальные языки программирования, то наиболее классический, но постепенно ослабляющий свои позиции – Python, однако для него создано огромное количество самоучителей, что способствует быстрому изучению. А вот самый востребованный — C#, ведь он стал отличной базой для изучения более сложных языков программирования и при этом позволяет создавать даже сложные приложения, в том числе и игры.
Что почитать по теории языков?
Где читать: обсуждение на Reddit.
Зачем читать: чтобы найти книги по теории программирования для начинающих.
В другом обсуждении на Reddit участники сообщества собрали классные рекомендации книг, в которых не слишком сложным языком описаны основы теории языков программирования.
- «Типы в языках программирования» Бенджамина Пирса: хорошее введение в теорию, которое советуют многие. В отличие от остальных книг, она переведена на русский язык. Правда, Пирс написал её в 2002 году, поэтому она не освещает ряд актуальных тем.
- Practical Foundations for Programming Languages («Практические основы языков программирования») Роберта Харпера. Эту книгу советуют читать уже после Пирса: в ней разобраны более подробные детали и для новичка она может быть сложновата.
- Concepts in Programming Languages («Концепты в языках программирования») Джона Митчелла — книга рассказывает о традиционных парадигмах программирования и больше сосредоточена на практике, а не на теории.
- Programming Languages: Application and Interpretation — книга бесплатна и доступна онлайн.
Python (1991)
В каком-то смысле Python — противоположность C: если там «сложно, зато производительно», то здесь «просто, зато к производительности есть вопросы».
Такое категоричное заявление требует уточнений. Во-первых, о простоте: свои хитрости здесь тоже есть, но они не так болезненны для новичков. С какими-то языками сразу врезаешься лицом в стену из непонятных терминов и теряешь всё желание что-то делать, а здесь начинаешь с куда более простого и понятного кода. Для многих базовых задач предоставлены встроенные способы решения, Python называют «языком с батарейками в комплекте». Неудивительно, что его часто рекомендуют в качестве первого языка, и он стал очень популярен в образовании.
Что же до производительности, то Python действительно проигрывает и C++, и многим другим языкам. Но порой его называют «медленным» презрительно, а вот это уже зря. Вспомним слова о том, что языки хороши или плохи не сами по себе, а применительно к задачам. Да, есть задачи, для которых Python не подойдёт — но есть и такие, где разница в скорости между ним и другим языком вообще не будет заметна. У Python есть свои области применения, для которых он достаточно хорош.
Что это за области? Ещё давно Python полюбили учёные — и теперь с его помощью занимаются такими околонаучными вещами, как машинное обучение и data science. В бэкенде веб-сервисов его тоже используют. Про образование уже сказано. А помимо разработки, его любят в системном администрировании — там он отлично подходит для мелких утилит.
Вакансий с упоминанием Python много, но здесь есть нюанс. Порой этот язык называют «вторым лучшим для любой задачи»: всегда удобный вариант, но всегда уступающий чему-то. Из-за этого Python зачастую используют не как основной язык какого-то проекта, а «в дополнение». Поэтому в части случаев может получиться, что в вакансии он вроде и упомянут, но не как основное требование, а как бонус — и его знания недостаточно, чтобы откликнуться на неё. Так что для первых этапов обучения он точно подходит хорошо, а вот насчёт трудоустройства смотрите ситуацию в своём регионе.