Есть крутой инсайт — стать программистом в 2021-м проще, чем в условном 2010-м и гораздо проще, чем в 2000-м. Всё благодаря развитию языков программирования. Хотя интерфейсы становятся сложнее, а искусственный интеллект — умнее, инструменты для работы с ними упрощаются.
Мы поговорили с Русланом Бегалиевым. Он рассказал, чем отличаются друг от друга языки программирования, какой выбрать и как научиться кодить за десять минут.
Руслан Бегалиев. Разработчик клиентских сервисов в финансовой группе «ДОХОДЪ». Руководит своей студией разработки. Преподаватель института «Среда Обучения». Организатор сообщества WordPress в Петербурге
Языков программирования больше сотни, в этой статье мы разберём самые актуальные. Сначала о главном: вам не нужно знать все актуальные языки, чтобы стать разработчиком, хватит одного или двух. И выучить их не сложно.
Для выбора языка вам нужно знать, что: они делятся на группы, у разных групп разные задачи, и в каждой профессии свой язык программирования. Теперь подробнее.
Группы языков программирования
В программировании есть две группы языков, каждая выполняет свой пул задач: интерпретируемые (скриптовые) и компилируемые.
Рядом стоят языки разметки — они нужны для вёрстки, и технически это не языки программирования, но для наглядности добавим их в таблицу.
Интерпретируемые (скриптовые) языки программирования | Компилируемые языки программирования | Языки разметки |
для веба | для программирования устройств и игр | для вёрстки |
JavaScript PHP Python | Assembly С C++ C# Swift Java | HTML CSS |
Задачи языков программирования
Каждая группа языков выполняет свою задачу. Откроем сайт Checkroi.ru:
Всё, что вы видите на сайте — картинки, блоки и тексты — это разметка
Расположение блоков и заголовки — это язык разметки HTML. Шрифт и цвет — язык стилей CSS. Если навести курсор на одну из опций меню, она подсветится зелёным. Это тоже CSS.
Цветовые решения сделаны на CSS
Выпадающее меню — интерпретируемый язык JavaScript.
Всю незаметную работу делает код, написанный на интерпретируемом языке. Checkroi написан на PHP через WordPress — программу, которая помогает разработчику не собирать сайт с нуля, а писать поверх готовой базы.
Префикс «wp-» в коде означает «WordPress» . Чтобы увидеть код, кликните правой кнопкой мыши и выберите «просмотр кода страницы»
Интерпретируемые языки используют в веб-технологиях. Сайты, приложения, передача видео на смарт-тв — это веб, и это интерпретируемые языки.
На компилируемых языках пишут программы для девайсов: операционные системы телефонов и ноутбуков, игры, драйверы, иногда — сайты. Когда вы подключаете к компьютеру принтер, он работает через код, написанный на C или Assembly. Компилируемый язык нужен для работы с физическими устройствами.
iOS написан на компилируемых языках
Языки программирования по специализациям
Если вы хотите изучать программирование, выбирать нужно не из языков, а из профессий. Под каждую задачу есть свой язык: если вы хотите писать приложения для Android — это Java, для iOS — Swift. Но о них позже. Начнём с простых задач и простых языков.
Языки для вёрстки — языки разметки
Самый лёгкий путь в IT — вёрстка и языки разметки. Их всего два: HTML и CSS. Первый отвечает за расположение элементов на странице, второй — за визуальную часть.
Кликните правой кнопкой мыши и выберите «просмотреть код». Наведите курсор на строчку кода. Здесь можно посмотреть, какая строчка кода за что отвечает
Простой сайт-визитку вы можете сверстать «вручную», зная эти два языка. В решении более сложных задач помогают расширения-шаблонизаторы: pug для HTML, sass и less для CSS.
Профессия | Языки |
Верстальщик | HTML + pug CSS + sass + less |
Разметка — это статичная картинка. Когда вы пишете на языке разметки, вы не программируете задачу или функцию, поэтому HTML и CSS не называют языками программирования, а верстальщика — разработчиком. Но добавьте к ним интерпретируемый язык JavaScript — и вы — фронтенд-разработчик.
Какой язык программирования выбрать
У каждого языка программирования своё предназначение, мы разделили их на группы , чтобы было проще выбирать, исходя из задач, которые вы хотите решать: писать сайты, разрабатывать приложения под андроид или iOS.
Языки для веба — интерпретируемые
Следующие по сложности после языков разметки — интерпретируемые языки. Их используют в разработке сайтов, приложений и всего, для чего нужен выход в интернет.
Для фронтенд-разработки нужен JavaScript. На нём создаются динамические элементы оформления страницы.
В блоке «Темы дня» на сайте Checkroi чередуются анонсы статей, а ещё их можно листать, нажимая на стрелки. Это сделано на JavaScript.
При нажатии на иконку «Поиск» на месте рубрик открывается строка поиска, это тоже JavaScript.
Так выглядит элемент до нажатия на «Поиск»
Так он выглядит после
Разобраться в том, как работает JavaScript, можно за десять минут, даже если вы ничего не знаете о программировании. Дело в том, что вы будете сразу видеть результат своих действий. С другими языками вам нужно запускать код внутри специального окружения, JavaScript же читается браузером напрямую. Вы пишете пару строчек кода и видите, что получается.
Профессия | Языки |
Фронтенд-разработчик | JavaScript + HTML и CSS |
Чтобы стать фронтенд-разработчиком, выберите курс по JavaScript из нашей подборки
Самый простой язык в бэкенде — PHP, интерпретируемый язык. В нём можно разобраться за пару часов. Выучить Ruby тоже не сложно, но он менее популярен.
Профессия | Языки (на выбор) |
Back-end разработчик | PHP Python Ruby Java |
Если вы хотите писать на PHP, посмотрите подборку курсов PHP-программирования с нуля
Python нужен для обработки больших объёмов данных. На нём пишут нейросети, которые выполняют миллион действий в минуту, он же используется в big data.
Профессия | Язык |
Аналитик big data Разработчик ИИ | Python |
Научиться программировать на Python вы можете на одном из курсов нашей подборки
И самое сложное в бэкенде — Java, компилируемый язык. На Java программируют банковские приложения и всё, что связано с финансами: инвестиционные биржи, программы для брокеров. Он же нужен для разработки приложений на Android.
Чтобы выбрать, где учиться Java, посмотрите подборку курсов по Java
Языки для разработки приложений — компилируемые
С компилируемых языков началось программирование в том виде, в каком мы знаем его сегодня. Раньше разработчики писали машинный код — нули и единицы. Это было сложно и неудобно, и они придумали компилятор — программу, которая переводит более понятный, «человеческий» код в машинный.
Компилируемые языки технически более требовательны: если при написании кода на интерпретируемом языке можно отступать от некоторых правил, то с компилируемыми такое не пройдёт.
Из компилируемых языков проще всего выучить C# и писать на нём игры.
Профессия | Язык |
Разработчик игр | C# |
Научиться разрабатывать игры вы можете на курсах программирования на С#
Ещё один несложный компилируемый язык — Swift, его разработала компания Apple специально для iOS-приложений. Приложения для iOS так же можно писать на Objective C, как все делали до появления Swift, но он менее удобный. Приложения для Android пишутся на Java.
Профессия | Языки |
Разработчик приложений | для iOS: Swift, Objective C для android: Java |
Чтобы выучить Swift и Java, ловите подборку курсов по программированию приложений
Это высокоуровневые языки. Есть и вторая группа компилируемых языков — низкоуровневые.
Языки для программирования устройств — компилируемые
Если вы хотите программировать дроны или работать с Илоном Маском, вам нужно выучить Assembly и C. Также понадобится изучить высшую математику и теорию вероятности, желательно в ВУЗе. Низкоуровневое программирование — самая сложная область.
Профессия | Языки |
Инженер-разработчик | Assembly C |
IT-сфера развивается, и профессий в программировании становится больше. Мы перечислили основные профессии и основные языки — то, что вам нужно знать на старте.
Шпаргалка
Напомним главное. Языки программирования делятся на две группы, плюс отдельно стоят языки разметки. Внутри групп есть свои деления, и каждая группа решает разные задачи.
Интерпретируемые (скриптовые) языки программирования | Компилируемые языки программирования | Языки разметки |
для веба | для программирования устройств и игр | для вёрстки |
фронтенд JavaScript бэкенд PHP Python Ruby | низкоуровневые Assembly C высокоуровневые C++ C# Swift Java | HTML + pug CSS + sass, less |
Для большинства профессий достаточно знать один язык. Для некоторых — два-три, зато самых простых. Выбирайте язык исходя из своих интересов.
Профессия | Языки |
Верстальщик Фронтенд-разработчик Разработчик драйверов и операционных систем | HTML + pug CSS + sass + lessJavaScript, HTML+CSS PHP/Python/Ruby/Java Python Python C# для iOS: Swift, Objective C для android: JavaAssembly C |
Определившись с языком, выбирайте онлайн-курс и получайте новую профессию