С какого языка программирования начать путь в IT?
Даниил Пилипенко, программный директор факультета backend-разработки направления «Программирование» Skillbox, директор центра подбора IT-специалистов SymbioWay, рассказывает, как нетехнарю выбрать первый язык программирования.
Сегодня люди нетехнических специальностей всё чаще задумываются о смене деятельности и задаются вопросом: «Кто тут в 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.
Художники и дизайнеры. Больше склонны к работе с визуальной частью ПО, обычно любят формировать внешний вид продукта или влиять на него. Им проще всего начать работу в сфере 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.
Главное не начинать со Skillbox.
Хорошие слова
Все верно
училась в EasyUM в Москве, классная школа, мне понравилась. подруга Avenue окончила. насчет Скиллбокс согласна - программа там нулевая, просто деньги на нас зарабатывают
с турбо паскаля же, ну!
Обычно все бросают это дело, после того как усвоили базу. Особо целеустремленные, доходят до практики. А дальше, что делать?! Куда податься?! Без опыта чтения "чужого" кода, разработки сложных приложений, работы в команде и других практических навыков, которые нужны в коммерческом программировании. А так, учи любой современный язык под ООП: php, Java, python, C# и т.п., не прогадаешь.
Комментарий недоступен
некоторое курсы это могу дать
Проблема изучения ЯП не в математическом или гуманитарном складе ума — а в усидчивости) Всех привлекают зп в 200-300 к, но новички не учитывают, что придется знатно попотеть, чтобы хоть до уровня джуна дойти когда-нибуь.
По-моему, java лучший вариант. Тут вы учите сразу и язык и паттерны программирования, потому как они в этот язык "вшиты" и вариантов использования гораздо больше чем у javascripta, например. Последний тоже обещает и фронт и бэк, но по факту, как выше написали, js - это набор не связанных друг с другом постоянно устаревающих самопальных костылей, которые по отдельности кажутся простыми, но их дохрена - вы просто убьете время на их освоение, а в конце вам скажут, что так кодить уже не модно.
Какая феерическая чушь. В попытке завлечь народу на свои говнокурсы пишется такая дичь. А потом люди тратят время и деньги, а после понимают что их гдето обманули. Без технического "склада ума" - который конечно же миф, ага - интересс к этому делу не возникнет, потому что сама рутина работы такова, что грамотно работать и получать удовольствие от работы может только технарь. И никто вайтишникам и даже джунам деньги платить особые не будет. А значит и денежная мотивация здесь не работает особо. Нельзя "не любить точные науки" - и любить программирование. Это из серии это что-то из серии пчёл против мёда.
Так основная аудитория курса, которые спрашивают , "а с телефона программировать можно". Чем не компетентнее аудитория, тем легче запудрить мозги.
Комментарий недоступен
Комментарий удален модератором
Комментарий недоступен
А лучше сначала Python, а уже в довесок к нему JS
Комментарий недоступен
Комментарий недоступен
Что такое бекэнд и фронэнд?
Мне сейчас 40, бизнес перестаёт приносить положительные эмоции, да и изрядно просел. С детства программировал для себя. В 90тые Assembler, потом PHP, сейчас посматриваю на GO. 90% своих задач решал сам. В принципе готов потратить год или два на глубокое погружение в язык и алгоритмы. Но как быть с корпоративной средой, как научиться разговаривать с работодателем и коллегами на одном языке. Это самая большая проблема. Как донести до работодателя, что я что-то из себя представляю. Я даже в сленге не ориентируюсь. Или нечего даже и думать, а рассматривать перспективу принеси-подай?
год-два? это уровень джуниора.
вы готовы лет 5-7 учиться кодить за 40 тысяч?
будете бегать за сеньором которому 25 и учиться, учиться, учиться
Я вот журфак закончил, прочитал 1000 книг, не могу найти работу — с какого языка мне начать путь в IT?
Комментарий недоступен
С любого ООП языка.
Комментарий недоступен
С английского.
Не с того который в Skillbox.
С JS, как по мне
Вот пристали то к JS. Если проводить аналогию, то к примеру Java это Ёлка (как основная конструкция программы), а JS это гирлянда, игрушки, и прочая мишура, как украшение или дополнение к конструкции .