easy

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

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

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

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

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

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

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

Иногда бывает так, что человек просто хочет понять, каково это — быть программистом, и хочет ли он дальше этим заниматься. В этом случае нет смысла учить многопоточность в 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
Разбор: как устроены технически очки Apple Vision Pro
Разбор: как устроены технически очки Apple Vision Pro

Круто, дорого, технологично

easy
Как отправить JSON-данные на сервер
Как отправить JSON-данные на сервер

Первый шаг на пути к облачному хранению данных.

medium
Что такое CDN в интернете
Что такое CDN в интернете

Объясняем понятие Content Distribution Network

medium
Можно ли полноценно работать с планшета вместо ноутбука? Реальный опыт на Айпадах и Андроидах
Можно ли полноценно работать с планшета вместо ноутбука? Реальный опыт на Айпадах и Андроидах
Вам мало языка C? Попробуйте C++
Вам мало языка C? Попробуйте C++

Шустрый, мощный, весь обвешан классами.

medium
Как работает BitTorrent и почему пиратские торренты так сложно заблокировать
Как работает BitTorrent и почему пиратские торренты так сложно заблокировать

Конспект подкаста «Запуск завтра»

easy
easy