Как выглядят разные языки программирования
Языки программирования: что это такое, зачем нужны и какой выбрать новичку
Разбираемся, как устроены языки программирования, почему их так много и чем они отличаются от алгоритмов.
Что такое язык программирования
Язык программирования — это набор формальных правил, по которым пишут программы. Обычный язык нужен для общения людей, а язык программирования — для общения с компьютером. Как и в любом естественном языке, тут есть лексика — слова, функции и операторы, из которых по правилам синтаксиса составляются выражения. Они имеют чёткий, вполне определённый смысл, понятный компьютеру, — семантику.
Вот, например, программа на языке JavaScript:
Здесь слово alert — лексика, один из принятых в языке методов обработки текста. Текст в одинарных кавычках, скобки, точка с запятой — правила синтаксиса. А то, что нужно сделать в итоге, — семантика. Получив эти инструкции, компьютер выведет на экран всплывающее окно с кнопкой и сообщением: «Это программа на JavaScript».
Фанат Free Software Foundation, использую Linux и недолюбливаю Windows. Пишу истории про кодинг и программы на Python. Влюблен в LISP, но пока что не умею на нем программировать.
Чем языки программирования отличаются от алгоритмов
Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого порядка действий и правил их выполнения — алгоритма.
Алгоритм работает как маршрут в навигаторе: «Из пункта А едем в пункт Б, поворот через 150 метров». Англичанин понимает его по-английски, китаец —
по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один и все должны добраться до нужного места.
Любая программа начинается с алгоритма, но на разных языках это может выглядеть по-разному. Например, вот эта — на языке С — проверяет, чтобы делитель не был нулём, а затем делит одно число на другое. Или пишет, что так делать нельзя.
То же самое, но на Python.
В программе на Python нет фигурных скобок и точек с запятой, но алгоритм и результат работы такой же, как у программы на C, да и слова похожи.
Перейти с одного языка программирования на другой легко: если знаешь Java — быстро начнёшь кодить, например, на Python или C#.
Как компьютер понимает разные языки программирования
На самом деле язык программирования — это не язык компьютера. Машина понимает последовательности нулей и единичек: есть напряжение в цепи — единица, нет — ноль. Поэтому любую программу сначала надо перевести в набор таких машинных команд.
Для этого есть два инструмента — компилятор и интерпретатор. Компилятор работает как бюро переводов: вы отдаёте ему весь текст программы, а он превращает его в исполняемый код, набор команд для процессора. Интерпретатор больше похож на переводчика-синхрониста: сказали фразу — синхронист тут же её перевёл, а компьютер выполнил.
Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде.
Что такое библиотеки
Библиотеки — наборы функций, готовых шаблонов, написанных на каком-то из языков программирования. Это удобно и похоже на книги в обычной библиотеке: на них можно ссылаться внутри программ и сразу получать результат без необходимости каждый раз писать много кода.
Например, в Python есть модуль — библиотека yandex_translate, которая переводит тексты на разные языки. Программистам не надо создавать программу-переводчик с нуля, достаточно подключить этот модуль и обратиться к нему из любой точки кода.
Какие языки программирования учить?
Чем больше освоишь, тем круче будешь
Довольно популярное мнение среди разработчиков, что уровень квалификации и зарплата зависят от количества языков программирования, которыми разработчик владеет.
Я сам в свое время ходил и думал, что бы такого изучить, чтобы потом писать в резюме много умных слов. Затем однажды на работе познакомился с коллегой, С++ разработчиком, который за всю жизнь освоил только один этот язык и все. А зарплата у него была, как у меня, может даже больше. Помню, как он ходил и с интересом спрашивал, как такие же вещи можно делать на С #. Это меня очень удивило, потому что я увидел, что человек достаточно успешен в IT-карьере, хотя он хорошо выучил всего один язык, а за его пределами почти ничего не знает.
Конечно, это не значит, что надо ограничивать свой кругозор единственным языком. На мой взгляд, секрет успеха в том, чтобы стать профи в чем-то одном, а затем осваивать смежные области, которые будут дополнять друг друга и двигать в направлении одной цели. Например, если вы занимаетесь Web-разработкой, будет плюсом знать какой-то язык для бэкэнда и JavaScript для фронтэнда. Но если я буду учить С++ для бэкэнда, то знания JavaScript для фронтэнда мне ничего не даст, потому что я никогда не буду использовать их вместе.
Обычно, с одного языка пересесть на другой не так сложно из-за схожего синтаксиса и общих принципов. Например, с C # на Java. При этом вокруг каждого языка есть своя большая экосистема: библиотеки, фреймворки, либы. А вот на это уже нужно много времени, и быть достаточно высококвалифицированным специалистом в двух-трех разных областях в программировании очень сложно.
Рынок вакансий диктует условия
Если осваивать программирование с целью карьеры, а не в качестве хобби, ориентироваться надо на рынок вакансий. Идем на HeadHunter и видим такую картину
Зеленым выделены языки с положительной динамикой вакансий. За год Kotlin и Go впервые оказались в этом списке. Красным выделен Ruby — для него число вакансий сокращается, и возможно, скоро из топ-10 его вытеснит какой-нибудь другой перспективный язык.
Может показаться, что если выбрать что-нибудь экзотическое, у вас будет меньше конкурентов, а значит проще найти работу. Это не совсем так. Работодатели тоже идут на hh, смотрят кандидатов и решают, на чем запускать проекты, под которые реально собрать команду. Замкнутый круг. Поэтому мой совет с точки зрения развития карьеры: выбирайте популярный язык, при этом ориентируйтесь на спрос на рынке труда, а не по каким-то другим рейтингам.
Вместо того, чтобы обсуждать актуальность отдельно взятого инструмента — а именно этим являются языки программирования — я рассмотрю их в разрезе 4-х направлений разработки и составлю наборы навыков, необходимых для решения разных задач.
Web-разработка
Здесь больше всего вакансий, но и сильнее конкуренция среди специалистов, т.к. направление развивается уже много лет. Web-разработка состоит из Frontend — визуальная часть сайта, то, с чем взаимодействуют пользователи, и Backend — серверная часть сайта.
Начальный маршрут для фронтендера:
HTML, CSS — языки верстки
JavaScript — для интерактивных элементов
ECMAScript / Typescript — расширения JavaScript, дающие больше возможностей
Опыт работы с одним из фреймворков: React / Angular / Vue
Как правило, выбор фреймворка не столь принципиален: работодатель готов рассмотреть кандидата с опытом в любом из трех, т.к. довольно быстро можно пересесть на нужный специально под проект.
Для бэкендера есть несколько вариантов. Каждый пункт в списке — пара из языка и его фреймворков:
PHP + Laravel / Yii 2 / Symphony
Javascript + NodeJS (Express.JS, Nest.js, TypeScript, GraphQL, Apollo)
Каждый из наборов актуален для написания серверной части сайтов, поэтому можно выбрать на свое усмотрение. В любом случае понадобится овладеть еще и этими знаниями:
HTML & CSS — понимание верстки сайтов
SQL (PostgreSQL / MySql) — работа с базами данных
Архитектуры и паттерны — как писать код, который легко поддерживать и масштабировать
В большинстве случаев это необходимый минимум, джентельменский набор для бэкенд-разработчика, работающего над сайтами. Далее, можно развиться как разработчик в 2 разных направлениях: начать осваивать технологии из списка фронтендера, т.е. стать Fullstack-разработчиком, или углубиться в бекенд и хайлоад. Выбрав второй путь, будет полезно освоить следующие технологии:
NoSql (MongoDB, Reddis, Cassandra)
Брокеры сообщений: RabbitMQ / Kafka
Мобильная разработка
Более молодое направление, в котором меньше вакансий, но пока наблюдается дефицит кадров. Языки программирования выбираются в зависимости от того, под какую платформу вы будете создавать приложения.
Android-разработчик:
В большинстве проектов нужно знать и Java и Kotlin
Новый код чаще пишется на Kotlin, однако очень много кода, который нужно поддерживать, написан на Java
Kotlin молодой, но очень перспективный язык, созданный питерской компанией Jetbrains в 2016 году. Он полностью совместим с Java, но примерно на 40% короче его, что значительно ускоряет разработку. Кроме того, в какой-то момент Google, устал от исков со стороны правообладателей Java за использование кода в Android и назвал Kotlin предпочтительным языком для Android-разработки. Сейчас все чаще приложения пишут на нем. Однако на текущий момент все еще очень много проектов, написанные на Java, которые нуждаются в поддержке и развитии. Поэтому Android-разработчику надо знать оба языка, чтобы уметь читать и вносить изменения в старый код.
iOS-разработчик:
Достаточно знать Swift
Старый код написан на Objective-C
Легкий и простой Swift пришел на смену и значительно потеснил первый iOS-язык Objective-C. Эти языки несовместимы, поэтому новые проекты начинают на Swift и его вполне достаточно для разработки на платформе. А Objective-C остается актуальным только для старых больших проектов, которые не решились переписывать на Swift.
Что касается востребованности, то Java и Kotlin универсальные языки, которые используют не только для мобильной разработки и под различные платформы. А вот Swift подходит исключительно для мобильной разработки под iOS и десктопной разработки под MacOS.
Еще один путь мобильного разработчика — освоить библиотеку ReactNative для JavaScript. Она устроена таким образом, что написанный код работает под все платформы. С одной стороны это очень удобно. Однако нередки случаи, когда появляется необходимость прописать нативный код для каждой платформы, а это значит нужно иметь наготове знания и Kotlin, и Swift.
Серверные приложения
Путь разработчика серверных приложений во многом похож на бэкендера, разрабатывающего сайты. Во-первых, надо выбрать и изучить один из языков. Сейчас в ТОП-е по количеству вакансий на российском рынке:
Во-вторых, как и бэкендеру, для большинства задач вам понадобятся навыки работы с базами данных и умение писать качественный код. Тут вам пригодятся:
SQL (PostgreSQL / MySql)
Архитектуры и паттерны
Дальше можно изучить:
Алгоритмы и структуры данных
NoSql (MongoDB, Reddis, Cassandra)
Брокеры сообщений: RabbitMQ / Kafka
Из этого самый сложный пункт — выбор языка. Я подготовил сравнительную таблицу:
Java, Python и С # между собой очень похожи и довольно универсальны. Java используют для сайтов и мобильной разработки. Python отдают предпочтение стартапы (а также крупные проекты, выросшие из стартапов) из-за его простоты освоения и универсальности. C # популярен и для сайтов, и для написания игр на движке Unity 3D. Я советую выбирать тот, с которым вы уже хоть немного имели дело и на какую сферу больше ориентируетесь. При необходимости быстро пересесть на другой из этой тройки не составит труда.
C++, на мой взгляд, один из самых сложных в освоении язык, подходящий в основном для серверных, десктопных программ и игр, реже — для Data Science. Разработка на нем занимает значительно больше времени, но дает программисту огромные возможности. C++ используют для программ, требовательных к быстродействию, например, Photoshop, или масштабных игр, так как с его помощью можно контролировать и распределять нагрузку на «железо».
Golang (Go) появился как более простая версия С++. Его легко освоить, и он заточен под высокие нагрузки и многоядерные процессоры, но имеет очень ограниченный функционал, например, нет дженериков, исключений и т.д., которыми обладают другие языки программирования. В первую очередь его целесообразно использовать для консольных утилит и highload бэкенда. Вакансии разработчика на Go открывают преимущественно крупные корпорации, хотя в последнее время спрос на разработчиков Go начал появляться и в проектах поменьше.
Разработка игр
Выбор языка во многом определяет платформу, на которой вы сможете писать игры:
C#, Unity 3D — кроссплатформенный, возможность быстро портировать игру с одной платформы на другую
C++, Unreal Engine — PC, обычно используется для масштабных игр, требовательных к быстродействию «железа»
Если по выбору языка какие-то моменты не осветил, задавайте вопросы — отвечу.
Современные языки программирования: краткий обзор
Сейчас прогресс ушел так далеко, что техника может интуитивно понимать запрос пользователя. Однако стоит помнить, что все программы, браузеры и сайты имеют в основе языки программирования.
В наши дни существует около 8 тысяч таких языков, многие из которых понятны лишь авторам. Однако есть такие языки программирования, которые стали международными и используются миллионами людей ежедневно.
Курсы по программированию удобно выбирать на сайте-агрегаторе онлайн-школ Tutortop.ru. Там собраны онлайн-курсы по всем направлениям программирования от различных школ. Можно сравнивать по ценам, формату обучения, отзывам и другим параметрам.
Зачем нужны языки программирования
Без языка программирования ни один компьютер работать не будет. С его помощью создаются определенные математические алгоритмы, которые помогают компьютеру выполнять команды пользователя.
Для обычного человека написание даже первой странички сайта покажется странной комбинацией различных символов. Для программиста этот код позволяет задать компьютеру нужную команду и выполнить ее. На языке программирования обычный пользователь общается с компьютером.
История языков программирования
Первыми «ласточками» в истории языка программирования считаются такие обычные вещи, как музыкальная шкатулка или жаккардовый ткацкий станок. Они появились еще в XVIII-XIX веках.
Начало же современному программированию было дано в 1930-1940-е годы, когда были написаны лямбда-исчисление и машина Тьюринга. То время можно назвать началом истории разработки языков программирования, ведь компьютеры становились все популярнее. В 1940-е годы появились первые электрические компьютеры, и тогда же немецкий инженер Ц. Кузе разработал Планкалькюль, первый высокоуровневый язык.
В 1950-е годы были разработаны машинные коды, которые считаются языками программирования первого поколения. Но их приходилось переписывать для каждой ЭВМ отдельно, так что первым реально работающим языком программирования можно считать «Краткий код». Он первым стал представлять собой не набор математических кодов, а выражения, которые потом перерабатывались в код.
А уже к середине 1950-х годов стали зарождаться языки третьего поколения. Их отличает то, что они подходят для любой программы, их не нужно переписывать под каждую заново. Они уже считают полноценными языками высокого уровня.
В 1960-годы языки программирования начали стандартизировать и улучшать. Хоть затем и появились языки четвертого и пятого поколения, они являются более усовершенствованными версиями языков третьего поколения.
После того, как стал развиваться интернет в 1990-е годы, появились еще языки для написания веб-страниц. Сейчас развитие языков программирования идет по большей части в сторону безопасности пользователя.
Список языков программирования
Есть тысячи языков программирования. Мы выделили те, что наиболее популярны и чаще используются в современном мире.
Basic
Basic или Бейсик называют группу языков программирования высокого уровня. Его создали профессора колледжа Дартмут в 1964 году с целью помощи студентам в создании собственных компьютерных программ. Сейчас детище Томаса Курца и Джона Кемени стало основным языком, на котором пишутся программы для ОС Windows.
В далеком 1972 году Дэннис Ритчи придумал язык, который остается популярен и сейчас. Программисты любят его за успешное сочетание в нем элементов как высокого, так и низкого уровней программирования. Кстати, для тех языков программирования, которые используются для написания сайтов, основой является как раз язык Си.
Этот язык произошел от Си, но он больше уделяет внимание обобщенному программированию. Сейчас он является одним из самых популярных языков, ведь на нем пишут огромное количество программ. Он подходит для создания ОС, драйверов, серверов, игр, прикладных программ и много другого. Си ++ является универсальным языком, который эффективен, многофункционален и доступен большинству программистов.
Python
Разработка этого языка началась в 1980-х годах голландцем Гвидо ван Россумом, но его первая версия была выпущена только в 2008 году. Он отличается постоянным усовершенствованием и активным сообществом пользователей. Python является высокоуровневым языком с большим объемом различных функций. Особенно хорошо он справляется с веб-разработкой, анализом данных и автоматизацией процессов.
Этот язык лидирует среди тех, что применяются в разработке веб-сайтов и поддерживается практически всеми хостинг-провайдерами. Он применяется, в основном, для разработки веб-сайтов и веб-приложений. Впервые PHP был представлен публике в 1995 году датским программистом Расмусом Лердорфом.
Язык программирования Java работает с веб-приложениями, которые транслируются в байт-код. Он может работать на любой компьютерной архитектуре, так как код преобразуется с помощью Java-машины. Он появился в 1996 году и последние годы он стал самым популярным языком программирования. Однако многие недовольны из-за того, что он работает медленнее, чем его конкуренты.
JavaScript
Хотя JavaScript похож на Java, но все же является отдельным языком. Чаще всего используется в качестве встраиваемого языка: приложения получают доступ к веб-страницам с его помощью. Он более легок в применении и дается даже тем, кто мало знаком с программированием. Доля его использования ежегодно растет.
Go (Golang)
В 2007 году компания Google занялась разработкой собственного языка программирования, с помощью которого бы можно было решать реальные проблемы. Созданием языка занимались Роб Пайк и Кен Томпсон, которые уже в 2009 году представили Go. Для компании Google он является заменой популярных языков Си и Си ++. Он не стал прорывом, но зато используется для создания серьезных проектов.
Этот язык программирования является системой, с помощью которой можно удобно управлять базами данных. Первые разработки были начаты еще в 1970-х годов, но первый вариант SQL был представлен в 1986 году. В современном мире SQL довольно популярен в качестве удобного языка для улучшения, управления и создания баз данных.
Swift
Компания Apple тоже придумала собственный язык программирования, чтобы создавать на нем приложения для всех родственных гаджетов. Apple представила свой язык в 2014 году как удобный, надежный, свободный и доступный любому программисту. Он был создан персонально для продуктов Apple.
Pascal
Никлаус Вирт создал этот язык в 1969 году, а назвали язык в честь математика Блеза Паскаля. Он является популярным языком программирования и в наши дни. Именно на нем обучают студентов на первом курсе университета и в старшей школе. На его основе построено множество других языков.
Нравится статья? Поддержи наш проект и поделись с друзьями!
Какой язык программирования учить прямо сейчас: 9 самых востребованных
Самые востребованные языки программирования
Язык программирования — это набор лексических, синтаксических и семантических правил, которые придумали люди, чтобы создавать программы. Изучить язык до начального уровня можно за 6–10 месяцев, но если ошибиться с выбором, язык может устареть, а вы потеряете время и деньги.
Чтобы отслеживать востребованность языков программирования, компании составляют специальные рейтинги. Преподаватель онлайн-школы цифрового творчества и программирования для детей «Кодабра» Николай Ведерников выбрал языки, которые занимают высокие места в рейтингах TIOBE и IEEE. В первый рейтинг попадают языки, на которых написано больше всего строк кода, для второго используют чуть больше критериев. Например, популярность на сайтах для поиска работы, упоминания в сервисах для программистов и соцсетях.
Самые востребованные языки программирования:
Стоит ли учиться программированию на C
C — один из самых старых и популярных языков программирования. Он «легкий» и быстрый, поэтому его используют там, где нужна высокая производительность. Например, для создания драйверов, операционных систем или ПО для микроконтроллеров. При этом C сложно изучить — многое приходится писать с нуля. Если сравнивать языки программирования с автомобилями, то C — гоночный болид, неудобный на городских дорогах, но очень быстрый.
Где используют. С помощью С создают драйвера, пишут ядра операционных систем, а также пишут библиотеки для Python и других языков.
Сколько платят программисту. В Москве разработчик на C получает в среднем от 100 тыс. до 250 тыс. руб. В других городах зарплаты меньше — от 50 тыс. до 200 тыс. руб.
Зачем изучать обычным людям. С — это не тот язык, на котором можно легко написать приложение для смартфона или программу для умного дома. Но с него можно начать изучение языков программирования. Учиться непросто, но если справитесь, поймете принцип действия почти всех остальных языков.
Стоит ли учиться программировать на Java
Java — кроссплатформенный язык с большим количеством библиотек и большим сообществом разработчиков. Кроссплатформенность — это возможность написать программу один раз и сразу пользоваться ей на нескольких операционных системах: Windows, Linux и MacOS. Благодаря библиотекам Java подойдет практически для всего: работы с графикой, звуком, создания небольших игр. А в большом сообществе начинающий разработчик легко найдет готовые куски кода для разных задач и ответы почти на любые вопросы.
Программисты пользуются библиотеками, чтобы создавать программы быстрее. Библиотека — это набор готовых программ, объектов и функций для решения типовых задач.
Где используют. Java — это язык для всего. На нем пишут мобильные приложения для Android, программы для микроволновых печей и серверы. Для разработки мобильных приложений сейчас все активнее используют язык Kotlin. Но на Java уже написали очень много приложений, которые придется обслуживать и обновлять.
Сколько платят программисту. Зарплаты Java-разработчиков не сильно отличаются от обычных зарплат программистов — от 100 тыс. до 250 тыс. руб. в Москве.
Стоит ли учиться программировать на Python
Python — логичный и относительно простой язык с минималистичным синтаксисом. У него небольшой набор основных правил, язык легко читать и писать на нем не сложно. Разработчики написали для Python множество библиотек, поэтому вы можете использовать готовые решения в своих проектах. Главный минус Python — его невысокая скорость. Программы на нем будут работать в среднем медленнее, чем на других языках.
Где используют. Чаще всего на Python создают серверы, обрабатывают данные и разрабатывают нейронные сети. После изучения Python можно работать бэкенд-разработчиком или разработчиком в сфере data science. С помощью Python можно «прикрутить» неочевидные функции к программам — это его главное удобство. Например, создать нейронную сеть для определения степени поражения легких, а заодно в этой же программе сделать просмотр снимков КТ.
Сколько платят программисту. Разработчик в крупной компании в Москве, знающий Python, зарабатывает от 100 тыс. до 250 тыс. руб. При этом спрос на разработчиков в сфере data science растет, поэтому можно рассчитывать даже на более высокую оплату.
Зачем изучать. С помощью Python можно создать бота для мессенджеров или социальных сетей. Или написать программу для парсинга — поиска и переноса информации с разных сайтов в один документ. Такая программа пригодится дизайнерам и журналистам.
Стоит ли учиться программировать на C++
С++ — кроссплатформенный язык семейства C с расширенными функциями.
Огромное количество программистов пишут на нем код, делятся библиотеками и шаблонами, отвечают на вопросы новичков.
Где используют. Чаще всего на С++ создают операционные системы, драйверы и утилиты. Делают популярные десктопные приложения серий Adobe и Office. Из-за высокой скорости и производительности C++ используют для разработки компьютерных игр. Например, на нем написан популярный движок Unreal Engine.
Сколько платят программисту. В регионах разработчик на C++ зарабатывает от 50 тыс. до 150 тыс. руб., в Москве — от 100 тыс. до 250 тыс. руб. Зарплата зависит не только от города, но и от сферы — в геймдеве можно заработать больше, чем в разработке системных приложений.
Зачем изучать. C++ плохо подходит для решения простых «домашних» задач, но с него можно начать обучение языкам, чтобы понять их структуру и принципы. Если решили изучать, запаситесь терпением — с С++ в полной мере работает принцип «тяжело в учении — легко в бою».
Стоит ли учиться программировать на C#
C# (си-шарп) — язык, изначально придуманный компанией Microsoft, чтобы создавать приложения под Windows. Это объектно-ориентированный язык — его сложнее изучать, но проще использовать, например, меньше писать одинаковый код. С помощью С# можно работать с платформой WPF, которая помогает создавать «красивые» оконные приложения. Например, последние версии MS Office.
Где используют. Чаще всего на C# пишут приложения для Windows и создают компьютерные игры. Например, на C# работает популярный движок Unity. Кроме того, на нем можно разрабатывать системные приложения и создавать библиотеки для С++.
Сколько платят программисту. В регионах разработчики на С# получают от 35 тыс. до 130 тыс. руб., в Москве — от 100 тыс. до 250 тыс. руб.
Зачем изучать. С помощью C# можно создать оконное приложение для Windows, например, калькулятор или небольшую игру. Но изучать его сложнее, чем языки для создания мобильных приложений.
Стоит ли учиться программировать на JavaScript
JavaScript — быстрый кроссплатформенный язык для веб-разработки. С помощью кода на JavaScript разработчик «говорит» странице, как она будет реагировать на действия пользователя. С помощью JS можно показывать пользователю информацию без перезагрузки страницы — так работают выпадающие меню, всплывающие окна, оконные клавиатуры.
При этом у JavaScript есть свои ограничения — он позволяет допускать ошибки, которые затем сложно обнаружить. Поэтому его редко используют для создания сложного программного обеспечения, например, ПО серверов.
Где используют. JS постоянно используют для веб-разработки. На нем удобно создавать мобильные и десктопные приложения, которые будут работать через браузер. Например, Notion, Discord, Visual Studio Code.
Сколько платят программисту. Разработчик на JavaScript в Москве зарабатывает от 140 тыс. до 300 тыс. руб.
Зачем изучать. С помощью JS можно создать простой сайт или модуль для него, работающий с запросами клиента. Например, онлайн-калькулятор.
Стоит ли учиться программировать на PHP
PHP — используют в веб-разработке для создания программ, которые работают на сервере и помогают обрабатывать запросы клиентов. PHP постепенно теряет популярность, потому что серверы можно создавать с помощью других языков. Но на PHP до сих пор работают многие ранее созданные сайты, например, «ВКонтакте».
Где используют. С помощью PHP создают программы, которые работают на сервере и помогают отправлять почту с сайта, взаимодействовать с базами данным. PHP облегчает работу интернет-магазинов — можно не создавать 1 тыс. одинаковых страниц, а генерировать их автоматически из базы данных по запросу клиента.
Сколько платят программисту. В регионах PHP-разработчик получает от 50 тыс. до 120 тыс. руб., в московских компаниях — от 80 тыс. до 220 тыс. руб.
Зачем изучать. Со знанием PHP легко начать карьеру разработчика. Такой разработчик сможет найти работу, даже если у него мало опыта.
Стоит ли учиться программировать на R
R — это язык для обработки данных, статистики и машинного обучения. R постоянно конкурирует с Python, его чаще используют в научных исследованиях.
R — бесплатный, у него большие возможности для обработки данных и необычный синтаксис, более понятный математикам, от этого популярный в академической среде.
Где используют. Чаще всего с помощью R обрабатывают данные в научных исследованиях. На нем создают нейронные сети.
Сколько платят программисту. Разработчики и дата-аналитики, использующие R, зарабатывают от 100 тыс. до 200 тыс. руб. Точная сумма зависит от типа компаний — иногда в научных проектах, получающих международные гранты, можно заработать больше.
Зачем изучать обычным людям. Не стоит.
Стоит ли учиться программировать на Arduino
Arduino — это упрощенный диалект C++, на котором пишут только программы для контроллеров Arduino. Но вот эти контроллеры используют почти везде — от устройств для автоматического полива до полноценных систем «умный дом» и разнообразных роботов.
Arduino существует только в связке с контроллерами, поэтому его не всегда считают полноценным языком. Чтобы на нем работать, нужно купить специальную плату, соединить с компьютером и с помощью специального ПО писать для контроллера программу. Зато можно написать программу, поставить контроллер в нужное устройство и сразу проверить, насколько хорошо она работает.
Где используют. Специалисты, знающие Arduino, могут работать инженерами-электронщиками и разработчиками ПО для микроконтроллеров. Иногда — в школах роботехники.
Сколько платят программисту. В Москве инженеры-электронщики зарабатывают от 50 тыс. до 120 тыс. руб., преподаватели — от 30 тыс. до 100 тыс. руб.
Зачем изучать. Arduino удобен именно для решения простых бытовых задач. Его легко использовать дома и на даче — создавать системы полива, вентиляторы, охранные системы, системы для аквариумов. С Arduino можно развивать логическое мышление детей — с ним легко понять принцип работы технических устройств.
Какие языки теряют актуальность
Сомнительная идея изучать Perl в 2021 году, — считает ИТ-предприниматель и идейный вдохновитель школы программирования для детей CODDY Оксана Селендеева. Perl — язык программирования для системного администрирования, веб-разработки, игр. У Perl-разработчиков довольно высокая зарплата — 150 тыс. ₽ в месяц, но начиная с 2017 года вакансий для таких разработчиков почти нет. Лучше обратить внимание на Python. На нем выполняют те же задачи, но язык в 2021 году намного более востребован в ИТ-сфере.
Теряют актуальность и другие языки: Fortran, Objective-C, Haskell, Visual Basic.
По версии Stack Overflow, самые «страшные» языки в 2020 году — VBA, Objective-C, Perl, Assembly, C. «Страшные» означают, что большинство разработчиков, которые сейчас пишут код на этих языках программирования, не планируют продолжать с ними работать.
Общие тренды ИТ-сферы вне зависимости от языков программирования
Код становится более читабельным. В последние годы разрабатывают все больше приложений, в том числе для мобильных устройств. Приложения становятся все сложнее по архитектуре, их нужно постоянно обновлять и обслуживать — важно, чтобы код можно было легко прочитать и понять. Приложение может жить десять лет. За это время сменится несколько разработчиков, которым нужно будет понимать код, написанный другими. Поэтому важно, чтобы программы не только решали свои задачи, но и были аккуратно, понятно написаны.
Растет популярность мобильной разработки и машинного обучения. Мобильная разработка стала привычным делом за несколько лет. Многие компании запускают только мобильные приложения, не думая об их браузерных и десктопных версиях. Из-за этого сильнее разрабатывают стандарты мобильной разработки. С одной стороны, это усложняет работу, с другой — сообществу выгодно обучить новичков этим стандартам.
Машинное обучение из диковинки становится неотъемлемой частью жизни — предсказывание и обработка данных слишком часто помогают в обычных ситуациях. Становится больше приложений по распознаванию лиц и обработке голосовых сообщений в текст.
Нужно писать код для всех платформ. Платформ становится все больше — в этом году Apple оснастила свои ноутбуки ARM-процессорами, которые раньше использовала только для смартфонов и планшетов. Поэтому разработчики должны учитывать все существующие технические возможности и писать приложения так, чтобы они работали везде.
Работодатели хотят посмотреть портфолио на GitHub. Если раньше при найме сотрудника работодатели смотрели приложения, к которым программист приложил руку, то теперь даже непрофессионалы все чаще хотят увидеть код. На Гитхабе можно посмотреть все проекты разработчика, увидеть, как он думает и пишет, как развивался и рос.
Программирование молодеет. Дети и подростки изучают программирование на онлайн-курсах или самостоятельно. Из-за этого уже в 13–15 лет они могут писать приложения, выкладывать их в Appstore или GooglePlay и даже зарабатывать деньги. Некоторые из них так начинают карьеру разработчика и конкурируют с выпускниками вузов и более старшими коллегами.
Еще пять статей о программировании
В Telegram-канале «Списать не получится» мы еще больше рассказываем о трендах в образовании и о том, как учиться в течение всей жизни и делать это с удовольствием. Подписывайтесь!