Итак, вы хотите ворваться в программирование, но там десятки языков и непонятно, за что браться. Пусть эта статья вам немного поможет.
Сразу скажем: первый язык программирования не определяет вашу будущую профессию и не сковывает вас навечно. Вы можете освоить один язык, потом второй, третий и сколько угодно ещё.
В программировании главное — понять принцип решения задач и составления алгоритмов, а не знание конкретных команд языка. Ещё вы получаете дополнительный бонус: на изучение второго языка программирования у вас уйдёт в несколько раз меньше времени, чем на первый. Дело в том, что вам не нужно тратить время на понимание принципов, и останется только разобраться, как нужная вам вещь реализована в конкретном языке.
Мы не стали разбирать каждый язык или область применения, потому что их действительно очень много, а вместо этого постарались ответить на вопрос «А для чего мне нужно изучать мой первый язык программирования?».
Чтобы разобраться в программировании
Иногда бывает так, что человек просто хочет понять, каково это — быть программистом, и хочет ли он дальше этим заниматься. В этом случае нет смысла учить многопоточность в Python или углубляться в перегрузку операторов на C++.
Вместо этого лучше выбрать такой язык программирования, который будет легко освоить и у которого есть большая «группа поддержки» в интернете: форумы, учебные материалы и курсы. Раньше все начинали с Turbo Pascal 7.0, но сейчас этот язык морально и технически устарел, поэтому лучше выбрать что-то другое.
JavaScript. Самый лёгкий и структурированный язык с точки зрения обучения для новичка. Язык позволяет некоторые вольности и при этом содержит жёсткие конструкции вроде объявления переменных или оформления функций.
Golang. Реально простой язык, который можно освоить на начальном уровне за пару недель. При этом он из-за своих особенностей часто не позволяет написать «плохой» код, что хорошо для начинающих. Отдельный плюс — Go-рутины, которые идеально работают с многозадачностью.
Python. Если вы хотите сразу разобраться с ООП и всеми преимуществами объектного подхода в программировании — выбирайте Python. У него огромное сообщество в сети и много сфер применения.
Зарабатывать много денег
Если ваша цель — сразу на старте получать большую зарплату, нужно отбирать языки по востребованности прямо сегодня. Мы уже изучали рынок зарплат программистов в России, и вот картинка из этого материала:
Сразу видно, что максимум денег приносят 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.
Напоследок
Нет одного универсального языка программирования на все случаи жизни.
Если вы знаете один язык, другие будет освоить намного легче.
Чем больше языков вы знаете, тем шире ваш кругозор и тем ценнее вы как специалист.
Необязательно все дальнейшие задачи решать на своём первом языке программирования — всегда можно выучить что-то новое.
Приходите к нам учиться: на аналитика, бэкенда, фронтенда, веб-разработчика и дата-сайентиста. Мы обучаем не языкам, а целым профессиям.