Приветствую вас, друзья! Пришло время перейти к обсуждению одной сложной темы — какой язык программирования (ЯП) выбрать? Посмотрим на топ языков, узнаем немного о самих языках и в конце попробуем выбрать язык для начала. Будет занимательно!
Язык не сделает из вас профессионалом и не устроит вас работу. Если вы специалист в своем деле, то работу найти не будет проблемой, даже с не популярным языком. Помните это.
Что там с топами?
Информация взята здесь.
Взглянув на список, можно решить, что тут все понятно — бери один из первых девяти и дело в шляпе. Существует Dart (4-й с конца), который создали в Google на замену JavaScript, он молод, но его уже активно используют кампании — «можно ли его выбрать?». Или возьмем Swift это язык компании Apple, занимает 13 место, но найти работу с ним будет не проблема. Вероятно, этот топ о количестве, а не о качестве. В таком случае, посмотрим, что любят пользователи Stack Overflow, они же не ошибаются.
Rust— язык вышедший из под крыла Mozilla, занимает 15 место в списке профессионалов, однако его обожают более 86% процентов опрошенных. Julia поднялась с последнего на шестое! Что за зверь этот Julia — язык созданный для сложных математических вычислений и написания программ общего назначения. Тогда понятно, почему Джулия на последней строчке у профессионалов, так как не все проводят математические вычисления такого уровня. Python — язык, который у всех на слуху, он занимает третье место и там, и там. Информации для размышления много и все еще не понятно, что выбрать для начала. Может нам поможет информация по зарплатам?
«Все страньше и страньше! Все чудесатее и чудесатее!» Язык Perl, который занимает последние строки списков, здесь на первом месте... При этом, этот язык считается устаревшим, хотя его еще можно много где найти: от десктопных приложений до веб-сайтов и серверов. Функциональные ЯП Scala и Haskell также в списке лидеров, они не самые популярные, однако востребованы на рынке. Стоит обратить внимание на молодой язык Go, находится ближе к середине списка профессионалов, высоко оценен пользователям и один из лидеров по медиане зарплат.
Забудем Stack Overflow, ведь статистика с одного ресурса не так показательна. Возможно, станет яснее вместе с запросами в гугле? Мы сразу увидим Python на первом месте.
Данные взяты отсюда.
Как тогда выбрать язык?
Статистика и топы это не то, на что стоит опираться в первую очередь. Выбор языка зависит от направления, в котором вы собираетесь двигаться и как быстро, также от личных предпочтений.
Чем популярнее язык, тем проще найти решение вопросов. Но это не делает его лучшим.
С выбором мы разберемся, учитывая такие факторы: направление, простота обучения, поиск вакансий и количество ресурсов.
Языки и направления.
Веб разработка. Frontend.
Начнем с языка разметки HTML и стилей CSS, они сделают сайт структурированным и красивым. JavaScript предоставляет интерактивность сайтов. Если хотите заниматься сайтами, то HTML, CSS и JavaScript будут отличным выбором — просты в изучении, это подтверждает высокий спрос на рынке и количество информации в сети.
Dart используют как замену JS. Авторы языка создали его похожим на английский язык, чтобы можно было быстро научиться или перейти на него с другого языка. В этом поможет официальная документация. Сторонних ресурсов для обучения не много, однако язык набирает популярность и скоро поиск информации не будет проблемой.
Backend и приложения.
К Бэкенду относится любое приложение или сайт, это часть, которая скрыта для пользователей, в которой прописана логика работы сервиса.
- PHP это один из самых распространенных языков для разработки сайтов и веб-приложений, 79% сайтов написано на нем: Facebook и «ВКонтакте» одни из них. PHP позволяет быстро разработать сайт или приложение, благодаря встроенным инструментам в язык. Найдете учебные ресурсов без проблем. Учитывая выше сказанное — получится быстро освоить язык и войти в разработку.
- Node.js это платформа для написания серверной части на JavaScript. Удобно для начинающих программистов, которые не решили в каком направлении двигаться. Достаточно выбрать один язык и работать, а со временем выбирать желаемый путь. На JavaScript пишутся, и Frontedn, и Backend сайтов. JS применяется в десктоп приложениях: в офисных пакетах Microsoft и OpenOffice, в приложениях компании Adobe. С помощь фреймворков разрабатывают мобильные приложения.
- Java — универсальный кросс-платформенный язык программирования, который предоставляет возможность писать: веб-приложения; десткопный соф; игры, например Minecraft и мобильные приложения на Android. Также Big Data использует Java для научных целей. Традиционно у этого языка сильные позиции в финансовом секторе и промышленном программировании. Из минусов пользователи отмечают довольно сложный синтаксис и количество кода для написания программ. Однако количество вакансий поможет выбрать работу в интересных для вас областях.
- Python как и Java это ЯП общего назначения, отличие — на Python разработка проходит намного быстрее, так как в инструментах у него простой синтаксис и спроектирован для прототипирования. При этом он способен и на крупные проекты. Основные области применения «Пайтона»: искусственный интеллект(AI) и Big Data — тут Python лидер среди всех языков. Также применяется в веб-приложениях. Выбор этого языка позволяет двигаться в любом направлении в айти.
- Go — простой, эффективный и дружелюбный к новичкам язык программирования, это подтверждает рост его популярности. Отличительной особенностью отмечают создание масштабируемый и гибких проектов. Go используют компании: IBM, Intel, Twitch, Ozon, Avito и «ВКонтакте». Рынок вакансий растет и спрос на golang программистов тоже.
- Dart — язык Fullstack разработчика. На нем пишут веб-приложения с нуля и это удобно, ведь нет перехода с одного на другой язык. На Dart пишут и мобильные приложения под Andoid и iOS. Простой в освоении, поскольку Google активно продвигает и работает на нем: Gmail написан на Dart. Другие компании также проявляют интерес — программистов не много и организации заинтересованы в кадрах.
- C# и .Net это язык разработан и поддерживается Microsoft. Пользователи Windows встречаются с ним постоянно, любители Adobe пользуются приложениями написанными на Си-шарп. На этом языке создаются антивирусное ПО и мобильные приложения. И для создания игр этот язык подходит — Unity, платформа для создания 2D и 3D игр, активно используют «Шарп». Для программистов знакомы среда для разработки Visual Studio и редактор кода VS Code. Стать разработчиком и найти работу не будет проблемой.
Давайте прервемся на мгновение и отдохнем.
Фотография Наиля Гильфанова.
Основа выбора языка — нравится ли вам на нем писать или нет. Никакие технологические плюсы и минусы на это не влияют.
- C, C++ это мастодонты ЯП и используют их во многих областях. Всему виной — контроль памяти и программирование на уровне железа. Они относятся к низкоуровневым языкам программирования. Контроль памяти и близость к железу помогают создавать высоко нагруженные и при этом быстрые эффективные сервисы: Яндекс активно использует «Плюсы». Не везде нужна такая скорость вычислений, однако C и C++ используют в аэрокосмический машинах, где каждая доля секунды играет значение. Си применяют в робототехнике, а на C++ написано большинство AAA компьютерных игр. Чем больше контроля дает язык, тем сложнее на нем писать и это увеличивает порог вхождения. На этих двух языках пишут софт любого типа, поэтому если выбор пал на них, то для вас открыто любое направление.
- Rust старается стать преемником C и C++ — контроль памяти и низкоуровневость. Разработчики создали его опираясь на безопасность и отсутствие утечек памяти. Многие компании начинают осваивать язык, Mozilla практически полностью переписала свой браузер на Rust. Rust препочитают фирмы, где необходимы быстрые и безопасные вычисления: блокчейн, браузеры, операционные системы. Разработчики хвалят и любят, однако он считается сложным для первого языка. Хоть и язык многофункциональный, пока Rust используется в нишевых областях и это затрудняет поиск работы.
- Ruby — схож с Python во многом, его можно встретить в различных областях айти, однако основная ниша языка это веб-разработка. Из известного софта на Ruby: утилита командной строки Homebrew и ПО для обеспечения информационной безопасности Metasploit. Хотя его популярность в последнее время упала, Ruby остается удобным язык с лаконичным синтаксисом, дает возможность быстро писать красивый масштабируемый софт. Он создан, «чтобы сделать программистов счастливыми» и выбрав его, рубист без работы не останется.
- Kotlin и Swift. Мобильный рынок постоянно растет, сложно представить человека без мобильного устройства, будь то телефон или часы. Тут и вступает эта парочка. Anroid разработка это дело Kotlin, молодой язык из семейства Java. Swift язык Apple, на нем пишется современный софт компании. В мире переносных устройств все происходит быстро, поэтому разработка не отстает и в этом помогает простота этих двух языков. Выбирайте Android, iOS или все сразу, учитесь и компаниям, нуждающимся в мобильных приложениях, вы пригодитесь.
- Haskell, Scala, F# и другие функциональные языки программирования. Мы будем разбирать эту группу подробнее в будущих статьях. Часто функциональные языки применяют в финансовом секторе — крупные банки и другие компании, работающие на этом рынке, применяют его для разработки собственных инструментов. Бизнес применяет их из-за гарантированной точности вычислений без ошибок. Так же эту группу встречают в инструментах для обработки и написания алгоритмов, которые используют естественные языки. Специалисты функционального программирования высоко ценятся, поскольку порог вхождения достаточно высок и существует нехватка кадров.
- Julia, R, MathLab это языки для обработки сложных математических вычислений. Применяются для работы с большими данными, машинным обучением и искусственным интеллектом. Языки написаны для упрощения задач ученым и поэтому отсутствует сложный синтаксис. Статический анализ, математические расчеты, сложные алгоритмы — про вас, тогда выбирайте эти языки. Но узкая специфика ограничивает количество вакансий.
Подводим итог и выбираем язык.
Языков программирования много, у них существуют сходства и различия. С какого стоит начать. Определим три ситуации: нужно быстро найти работу; есть время опробовать разные ЯП, поиск работы в приоритете; никуда не спешу.
Выбор первого языка не так важен — хороший разработчик должен знать несколько языков.
1. Быстрый вход в разработку.
Изучите рынок вакансий, выберете понравившуюся и изучайте необходимые технологии. В этой ситуации стоит выбирать из самых популярных языков: больше курсов, больше информации, больше вакансий.
- Python
- JavaScript
- Java/Kotlin
- PHP
- C#
2. Есть время подумать.
Ситуация схожа с первым пунктом. Определите направление, смотрите различные вакансии и объедините языки по группам. Интересуют веб-приложения: Ruby, PHP, Python, Go. Работа в крупных компаниях: C++, Java, Python. Делите языки на небольшие группы, тогда сможете углубится во все. Создайте идентичные приложения, прочувствуйте язык — нравится на нем писать или нет. Тогда вы найдете работу, которая принесет удовольствие.
3. Никуда не спешу.
В такой ситуации один совет — пробуйте и смотрите, что по душе. Выбирайте менее популярные языки, погрузитесь в них. Помните на людей, которые обожают и знают язык, всегда найдется спрос!
Пора отдыхать, теперь пора переварить информацию и выбрать тот самый язык программирования!
Подписывайтесь на телеграм канал, там будет еще больше контента!
Мы уже продолжим наше приключение по миру айти в следующий раз. Спасибо за внимание и до встречи!