С какого языка программирования начать путь в IT?

Даниил Пилипенко, программный директор факультета backend-разработки направления «Программирование» Skillbox, директор центра подбора IT-специалистов SymbioWay, рассказывает, как нетехнарю выбрать первый язык программирования.

С какого языка программирования начать путь в IT?

Сегодня люди нетехнических специальностей всё чаще задумываются о смене деятельности и задаются вопросом: «Кто тут в IT крайний?» Оно и неудивительно: сфера услуг подвергается роботизации, списки профессий будущего заполонили разработчики всех сортов, а HR-специалисты сетуют на дефицит программистов, особенно разработчиков веб-приложений.

Какие бывают языки программирования и для чего они нужны?

На данный момент существует несколько десятков языков программирования. Среди наиболее популярных — Java, PHP, Python, C++, C#, Ruby, Kotlin, Swift, JavaScript, TypeScript и Go. Они отличаются по синтаксису (правилам написания кода), концепциям, принципам работы и назначению. Разные языки предназначены для разработки разного программного обеспечения (ПО), программ и приложений (все эти три термина — синонимы). Приложения бывают следующих видов: веб-приложения, мобильные приложения, desktop-приложения, а также встроенное программное обеспечение.

Чаще всего пользователь имеет дело с веб-приложениями. К ним относятся как простые лендинги, интернет-магазины, новостные и информационные порталы, так и практически все онлайн-сервисы, LMS-, CMS-, CRM-системы, современные социальные сети и другое. Для их разработки требуются разные программисты.

Обычно веб-приложения состоят из двух частей — frontend и backend. Frontend — это составляющая, которая «работает» в браузере, а backend — на сервере.

Разберем простой пример работы веб-приложения. Пользователь вводит в адресную строку своего браузера vk.com и нажимает Enter. Если немного упростить, происходит следующее: после нажатия клавиши Enter браузер делает запрос к одному из серверов ВКонтакте. После этого на сервере формируется ответ в виде программного кода главной страницы социальной сети, который отправляется обратно. Получив этот код, браузер отобразит его как красивую веб-страницу. Это будет код, где используются три технологии — язык разметки HTML, технология CSS и язык программирования JavaScript.

Язык разметки HTML описывает, из каких элементов состоит веб-страница — изображений, ссылок, полей форм, кнопок, текстов и других элементов. Технология CSS отвечает за стили, задающие все аспекты внешнего вида этих элементов — размеры, отступы, расположение друг относительно друга, цвета текста, фона и границ, шрифты и другие свойства. Язык программирования JavaScript придаёт веб-странице «интерактивность»: делает так, что элементы на ней реагируют на действия пользователя. Например, пользователь вводит в поиске некий запрос. В процессе набора этого запроса появляется список наиболее подходящих результатов. Откуда берётся этот список? С сервера: код на языке JavaScript, работающий на веб-странице, при вводе очередного символа поискового запроса отправляет его на сервер и запрашивает список подсказок, который приходит обратно на веб-страницу и отображается браузером.

На backend, который работает на стороне сервера, в качестве основного языка тоже может использоваться JavaScript, но чаще — более популярные языки, такие как Java, Python, PHP, Go или C#. Backend любого известного вам продукта, скорее всего, разработан на одном из них.

А что с рынком труда?

Последние 25 лет спрос на программистов растёт быстрее, чем предложение. По данным компании SymbioWay и портала HeadHunter, количество вакансий в этой сфере повышается ежегодно на 15%, а специалистов становится больше всего на 5%. С начала пандемии (март 2020-го) потребность в разработчиках в России увеличилась в 2,5 раза. Растущий дефицит приводит к резкому росту зарплат. К примеру, начинающий разработчик в Москве, Санкт-Петербурге или на удаленке может устроиться на свою первую работу с зарплатой в диапазоне 60–90 тыс. рублей в месяц, а уже через год-два выйти на цифры 140–220 тыс. рублей в месяц.

Ниже приведена диаграмма, описывающая структуру спроса на backend-разработчиков в России, по консолидированным данным ресурса «Хабр.Карьера»:

С какого языка программирования начать путь в IT?

Как сделать выбор?

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

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

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

Художники и дизайнеры. Больше склонны к работе с визуальной частью ПО, обычно любят формировать внешний вид продукта или влиять на него. Им проще всего начать работу в сфере frontend-разработки или разработки мобильных приложений. Здесь уже надо ориентироваться на собственные интересы — заниматься веб-сайтами и сервисами или мобильными приложениями. В случае последнего выбрать между Android и iOS очень просто: если телефон на Android, начинайте с программирования на языке Kotlin под Android, а если на iOS — то с языка Swift. Почему так? Потому что начинать лучше всего с того, что понятно и знакомо.

