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

У нас нет однозначного ответа, но есть кое-что получше.

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

Итак, вы хотите ворваться в программирование, но там десятки языков и непонятно, за что браться. Пусть эта статья вам немного поможет.

Сразу скажем: первый язык программирования не определяет вашу будущую профессию и не сковывает вас навечно. Вы можете освоить один язык, потом второй, третий и сколько угодно ещё.

В программировании главное — понять принцип решения задач и составления алгоритмов, а не знание конкретных команд языка. Ещё вы получаете дополнительный бонус: на изучение второго языка программирования у вас уйдёт в несколько раз меньше времени, чем на первый. Дело в том, что вам не нужно тратить время на понимание принципов, и останется только разобраться, как нужная вам вещь реализована в конкретном языке.

Мы не стали разбирать каждый язык или область применения, потому что их действительно очень много, а вместо этого постарались ответить на вопрос «А для чего мне нужно изучать мой первый язык программирования?».

Чтобы разобраться в программировании

Иногда бывает так, что человек просто хочет понять, каково это — быть программистом, и хочет ли он дальше этим заниматься. В этом случае нет смысла учить многопоточность в Python или углубляться в перегрузку операторов на C++.

Вместо этого лучше выбрать такой язык программирования, который будет легко освоить и у которого есть большая «группа поддержки» в интернете: форумы, учебные материалы и курсы. Раньше все начинали с Turbo Pascal 7.0, но сейчас этот язык морально и технически устарел, поэтому лучше выбрать что-то другое.

JavaScript. Самый лёгкий и структурированный язык с точки зрения обучения для новичка. Язык позволяет некоторые вольности и при этом содержит жёсткие конструкции вроде объявления переменных или оформления функций.

Golang. Реально простой язык, который можно освоить на начальном уровне за пару недель. При этом он из-за своих особенностей часто не позволяет написать «плохой» код, что хорошо для начинающих. Отдельный плюс — Go-рутины, которые идеально работают с многозадачностью.

Python. Если вы хотите сразу разобраться с ООП и всеми преимуществами объектного подхода в программировании — выбирайте Python. У него огромное сообщество в сети и много сфер применения.

Зарабатывать много денег

Если ваша цель — сразу на старте получать большую зарплату, нужно отбирать языки по востребованности прямо сегодня. Мы уже изучали рынок зарплат программистов в России, и вот картинка из этого материала:

Самые высокооплачиваемые ЯП в России по данным Моего круга на конец 2018 года.

Сразу видно, что максимум денег приносят Elixir, Golang и Scala, потом идут Objective-C и Ruby. Не боитесь сложностей — учите Scala, хотите быть в тренде — Golang вам в помощь, любите простоту и ООП — начинайте с Ruby.

Важно: одно только знание языка не гарантирует сразу высоких зарплат (да и вообще ничего не гарантирует) — для этого нужно владеть инструментом на уровне мидла или сеньора. Но на старте зарплата у таких программистов обычно немного выше, чем у разработчиков на других языках.

Получить перспективную профессию

Здесь стратегия простая: вы учите какой-то язык программирования, сразу практикуетесь на каких-то небольших проектах, а за это время нужная отрасль вырывается вперёд и миру сразу нужны такие программисты как вы. Компании готовы платить много денег, у вас много работы и вы отлично знаете свой язык — вот результат такого подхода.

Чтобы это сработало, нужно одновременно две вещи: понять, какие отрасли будут активно развиваться ближайшее время и какие языки в ней используются.

Мы не знаем наверняка, что эти области будут гарантированно развиваться, но нам кажется, что к этому стоит присмотреться:

Машинное обучение и big data — R, Python, Scala.

Нейросети — Python, R, C++(для работы с нейросетями на низком уровне), CUDA OpenGL (для запуска нейронок на видеокартах).

Мобильная разработка — Swift, Java, Objective-C, C#.

Разработка ПО под микропроцессоры и «железо» — С++ и Ассемблер.

Решить конкретную и прикладную задачу

Здесь всё просто — смотрите, какая задача перед вами стоит, и в зависимости от неё выбираете язык. Если нужно посчитать всех посетителей сайта — берите любой веб-ориентированный язык, JavaScript, PHP, Golang, Java или что угодно ещё.

Обработать много процессов одновременно — используйте Golang, Erlang, Haskell или Ruby.

Хотите написать приложение для iOS — Swift.

Напоследок

Нет одного универсального языка программирования на все случаи жизни.

Если вы знаете один язык, другие будет освоить намного легче.

Чем больше языков вы знаете, тем шире ваш кругозор и тем ценнее вы как специалист.

Необязательно все дальнейшие задачи решать на своём первом языке программирования — всегда можно выучить что-то новое.

Приходите к нам учиться: на аналитика, бэкенда, фронтенда, веб-разработчика и дата-сайентиста. Мы обучаем не языкам, а целым профессиям. 

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
А вы читали это?
Как сделать красивый сайт на Вордпрессе
Как сделать красивый сайт на Вордпрессе

Быстрее, чем экспресс-дизайн. Дешевле, чем экспресс-дизайн. Лучше, чем экспресс-дизайн.

medium
Задача про находчивого альпиниста
Задача про находчивого альпиниста

Как спастись от укуса змеи, если все противоядия — одинаковые.

easy
Делаем своего первого чат-бота
Делаем своего первого чат-бота

Суперпростой способ создать бота, не зная программирования.

easy
Язык программирования 1С: что важно знать
Язык программирования 1С: что важно знать

На нём работает половина автоматизаций в российских компаниях

easy
Устанавливаем Вордпресс в Docker
Устанавливаем Вордпресс в Docker

Это быстрее и проще, чем кажется.

medium
Что такое прошивка
Что такое прошивка

Заглядываем внутрь простой электроники

easy
Синтаксис языка Mojo
Синтаксис языка Mojo

10 основных конструкций клона Python для ML

easy
Прокачиваем учебные тесты на Python: добавляем чтение из документа
Прокачиваем учебные тесты на Python: добавляем чтение из документа

Загружаем тесты из Word

easy
Как устроены рекомендательные системы
Как устроены рекомендательные системы

И почему они иногда предлагают совсем не то

medium
easy