Какой язык программирования мне выбрать?
Евгений Картавец Программный директор SkillFactory.
При выборе профессии лучше всего ориентироваться на популярность, востребованность языка среди работодателей, сложность изучения и, конечно же, отрасли. Некоторые языки и наборы языков свойственны даже вполне определенным профессиям: например, Android-разработчику необходимы Java и Kotlin, а чтобы написать приложение на iOS, вам понадобится Swift. Вместе с программным директором SkillFactory Евгением Картавцом разбираем самые популярные языки программирования.
Освойте профессию
«Fullstack-разработчик на Python»
Как оценивают популярность языка программирования?
Почти всем известен индекс TIOBE, компании по разработке софта. Этот рейтинг основан на проценте запросов в поисковиках конкретного языка от запросов по всем языкам и ежемесячно составляется на основе данных из Google, Baidu, Wikipedia, Amazon и Ebay (внимание: Яндекс тут не учитывается). Он не показывает, какой язык лучше, а скорее помогает программистам проверить, насколько актуальные языки они используют.
Профессия / 12 месяцев
Fullstack-разработчик на Python
Создавайте веб-проекты самостоятельно
3 742 ₽/мес 7 483 ₽/мес
Индекс TIOBE — не единственный в своем роде. Вот еще несколько рейтингов, на которые можно опираться: PYPL (Popularity of Programming Language index) — рейтинг GitHub оценивает по Google Trends, к каким языкам чаще всего ищут уроки; Stack Overflow — сервис вопросов и ответов по теме программирования проводит масштабные исследования рынка и опросы разработчиков IEEE — Институт инженеров электротехники и электроники ежегодно публикует на своем сайте рейтинг языков программирования, основанный на 11 параметрах и восьми источниках, включающих соцсети и GitHub. Подробнее о популярности языков и причинах их роста мы писали на Habr. Если вы планируете изучать язык, чтобы потом найти работу с его применением, мы советуем оценивать его популярность по количеству вакансий в вашем городе. Заходите на hh.ru, набираете в поиске Python или C++, и видите количество вакансий с упоминанием языка. Пройдите наш тест и узнайте, какой язык подойдет вам лучше всего.
Какие языки проще, а какие сложнее?
Трудно объективно определить, какой язык проще, а какой сложнее, потому что это зависит не только от его особенностей, но и от вашего бэкграунда, желания разбираться в документации и т.д. Относительно универсальный критерий сложности — близость языка к программированию на машинном коде. Чем ближе к нему язык, тем более он низкоуровневый. Высокоуровневые языки, наоборот, лучше адаптированы для использования программистом. У высокоуровневых языков есть крупные стандартные библиотеки, а значит, большое количество разработанных доступных решений. Низкоуровневые языки предполагают работу с процессором, памятью и другими аппаратными ресурсами: можно контролировать всю изнанку, но из-за этого легче запутаться в синтаксисе. Впрочем, и такая классификация условна: на тему того, какой язык отнести к высокому, а какой к низкому уровню, ведутся споры.
В целом, сложность языка — довольно субъективный вопрос. Для изучения с нуля лучше всего подходят Python и JavaScript. PHP, Swift и Kotlin — немного сложнее. Java и C# — еще сложнее. C++, на мой взгляд, самый сложный. Go — достаточно простой язык, но у него сложная сфера применения, поэтому проще всего на него переходить с другого языка
Евгений Картавец,
ex-программный директор Skillfactory
Python
Сложность: подходит для неподготовленного новичка. Обилие готовых библиотек (многие из которых предназначены для работы с big data) и фреймворков, а также простой синтаксис позволяют практически сразу начать программировать. Профессии: Fullstack-разработчик / Data scientist / Data engineer / Data analyst. Продукты: Sims 4, YouTube, Instagram, Dropbox, Bittorrent. Преимущество Python — в его многогранности и широком применении. Его можно использовать как в веб-разработке (фреймворк Django, например, достаточно прост для того, чтобы новичок быстро разобрался в основах его использования) и работе с данными, так и в написании скриптов. Вы можете заниматься анализом данных для банковских систем, автоматизацией простых задач, разрабатывать приложения, совершенствовать голосовые помощники или обучать нейросеть (для этого, кстати, есть веб-сервисы типа Google Colaboratory, где можно бесплатно пользоваться мощным процессором TPU). Python сейчас все активнее набирает популярность среди программистов. Из-за простоты кода его часто используют в командных проектах, что облегчает разработчикам жизнь: можно не тратить время на разбор чужого материала.
PHP
Сложность: по синтаксису PHP близок к С и Java. Но не стоит пугаться: на самом деле это относительно легкий, гибкий и доступный новичку язык. При базовых представлениях об HTML и CSS можно сразу написать простой одностраничный сайт. Продукты: WordPress, Facebook, VK, Wikipedia. Профессии: Веб-разработчик PHP — серверный язык веб-разработок, он подходит для создания одностраничных или комплексных высоконагруженных сайтов. Он «оживляет» статичные HTML-страницы, поэтому на нем оптимально разрабатывать динамические сайты вроде соцсетей, форумов, интернет-магазинов и блогов. Мощный и высокопроизводительный PHP подходит и для проектирования баз данных тех же магазинов. Его можно использовать на многих операционных системах: язык ладит с Windows, Unix, Linux. При работе с ним нужно быть крайне внимательным, потому что из-за гибкости языка легко ошибиться в коде, а найти проблему потом бывает непросто. У PHP бесчисленное количество сообществ. На официальном сайте структурировали основные информационные рассылки. Почти в любой соцсети можно оперативно найти живое сообщество и обратиться за помощью.
Станьте веб-разработчиком и найдите стабильную работу на удаленке
Kotlin
Сложность: поскольку одной из целей создания языка было упростить Java, синтаксис Kotlin — интуитивно понятный и лаконичный. Профессии: Android-разработчик / Backend-разработчик. Продукты: Uber, Pinterest, Basecamp. Российская компания JetBrains представила язык Kotlin в 2016 году как альтернативу Java. Благодаря официальной поддержке Google он стал языком разработки приложений на Android. При этом он совместим с Java: код обоих языков можно использовать в одном и том же проекте. Помимо разработки Android, Kotlin используют и в серверных, и в клиентских приложениях для веб-разработок и backend. Сообщество Kotlin живое, хоть и немногочисленное, многие общаются на форумах или в Slack. Язык развивается не очень быстро, несмотря на открытость исходного кода.
Swift
Сложность: философия языка — простота и производительность, так что у него понятный, логичный и удобный синтаксис. В нем легко разбираться, если у вас уже есть база из высокоуровневых языков, но и без нее все не так сложно. Профессии: iOS-разработчик Продукты: Safari, Procreate, Kickstarter, VSCO На Swift создают продукты для экосистемы Apple: приложения для iOS, Mac, Apple Watch, Apple TV. В этом его преимущество и недостаток. С одной стороны, разработчики на iOS востребованы, их немного, поэтому можно будет быстро найти работу. С другой стороны, приложения сильно завязаны на своей экосистеме, и на других платформах они работают с трудом, на костылях. При этом делать функциональные и красивые приложения на Swift — проще. Разрабатывая их, вы будете сталкиваться и с UI-дизайном, и с дополненной реальностью. Swift многое взял из языка Objective-C, поэтому не лишним будет знакомство и с ним, чтобы в дальнейшем развиваться в направлении разработок для iOS. Обычно продукты Apple закрыты для сообщества, но у Swift открытый исходный код, что полезно как языку, так и комьюнити.
Go
Сложность: синтаксис Golang минимален, а широкая стандартная библиотека позволяет быстро разобраться в управлении командами. Профессии: Backend-разработчик Продукты: YouTube, архитектура Ozon, backend Wildberries Go разработали инженеры Google. Это (так же, как Swift и Kotlin) — компилируемый язык, который выступает альтернативой C++ для высоконагруженных приложений. На нем можно писать сетевые приложения на промышленном уровне, поэтому на Go все чаще обращают внимание крупные ритейлеры (вроде Ozon). По сравнению с остальными языками, этот — очень молодой (2009 год), но у него достаточно быстро растущее комьюнити, которое взаимодействует по Google-рассылке.
JavaScript
Сложность: можно выучить JavaScript быстро, главное — отрабатывать теорию на практике в тренажерах (подборка хороших интерактивов и обучалок). Уже за полгода можно освоить документацию, поскольку логика у него простая и гибкая. Язык мощный, а его инструменты просты и доступны Профессии: Frontend-разработчик / Fullstack-разработчик / Веб-девелопер. Продукты: Frontend сайтов программируют только на Javascript, так что он используется на большинстве сайтов. JavaScript — язык веб-разработок. Изначально на нем можно было программировать только frontend сайтов, но сейчас, благодаря Node.js, который выступает в роли веб-сервера, можно писать и серверные приложения. Язык делает сайты интерактивными и высокопроизводительными. А чтобы эффективно использовать возможности языка для создания красочных сайтов, нужно уметь пользоваться инструментами верстки HTML и CSS, знать один из популярных фреймворков (React, Vue или Angular). В веб-разработках сообщество большое, так как fullstack- и frontend-разработчики нужны всем. Сайтов огромное количество, мы пользуемся ими каждый день, и их всегда нужно улучшать. Кроме того, такие проекты можно вести самому с нуля вплоть до самого релиза, что тоже очень ценно, если вам привычнее инди-разработка.
Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все
C#
Сложность: C# изначально перенял синтаксические конструкции языков C++ и Java, так как его разработали специально, чтобы упростить последние. У него хороший набор фреймворков (.Net, Xamarin) и библиотек. Профессии: Разработчик игр / Fullstack-разработчик / Backend-разработчик. Продукты: Это универсальный язык программирования. На нем можно писать серверную часть сайтов, десктопные приложения, серверные приложения и даже игры. На российском рынке популярен движок Unity 3D, который позволяет на языке C# писать игры для любых платформ: для PC, мобильных устройств, приставок или VR. На нем удобно писать оконные приложения и веб-приложения или даже корпоративное программное обеспечение (например банковское обслуживание). Так как язык входит в пятерку самых популярных, он узнаваем, и в целом из-за обширной синтаксической семьи C# его сообщество масштабное и активное. Вы можете быть как инди-разработчиком, так и работать в команде — у вас всегда найдутся единомышленники и помощники.
C++
Сложность: синтаксис у C++ устроен сложнее, чем у тех же Python или C#. Однако использование языковых средств и концепций этого языка даст лучшее понимание теории программирования и может облегчить изучение других языков в дальнейшем. Профессии: C++ разработчик / Разработчик игр Продукты: на нем написан движок REDengine, на котором создали «Ведьмака» и Cyberpunk 2077, CCleaner, продукты Adobe, Autocad, Telegram, Microsoft 365 C++ — это один из фундаментальных языков программирования. Он быстрый, на нем вы можете заниматься оптимизацией, архитектурой ПО, решать задачи по автоматизации процессов, создавать системы моделирования. На нем можно писать с нуля программы, антивирусы, драйверы — все, что ближе к железу. Продукты, которые требуют более глубокого понимания основ программирования (роботы, нейросети), лучше создавать на C++. Из-за сложности языка сообщество программистов более сплоченное: активнее делится кодами и библиотеками языка. Можно даже наткнуться на горячие споры: кто-то считает, что C++ идеален в качестве первого языка, а другие относятся к языку со скепсисом и не видят смысла изучать его первым.
Java
Сложность: Сложнее, чем Python, но проще, чем C++. Довольно сильно похож на C# как по синтаксису, так и по сложности освоения. А большое количество обучающих материалов разного уровня доступно бесплатно. Профессии: Тестировщик ПО / Android-разработчик/ Java-разработчик. Продукты: архитектура Netflix, Spotify, Uber, веб-приложение Twitter Java стал вездесущим из-за своей универсальности и надежности. Про него слышали даже те, кто далек от программирования, потому что на языке написаны продукты, которыми мы пользуемся каждый день (Android-приложения, игрушки, десктопные ПО, банковские системы). Он кроссплатформенный, благодаря JVM (Java Virtual Machine) его можно запускать везде. Его чаще используют в компаниях, а не в инди-проектах. У Java одно из самых мощных сообществ. Вы сможете найти много разных проектов с открытым исходным кодом, обратиться за помощью и использовать готовые решения для своих кодов, развивая и совершенствуя их. Тест: Какой язык программирования вам подойдет?
Java-разработчик
Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.
Пять самых сложных языков программирования на свете
У всех нас только и разговоров, что о C, C+, Java, Python и так далее, а между тем, в природе существуют языки, который можно назвать не просто сложными, а недоступными для понимания большинства программистов. Они называются эзотерическими языками программирования (или эзолэнгами, от скоращенного esolang).
Эзотерические языки служат не для того, чтобы выполнять обычные задачи программирования. Они создаются, чтобы провести проверку концепции или просто в развлекательных целях.
Ниже я привожу список из пяти самых головоломных языков программирования (примечание переводчиков: если у вас есть более достойные претенденты, которые не упоминаются у автора, будем рады услышать о них в комментариях). Я попытался написать программу ‘Hello World!’ на каждом из них – было весело.
Malbolge
Этот язык был придуман в 1998 году Беном Олмстедом. Его принято считать самым сложным из всех существующих. Говорят, что сам автор не написал ни единой программы на своём детище. Код, выводящий на экран слова Hello World!, появился спустя целых два года после того, как Олмстед завершил работу над языком.
Вот фрагмент кода для выведения на экран текста Hello World! на Malbolge:
(=|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc
И вот что он выдаёт:
Этот и все следующие отрывки кода написаны автором и запущены на tio.run
INTERCAL
Джим Лайон и Джон Вудс разработали INTERCAL в 1972 году в качестве пародии на целый ряд языков программирования. Изначально он назывался «компилируемый язык, у которого нет произносимых сокращений».
В INTERCAL специально внедрялись особенности, рассчитанные на то, чтобы усложнять жизнь программисту. Например, в нём применяется модификатор PLEASE и подобные. Компилятор может забраковать код, если PLEASE встречается в нём без должной регулярности. Объяснение? «Недостаточно вежливо». Если же модификатор PLEASE появляется в коде чересчур часто, компилятор отклоняет код как «слишком вежливый».
Вот фрагмент кода для выведения на экран текста Hello World! на INTERCAL:
DO ,1
И вот что он выдаёт:
Brainfuck
Brainfuck появился в 1993 году стараниями Урбана Мюллера, который замышлял его как развлечение для других программистов. Уже из названия понятно, что язык ставит своей целью максимально затруднить понимание происходящего для того, кто с ним работает.
Весь язык состоит из восьми отдельных символов, которые и используются для реализации любых операций. Первый компилятор, который Мюллер разработал сам, тянул всего на 296 байт.
Вот фрагмент кода для выведения на экран текста Hello World! на Brainfuck:
А вот что он выдаёт:
COW
COW был создан Шоном Гебером в 2003 году. Смысл названия этого языка станет вам ясен, когда вы увидите код. По уровню сложности COW сопоставим с Brainfuck. Если сравнивать количественно, в COW представлено на четыре команды больше – в общей сложности их двенадцать на целый язык.
Вот фрагмент кода для выведения на экран текста Hello World! на COW:
MoO MoO MoO MoO MoO MoO MoO MoO MOO moO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO mOo mOo mOo mOo mOo MOo moo moO moO moO moO Moo moO MOO mOo MoO moO MOo moo mOo MOo MOo MOo Moo MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo MMM mOo mOo mOo MoO MoO MoO MoO Moo moO Moo MOO moO moO MOo mOo mOo MOo moo moO moO MoO MoO MoO MoO MoO MoO MoO MoO Moo MMM MMM Moo MoO MoO MoO Moo MMM MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo mOo MoO Moo
А вот что он выдаёт:
Whitespace
Whitespace увидел свет Даремском университете, его авторы – Крис Моррис и Эдвин Брейди. Широкой публике он был представлен на первое апреля в 2003 году.
Базовая идея в том, что для написания программ в языке комбинируются пробелы, табуляции и переводы строки. Все прочие символы интерпретатор игнорирует, рассматривая их как комментарии к коду.
Вот фрагмент кода для выведения на экран текста Hello World! на Whitespace. В нижеприведённом отрывке каждый пробел, табуляция и перевод строки предваряются символами S, T и L соответственно:
S S S T S S T S S S L T L S S S S S T T S S T S T L T L S S S S S T T S T T S S L T L S S S S S T T S T T S S L T L S S S S S T T S T T T T L T L S S S S S T S T T S S L T L S S S S S T S S S S S L T L S S S S S T T T S T T T L T L S S S S S T T S T T T T L T L S S S S S T T T S S T S L T L S S S S S T T S T T S S L T L S S S S S T T S S T S S L T L S S S S S T S S S S T L T L S S L L L
А вот что он выдаёт:
Существует и множество других эзотерических языков, похожих на эти. Вы можете пройти по ссылке, чтобы с ними ознакомиться.
- Блог компании Productivity Inside
- Ненормальное программирование
- Программирование
Рейтинг языков программирования по сложности
В эпоху цифровых технологий становится востребованным программирование. Существует множество языков программирования: Python, Java, C++, C#, JavaScript и другие. Они отличаются сферой применения и синтаксисом, который характеризует сложность изучения.
Языки программирования в 2023 году
Сфера IT развивается со скоростью геометрической прогрессии. В связи со всеобщей компьютеризацией растет потребность в программистах. В 2023 году в список востребованных языков программирования входят следующие:
- «C». Его используют Microsoft, Oracle, Apple. Считается лучшим благодаря функции переносимости. Подходит для операционных и внутренних систем. Им пользуются разработчики приложений и программного обеспечения, а также тестировщики.
- «Java». Мобильный и масштабируемый язык программирования. Является инструментом для веб-разработки, разработки программного обеспечения, тестирования, android-разработки и т.п.
- «Python». Его популярность и востребованность растет на протяжении 15 лет. Сферы применения: машинное обучение, робототехника, анализ большого количество данных, разработка искусственного интеллекта.
- «C++». Объектно-ориентированный язык программирования: используется в игровой индустрии, при создании движков баз данных, на финансовых платформах.
- «C#». Популярен среди разработчиков игр и приложений.
- «Visual Basic». Объектно-ориентированный язык программирования. В 2023 году наблюдается тенденция к снижению популярности. Тем не менее с помощью него программисты продолжают просто и быстро создавать настольные приложения для платформы Windows. Visual Basic используют для веб-разработки и веб-сервисов, а также для разработки программного обеспечения.
- «JavaScript». Язык необходим при создании интерактивных веб-страниц и динамики на странице сайта. Его используют совместно с инструментами верстки: HTML и CSS. JavaScript позволяет гибко настраивать страницы сайта.
- «R». Используется при анализе статистических данных и графического представления. Также R используют бизнес-аналитики и инженеры по BigData.
- «PHP». Используется в качестве инструмента в backend-разработке. PHP применяется в Facebook и CMS WordPress.
- «Swift». Язык программирования, реализованный в 2014 году компанией Apple. Применяется для разработки приложений для iOS, OS X, watchOS и tvOS.
Определение сложности восприятия кода языка программирования
Наиболее сложным языком программирования с точки зрения восприятия кода считают C++. Трудность заключается в синтаксисе: шаблоны, мета-программирование. Также возникают сложности с областями видимости, объектно-ориентированным подходом и т.п.
Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.
Существуют языки с более низким порогом вхождения: Basic, Pascal, Python и др. На них учат программировать в школах и университетах.
Неумелое обращение с языком программирования приводит к плохой организации кода: становится трудно разобраться даже автору.
Регулярные выражения используются для анализа текста во многих современных языках программирования. Но их синтаксис также затрудняет восприятие кода.
Чтение кода затрудняет обфускация – преднамеренное усложнение кода. Разработчик делает это с целью защиты разработки от конкурентов и злоумышленников.
ТОП наиболее тяжелых для изучения в мире
Десятое место в рейтинге сложных языков программирования в мире занимает Python. Он прост в изучении: не нужно управлять памятью и другими низкоуровневыми аспектами. Синтаксис прост в понимании.
Девятую позицию занимает Delphi. Он распространяется вместе с C++ Builder как часть профессиональной интегрированной среды разработки.
Место №8 досталось C++. Был разработан с целью объединения языка C с возможностями объектно-ориентированного программирования. C++ и C похожи по структуре и синтаксису, но все же отличаются друг от друга.
Седьмое место в рейтинге сложности изучения занимает Swift. Является официальным инструментом разработки компании Apple. Идея была взята из Haskell, Python, C# и других языков программирования.
Язык C занимает 6 место в рейтинге. Был разработан для преодоления проблем языков B, BCPL и др.
SQL является инструментом управления реляционными базами данных: вставка данных, обновление, запрос, удаление, модификация и создание схемы.
Haskell отличается от других языков программирования: он типизированный и статистически полиморфно-типизированный.
Третье место занимает JavaScript. С помощью него веб-разработчики создают интерактивные страницы и осуществляют гибкую настройку сайта.
Вторым по сложности языком программирования является низкоуровневый язык Assembler. Сложность заключается в том, что для каждой конкретной компьютерной архитектуры разработан собственный ассемблер.
Первое место в топе сложных языков программирования достается Malbolge. Его суть в том, чтобы затруднять написание программ. Автор разрабатывал Malbolge с целью создания самого сложного языка. Его практически невозможно изучить, а также разработать на его основе серьезную программу.
Экзотические языки программирования
Одним из экзотических языков программирования является Brainfuck. Автор разработал его с целью создания языка с минимальным компилятором. Для написания программы доступны 8 команд.
Другим экзотическим языком программирования считается Cow. Он основан на языке, который используется в машине Тьюринга. Состоит из 12 команд.
Язык Intercal включает операторы Read out, Ignore, Please, Forget и другие. Важным моментом в коде является оператор Please, который должен быть использован ровно 4 раза. Таким образом проверяется вежливость программиста. Программа не будет выполняться, если он не будет соблюдать данное условие.
Whitespace – язык программирования, в котором для написания кода можно использовать только пробелы, табуляции и перевод строки.
Какой язык программирования учить прямо сейчас: 9 самых востребованных
Люди придумали больше 8 тыс. языков программирования. Их популярность меняется каждый год, а требования для входа в профессию все ниже. Разбираемся, какие языки востребованы, зачем нужны и как их учить непрограммистам
Самые востребованные языки программирования
- Python
- C
- C++
- Java
- C#
- JavaScript
- Visual Basic
- PHP
- Assembly Language
Рейтинг TIOBE, сентябрь 2023 года
1. Язык программирования Python
Python — логичный и относительно простой язык с минималистичным синтаксисом. У него небольшой набор основных правил, язык легко читать и писать на нем не сложно. Разработчики написали для Python множество библиотек, поэтому вы можете использовать готовые решения в своих проектах. Главный минус Python — его невысокая скорость. Программы на нем будут работать в среднем медленнее, чем на других языках.
С октября 2021 года Python стал самым популярным языком программирования, сместив с первой строчки рейтингов Java и C.
Игорь Музыкин, руководитель направления «Программирование» в Skillbox:
«Главная причина стабильного роста запросов на Python — растущая востребованность IT-специальностей для переориентирования карьеры в сферу разработки. Представим человека, который задумался о первых шагах в IT. Для начала он скорее всего начнет искать информацию в интернете. Что он увидит? Аргументацию об относительной простоте Python для новичков и статьи о широкой области применения языка — от научно-исследовательской работы до геймдева. Поэтому Python все чаще выбирают в качестве первого языка программирования для освоения.
В пользу простоты Python играет лаконичный синтаксис. Например, блоки кода отделяются отступами, а не скобками, это сокращает количество строк и символов. Еще есть синтаксические конструкции, введение которых позволяет все рутинные задачи по управлению памятью и потоками отдавать интерпретатору Python вместо дополнительного кода. За счет этого разработчик может сосредоточиться на задачах, а не коде как таковом.
Несмотря на критику некоторых аспектов работы Python, например, медленную скорость программ и зависимость языка от системных библиотек, в ближайшие годы он продолжит укреплять свои лидерские позиции в веб-разработке, machine learning, тестировании и DevOps».
Где используют. Чаще всего на Python создают серверы, обрабатывают данные и разрабатывают нейронные сети. После изучения Python можно работать бэкенд-разработчиком или разработчиком в сфере data science. С помощью Python можно «прикрутить» неочевидные функции к программам — это его главное удобство. Например, создать нейронную сеть для определения степени поражения легких, а заодно в этой же программе сделать просмотр снимков КТ.
Сколько платят программисту. Разработчик в крупной компании в Москве, знающий Python, зарабатывает от ₽100 тыс. до ₽250 тыс. При этом спрос на разработчиков в сфере data science растет, поэтому можно рассчитывать даже на более высокую оплату.
Зачем изучать. С помощью Python можно создать бота для мессенджеров или социальных сетей. Или написать программу для парсинга — поиска и переноса информации с разных сайтов в один документ. Такая программа пригодится дизайнерам и журналистам.
Марина Архипцева, ментор курса Data Science в SkillFactory, ETL-разработчик:
«Если следить за индексом TIOBE, то мы увидим, что месяц от месяца лидер меняется, но тройка остается неизменной — Python, Java, C. Собственно поэтому за ежемесячным рейтингом следить не так интересно, а что более любопытно — тот же TIOBE кроме ежемесячного рейтинга ежегодно выбирает язык года, и Python удостаивался этой чести неоднократно с 2003 года (в том числе и в 2023 году). Это лучший показатель среди всех языков программирования. Почему популярность Python растет с каждым годом?
Во-первых, сейчас наблюдается активный рост сферы Data Science. Если проанализировать, например, HeadHunter, то мы обнаружим множество открытых вакансий в данной области. Компании ищут инженеров данных, data scientist’ов, аналитиков данных, специалистов по большим данным, MLops’ов. Конкуренция большая, но спрос все еще превышает предложение на рынке. В 2012 году журнал Harvard Business Review выпустил статью «Data Scientist: The Sexiest Job of the 21st Century», в которой наука о данных была названа самой сексуальной профессией XXI века, и с тех пор, кажется, интерес к этой сфере только растет. И как раз Python является основным инструментом исследователя данных. Во-вторых, у Python обширное комьюнити — на любой вопрос практически со 100% вероятностью найдется ответ на StackOverFlow, главное правильно его сформулировать.
Во-третьих, Python — это язык для всех возрастов. Дети пишут на нем игры, создают миры в Minecraft и сдают ЕГЭ по информатике. Взрослые специалисты, кроме обработки данных, пишут бэкенд на Python и решают множество прикладных задач.
Безусловно, Python — это не идеальный язык и не панацея для всего, но основную тенденцию в мире программирования отлично иллюстрирует внутренний девиз Google: «Использовать Python, там, где можем, C++ — где должны». Здесь имеется в виду, следующее: С++ оптимален для разработки приложений, в которых важна скорость работы. За это приходится расплачиваться высоким порогом входа и сложностью самого языка. Поэтому там, где скорость не критична, Google предпочитает использовать Python».
2. Язык программирования C
C — один из самых старых и популярных языков программирования. Он «легкий» и быстрый, поэтому его используют там, где нужна высокая производительность. Например, для создания драйверов, операционных систем или ПО для микроконтроллеров. При этом C сложно изучить — многое приходится писать с нуля. Если сравнивать языки программирования с автомобилями, то C — гоночный болид, неудобный на городских дорогах, но очень быстрый.
Где используют. С помощью С создают драйвера, пишут ядра операционных систем, а также пишут библиотеки для Python и других языков.
Сколько платят программисту. В Москве разработчик на C получает в среднем от ₽100 тыс. до ₽250 тыс. В других городах зарплаты меньше — от ₽50 тыс. до ₽200 тыс.
Зачем изучать обычным людям. С — это не тот язык, на котором можно легко написать приложение для смартфона или программу для умного дома. Но с него можно начать изучение языков программирования. Учиться непросто, но если справитесь, поймете принцип действия почти всех остальных языков.
3. Язык программирования C++
С++ — кроссплатформенный язык семейства C с расширенными функциями.
Огромное количество программистов пишут на нем код, делятся библиотеками и шаблонами, отвечают на вопросы новичков.
Где используют. Чаще всего на С++ создают операционные системы, драйверы и утилиты. Делают популярные десктопные приложения серий Adobe и Office. Из-за высокой скорости и производительности C++ используют для разработки компьютерных игр. Например, на нем написан популярный движок Unreal Engine.
Движок Unreal Engine создали в 1998 году. Компания Epic Games продолжает выпускать на нем игры. Например, на Unreal Engine работает популярная игра PUBG
Сколько платят программисту. В регионах разработчик на C++ зарабатывает от ₽50 тыс. до ₽150 тыс., в Москве — от ₽100 тыс. до ₽250 тыс. Зарплата зависит не только от города, но и от сферы — в геймдеве можно заработать больше, чем в разработке системных приложений.
Зачем изучать. C++ плохо подходит для решения простых «домашних» задач, но с него можно начать обучение языкам, чтобы понять их структуру и принципы. Если решили изучать, запаситесь терпением — с С++ в полной мере работает принцип «тяжело в учении — легко в бою».
4. Язык программирования Java
Java — кроссплатформенный язык с большим количеством библиотек и большим сообществом разработчиков. Кроссплатформенность — это возможность написать программу один раз и сразу пользоваться ей на нескольких операционных системах: Windows, Linux и MacOS. Благодаря библиотекам Java подойдет практически для всего: работы с графикой, звуком, создания небольших игр. А в большом сообществе начинающий разработчик легко найдет готовые куски кода для разных задач и ответы почти на любые вопросы.
Программисты пользуются библиотеками, чтобы создавать программы быстрее. Библиотека — это набор готовых программ, объектов и функций для решения типовых задач.
Где используют. Java — это язык для всего. На нем пишут мобильные приложения для Android, программы для микроволновых печей и серверы. Для разработки мобильных приложений сейчас все активнее используют язык Kotlin. Но на Java уже написали очень много приложений, которые придется обслуживать и обновлять.
Сколько платят программисту. Зарплаты Java-разработчиков не сильно отличаются от обычных зарплат программистов — от ₽100 тыс. до ₽250 тыс. в Москве.
Зачем изучать. С помощью Java можно создать домашний сервер или приложение для мобильного телефона. Это будет не очень просто, но можно убить двух зайцев одним выстрелом — сделать программу и заодно выучить популярный язык.
5. Язык программирования C#
C# (си-шарп) — язык, изначально придуманный компанией Microsoft, чтобы создавать приложения под Windows. Это объектно-ориентированный язык — его сложнее изучать, но проще использовать, например, меньше писать одинаковый код. С помощью С# можно работать с платформой WPF, которая помогает создавать «красивые» оконные приложения. Например, последние версии MS Office.
Где используют. Чаще всего на C# пишут приложения для Windows и создают компьютерные игры. Например, на C# работает популярный движок Unity. Кроме того, на нем можно разрабатывать системные приложения и создавать библиотеки для С++.
Сколько платят программисту. В регионах разработчики на С# получают от ₽35 тыс. до ₽130 тыс., в Москве — от ₽100 тыс. до ₽250 тыс.
Зачем изучать. С помощью C# можно создать оконное приложение для Windows, например, калькулятор или небольшую игру. Но изучать его сложнее, чем языки для создания мобильных приложений.
6. Язык программирования JavaScript
JavaScript — быстрый кроссплатформенный язык для веб-разработки. С помощью кода на JavaScript разработчик «говорит» странице, как она будет реагировать на действия пользователя. С помощью JS можно показывать пользователю информацию без перезагрузки страницы — так работают выпадающие меню, всплывающие окна, оконные клавиатуры.
При этом у JavaScript есть свои ограничения — он позволяет допускать ошибки, которые затем сложно обнаружить. Поэтому его редко используют для создания сложного программного обеспечения, например, ПО серверов.
Где используют. JS постоянно используют для веб-разработки. На нем удобно создавать мобильные и десктопные приложения, которые будут работать через браузер. Например, Notion, Discord, Visual Studio Code.
Сколько платят программисту. Разработчик на JavaScript в Москве зарабатывает от ₽140 тыс. до ₽300 тыс.
Зачем изучать. С помощью JS можно создать простой сайт или модуль для него, работающий с запросами клиента. Например, онлайн-калькулятор.
7. Язык программирования Visual Basic
Visual Basic — язык программирования, а также интегрированная среда разработки программного обеспечения, разрабатываемые корпорацией Microsoft. Visual Basic во многом похож на своего предшественника — язык BASIC, у которого есть немало диалектов, у них схожи стиль и синтаксис. Однако при этом Visual Basic также сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Интегрированная среда разработки VB включает инструменты для визуального проектирования пользовательского интерфейса, редактор кода с возможностью IntelliSense и подсветкой синтаксиса, а также инструменты для отладки приложений.
Где используют. Visual Basic также является хорошим средством быстрой разработки (RAD) приложений баз данных для операционных систем семейства Microsoft Windows. Главной особенностью Visual Basic, отличающей его от большинства языков, стало применение в программировании графического интерфейса.
Сколько платят программисту. От ₽30 тыс. до ₽100 тыс. Средняя зарплата по России ₽62 тыс. Многие программисты считают, что Visual Basic отошел в прошлое — тем не менее, в интернете можно найти хорошие вакансии — и предложения работать за эти деньги удаленно.
Зачем изучать. К достоинствам языка относят достаточно простой синтаксис, что обеспечивает низкий порог входа для начинающих программистов.
8. Язык программирования PHP
PHP — используют в веб-разработке для создания программ, которые работают на сервере и помогают обрабатывать запросы клиентов. PHP постепенно теряет популярность, потому что серверы можно создавать с помощью других языков. Но на PHP до сих пор работают многие ранее созданные сайты, например, «ВКонтакте».
Где используют. С помощью PHP создают программы, которые работают на сервере и помогают отправлять почту с сайта, взаимодействовать с базами данным. PHP облегчает работу интернет-магазинов — можно не создавать 1 тыс. одинаковых страниц, а генерировать их автоматически из базы данных по запросу клиента.
Сколько платят программисту. В регионах PHP-разработчик получает от ₽50 тыс. до ₽120 тыс., в московских компаниях — от ₽80 тыс. до ₽220 тыс.
Зачем изучать. Со знанием PHP легко начать карьеру разработчика. Такой разработчик сможет найти работу, даже если у него мало опыта.
Вакансии PHP-разработчика в Москве на HeadHunter
9. Язык программирования Assembly Language
Assembly Language или язык ассемблера — это язык программирования низкого уровня, который используется внутри операционной системы для того, чтобы в автоматическом режиме преобразовывать исходную программу (заданную компьютеру) на машинный язык. Он работает непосредственно с процессором, и каждая его команда — это инструкция процессора, а не операционной или файловой системы. Перевод языка ассемблера в машинный код называется ассемблированием.
Где используют. Ассемблер используют те, кто работает с железом. На нем пишут драйверы устройств и некоторые компоненты операционных систем — например, ядро или загрузчик. Любительские операционные системы MenuetOS и KolibriOS полностью написаны на ассемблере. На нем также разрабатывают встроенные программы для микроконтроллеров, игровых приставок, его активно используют в реверс-инжиниринге.
Сколько платят программисту. От ₽80 тыс. до ₽300 тыс. в зависимости от уровня квалификации и опыта.
Зачем изучать. Если хотите писать высокопроизводительный код для конкретной аппаратной платформы или устройства. Также Assembly Language пригодится для отладки низкоуровневых проблем в программах или оборудовании. Но учтите, что изучать его сложнее, чем языки более сложного уровня, и его знание не пригодится для понимания других языков, поэтому он не подойдет для новичков.
Общие тренды IT-сферы вне зависимости от языков программирования
Код становится более читабельным. В последние годы разрабатывают все больше приложений, в том числе для мобильных устройств. Приложения становятся все сложнее по архитектуре, их нужно постоянно обновлять и обслуживать — важно, чтобы код можно было легко прочитать и понять. Приложение может жить десять лет. За это время сменится несколько разработчиков, которым нужно будет понимать код, написанный другими. Поэтому важно, чтобы программы не только решали свои задачи, но и были аккуратно, понятно написаны.
Растет популярность мобильной разработки и машинного обучения. Мобильная разработка стала привычным делом за несколько лет. Многие компании запускают только мобильные приложения, не думая об их браузерных и десктопных версиях. Из-за этого сильнее разрабатывают стандарты мобильной разработки. С одной стороны, это усложняет работу, с другой — сообществу выгодно обучить новичков этим стандартам.
Машинное обучение из диковинки становится неотъемлемой частью жизни — предсказывание и обработка данных слишком часто помогают в обычных ситуациях. Становится больше приложений по распознаванию лиц и обработке голосовых сообщений в текст.
Нужно писать код для всех платформ. Платформ становится все больше — например, Apple оснастила свои ноутбуки ARM-процессорами, которые раньше использовала только для смартфонов и планшетов. Поэтому разработчики должны учитывать все существующие технические возможности и писать приложения так, чтобы они работали везде.
Работодатели хотят посмотреть портфолио на GitHub. Если раньше при найме сотрудника работодатели смотрели приложения, к которым программист приложил руку, то теперь даже непрофессионалы все чаще хотят увидеть код. На Гитхабе можно посмотреть все проекты разработчика, увидеть, как он думает и пишет, как развивался и рос.
Программирование молодеет. Дети и подростки изучают программирование на онлайн-курсах или самостоятельно. Из-за этого уже в 13–15 лет они могут писать приложения, выкладывать их в Appstore или GooglePlay и даже зарабатывать деньги. Некоторые из них так начинают карьеру разработчика и конкурируют с выпускниками вузов и более старшими коллегами.
Еще пять статей о программировании
- Программирование с нуля: с чего начать и как выучить
- Вчерашняя техника уже завтра: могут ли устареть языки программирования
- Почему программистам не обойтись без гибких навыков
- Стартап или гигант: что выбирают ИТ-специалисты
- Где брать программистов: почему компании приходят в буткемпы