Маркетологи. Обычно работают с веб-сайтами и хорошо понимают их структуру. Для этих специалистов начать карьеру в IT было бы проще всего в сфере веб-разработки на языке PHP, поскольку большинство сайтов написаны именно на нём. Например, социальные сети ВКонтакте и Facebook. Если есть опыт работы с SEO (поисковой оптимизацией сайтов), то, скорее всего, понравится frontend-разработка (SEO-специалисты обычно хорошо знают язык HTML) или fullstack-разработка, в рамках которой вы сможете программировать не только frontend, но и backend на том же PHP.

Историки, политологи или социологи. Умеют собирать и анализировать факты, способны выявлять закономерности и прогнозировать будущие события. Людям с таким бэкграундом, возможно, будут интересны технологии искусственного интеллекта, которые умеют решать задачи предсказания, а также технологии поиска закономерностей и корреляций. Все эти технологии находятся в сфере Data Science, где основным языком программирования в настоящее время является Python.

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

Язык Java используется очень многими корпорациями: большинство банковских приложений («Альфа.Клик», PayPal, «Сбербанк.Онлайн») и другое программное обеспечение, связанное с финансами, разрабатывается на Java. Это один из самых безопасных языков программирования с точки зрения уязвимостей для хакерских атак. На Java также пишутся и многие другие системы и сервисы: «Яндекс.Маркет», «Яндекс.Музыка» или сервис «МойСклад» написаны на Java.

Для социальных и гуманитарных наук сегодня как никогда силен запрос на статистические методы и знание языков программирования, которые позволяют работать с большими массивами данных и автоматизировать те процессы, которые раньше выполнялись вручную. Я занимаюсь исследованиями в области политической науки и экономической истории и в своей работе использую Python и R. В мои задачи, которые я решаю с помощью языков программирования, входит сбор, обработка и анализ данных. В сбор данных входит, например, извлечение информации с сайтов (веб-скрейпинг), с картинок или текстов. Обработка данных подразумевает их преобразование для удобной последующей работы, например агрегирование индивидуальных данных. Анализ данных — это поиск закономерностей, проверка гипотез, ответ на содержательные исследовательские вопросы.

Я не считаю, что работа с языками программирования требует особого склада ума — например, такого, который позволяет переходить на высокий уровень абстракций и оперировать абстрактными объектами и, как мне кажется, присущ математикам. Так как в процессе программирования ты решаешь какие-то прикладные задачи, это требует навыка мыслить нестандартно, outside of the box, и ему можно научиться. Этот навык часто ограничивается школой, в которой мы привыкаем к мысли, что есть „правильный“ и „неправильный“ способы решения какой-либо задачи. Программирование, напротив, требует понимания, что существует множество правильных решений с разной степенью эффективности.

Наталья Василенок, PhD Стэнфордского университета

Я видела людей, не справившихся с освоением курса математики или программирования. Но причина не в том, что они были не способны усвоить такого рода информацию, им просто могли не нравиться точные науки. Уверена, при наличии мотивации любой „гуманитарий“ способен освоить написание кода.

Я начала изучать код примерно в 2013 году, не помню, чтобы у меня возникали какие-то сложности с этим. Python мы изучали по программе вуза, преподаватель посоветовал параллельно проходить курс от MIT на edx. Сложности возникали только по причине скромной по объему практики, приходилось самостоятельно занимать себя задачами, чтобы навыки не пропадали.

Сейчас я работаю в компании, которая занимается разработкой чат-ботов, без языка программирования задать поведение бота во время диалога было бы невозможно. Между запросом пользователя и ответом бота может пройти запуск нескольких функций, несколько проверок, исходя из которых будем выдавать ответ — всё это код, и этим у нас занимаются разработчики-лингвисты (в том числе и я)

Татьяна Семина,

к. ф. н., разработчик-лингвист

1515
52 комментария

Главное не начинать со Skillbox.

41
Ответить

Хорошие слова

3
Ответить

Все верно

Ответить

училась в EasyUM в Москве, классная школа, мне понравилась. подруга Avenue окончила. насчет Скиллбокс согласна - программа там нулевая, просто деньги на нас зарабатывают

Ответить

с турбо паскаля же, ну!

7
Ответить

Обычно все бросают это дело, после того как усвоили базу. Особо целеустремленные, доходят до практики. А дальше, что делать?! Куда податься?! Без опыта чтения "чужого" кода, разработки сложных приложений, работы в команде и других практических навыков, которые нужны в коммерческом программировании. А так, учи любой современный язык под ООП: php, Java, python, C# и т.п., не прогадаешь.

4
Ответить

Комментарий недоступен

1
Ответить