Не только Python: 3 алгоритма выбора первого языка программирования

С какого языка стартовать в IT — одна из первых проблем, с которой сталкиваются будущие разработчики. Новички долго перебирают варианты, распыляются и теряют кучу времени.

Мы изучили рекомендации англоязычных программистов-блоггеров и составили сразу 3 инструкции. Какую из них выбрать — зависит от того, как быстро вы хотите начать обучение.

Если нет времени читать статью и разбираться — просто воспользуйтесь алгоритмом:

Плакат «Как выбрать первый язык программирования» можно скачать и распечатать
Содержание

Инструкция 1. Для тех, кто хочет сравнить несколько языков программирования и выбрать лучший вариант

  1. Познакомьтесь с основными направлениями в программировании и подумайте, чем бы вы хотели заниматься. 
  2. Изучите рынок ИТ-вакансий в своем регионе. 
  3. Выделите направления, которые вам нравятся и где много открытых вакансий. 
  4. Выпишите основные языки программирования, закрепленные за выделенными направлениями. Уделите каждому языку одну-две недели и познакомьтесь с его основами. Отмечайте: что вам нравится, не нравится и чего не хватает. 
  5. Когда протестируйте все языки — выберите один и переходите к обучению. 

Нет универсального языка программирования, который лучше остальных подходит для обучения — считает канадская разработчица Tiffany с ютуб-канала Tiff In Tech. Языки во многом напоминают строительные инструменты, где у каждого предмета свои возможности и ограничения. Молотком, например, удобно забивать гвозди, но невозможно напилить дров. Так и в программировании: на Swift вы можете написать мобильное приложение под iOS, но не под Android.

По теме
Кто ты в айти: как правильно оценить уровень своих компетенций
Кто ты в айти: как правильно оценить уровень своих компетенций

Инструменты и языки программирования обычно подбираются под задачу. Когда человек хочет построить дом, он первым делом не бежит на рынок за инструментами. Начинает с планирования проекта: описывает детали будущего дома и прикидывает, сколько это стоит. Без проекта сложно представить, какие инструменты, спецтехника и материалы понадобятся для строительства. Такой же подход полезно применять всем, кто хочет построить карьеру в ИТ: не зацикливаться на выборе языка программирования, а попробовать разобраться, в какой сфере вы хотите работать. 

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

Embedded Development

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

Embedded-разработчик должен хорошо разбираться в электронике, физике, сетевых технологиях и писать код на C или C++ — быстрых и наименее трудоемких языках программирования. Это направление для всех, кто любит создавать осязаемые вещи. 

Mobile Development

Мобильная разработка делится на два вида: нативная и кроссплатформенная. Нативная разработка предполагает создание приложений под операционные системы iOS или Android. Если вы решите писать приложения под iOS, то вашим основным языком программирования будет Swift; если под Android — Kotlin. 

Кроссплатформенная мобильная разработка — это когда вы с помощью одного кода охватываете сразу две системы: iOS и Android. Есть три популярных фреймворка, которые созданы специально для кроссплатформенной разработки: Flutter и язык программирования Dart, KMM и язык Kotlin или React Native и язык Java Script.

Game Development

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

В геймдеве есть два основных направления, которые привязаны к игровым движкам — вспомогательной экосистеме для разработки игр. Основные движки: Unity и Unreal Engine. Для разработки игр на Unity подходит язык C#; для Unreal Engine — C++.

Desktop Application Development

Это разработка настольных приложений под операционные системы Windows, Linux или Mac OS. В отличие от веб-приложений, десктопные программы не хранятся на удаленном сервере и не запускаются через браузер. Они могут работать, как автономные программы — без доступа к интернету.

Для создания десктопных программ разработчик должен освоить один или несколько высокоуровневых языков программирования вроде Python, Java, C++ или .NET. Кроме того, нужно понимать устройство операционных систем и владеть инструментами сборки, отладки, развертывания и тестирования приложений.

Web Development

Веб-разработка делится на два основных направления: фронтенд и бэкенд. Фронтенд — это отображение элементов в браузере: все, что можно прочитать, запустить и вывести на экран. Для фронтенда программист должен знать язык Java Script, а также языки разметки HTML и CSS. Для продвинутого уровня нужно изучить фреймворк React, чтобы разрабатывать пользовательские интерфейсы.

Бэкенд — это внутренняя архитектура, которая скрыта от пользователя когда он работает с браузером или мобильными приложениями. Чаще всего для бэкенда новички изучают следующие языки программирования: Java Script, Python, Java, Go. Дополнительно нужно уметь взаимодействовать с базой данных и языком запросов SQL. Для продвинутого уровня бэкенд-программисты изучают фреймворки: для языка JavaScript — Node.js, для Python — Django, для Java — Spring, а для Go — фреймворк Buffalo. 

По теме
Менторство в IT: как выбрать себе наставника
Менторство в IT: как выбрать себе наставника

Отдельно стоит выделить фулстек-разработчиков. Это программисты, которые знают фронтенд и бэкенд и могут привлекаться на всех этапах создания веб-приложения. 

После изучения основных направлений в программировании Tiffany рекомендует открыть сайт с вакансиями и проанализировать, какие языки популярны в вашем регионе. Это поможет понять, с какими знаниями вам будет проще трудоустроиться. 

Предположим, вам понравилась Embedded, Desktop и Mobile-разработка. Однако для Desktop-программистов вакансий нет, а для Embedded высокие требования к специалистам: работодатели не рассматривают кандидатов без диплома о высшем техническом образовании и опыта работы с электроникой. 

Остается мобильная разработка: у iOS-разработчиков выше зарплаты, зато для Android больше предложений для новичков. Flutter-специалисты практически не нужны. 

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

Чтобы выбрать оптимальный язык — зайдите в YouTube и найдите любой курс для новичков. В течение одной-двух недель изучите все языки, которые соответствуют выбранным направлением и обратитесь к своим субъективным ощущениям: выпишите, что вам понравилось, чего не хватало и какие моменты раздражали.

Для мобильной разработки нужно протестировать два языка: для iOS — Swift; для Android — Kotlin. Может быть так: вам понравилось лаконичность и синтаксис обоих языков, но не понравилось, что Android-приложения приходится оптимизировать под множество устройств. Вам проще работать со Swift.

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

Ничего не помогло? Остается монетка. Подкиньте и посмотрите, какой язык выпал. Обратите внимание на ощущение: если чувствуете радость от выбора, значит это ваш язык. Если грусть — учите язык, который вам не выпал.

Инструкция 2. Для тех, кто хочет начать как можно быстрее 

  1. На свое усмотрение выберите JavaScript или Python.
  2. Если сложно выбрать — учите JavaScript.

Для этой инструкции мы воспользовались советами инженера-программиста из Google YK Sugi с ютуб-канала CS Dojo. YK Sugi рекомендует не экспериментировать и выбирать JavaScript или Python — простые языки программирования для новичков. 

В 2022 году в исследовании Stack Overflow Developer Survey 2022 появился отдельный раздел, в котором подсчитан рейтинг популярных языков программирования для обучения. Этот рейтинг подтверждает, что большинство разработчиков действуют так, как советует YK Sugi: изучают JavaScript вместе с HTML и CSS или выбирают Python.

Stack Overflow: рейтинг популярности языков программирования для обучения

Если не хотите сравнивать JavaScript и Python — выбирайте JavaScript. Чтобы понять почему, посмотрите дорожные карты фронтенд и бэкенд-разработчика. JavaScript — это обязательный язык программирования для фронтендера и полезные знания для бэкендера. Кроме того, JavaScript применяется для многих задач бэкенда наравне с Python, Java, PHP и другими языками. Если вы начнете изучать фронтенд и внезапно переключитесь на бэкенд-разработку, знания JavaScript не пропадут зря.

По теме
6 цифровых навыков, которые нужны для самообучения
6 цифровых навыков которые нужны для самообучения

Другие преимущества JavaScript перечислили эксперты: бывший техлид в Google с канала TechLead и основательница DappCamp Притти Касиредди с freeCodeCamp.org:

  • Можно за короткое время запустить проект и поделиться результатами. Эти стимулирует больше практиковаться и нарабатывать портфолио. 
  • Быстрая обратная связь. Вы пишите код в IDE, обновляете браузер и сразу видите результат. Языки программирования вроде Java или Haskell так не могут — они требуют компиляции и усложняют обучение. 
  • Универсальность. Код на JavaScript работает в любом современном браузере, устройстве и операционной системе. Его можно использовать для разных целей: как язык сценариев, для создания веб-приложений или серверных API, для ботов и приложений под IOT-устройства, для настольных и мобильных программ, проектов виртуальной реальности. 
  • Доступность инструментов. Вы можете установить любую IDE и сразу писать код — больше не нужно никаких дополнительных программ. Если бы вы решили программировать под iOS или Android, то пришлось бы настраивать Xcode или Android Studio — это усложняет начало работы.
  • Много вакансий для начинающих и опытных разработчиков.
Дорожнfz картf фронтенд разработчика. Изображение: roadmap.sh
Дорожная карта бэкэнд разработчика. Изображение: roadmap.sh

Инструкция 3. Для тех, кто не выбрал специализацию и не хочет сравнивать языки программирования 

  1. Изучайте язык C.
  2. Если есть время, желание и энтузиазм — C, C++ и Java.

C — это первый язык программирования, с которым студенты знакомятся во многих колледжах. Знания языка C позволяют человеку не переживать за специализацию, пройти обучение и работать в любой ИТ-отрасли. Такое мнение сложилось у индийского разработчика, преподавателя и создателя ютуб-канала Telusko

По теме
Что должен знать junior тестировщик перед первым собеседованием
Что должен знать junior тестировщик перед первым собеседованием

При этом автор считает, что если новичку сложно выбрать специализацию и у него есть время на обучения, то после языка C он может выучить C++ и Java. Получится следующее: язык C даст общее представление о программировании, C++ позволит разобраться с работой объектов, а знания Java откроет дорогу к любому работодателю. 

Язык C высоко оценил и другой разработчик — американец, владелец Discord-сервера и автор ютуб-канала Engineer Man. По его мнению у каждого языка есть разные уровни ценности: S — лучший язык; F — худший; A-D — промежуточные варианты. Язык C вместе с Java Script находится на высшем уровне и считаются лучшими для работы. 

Engineer Man составлял рейтинг на основе опыта и оценивал языки по доступным фичам, производительности, сценариям применения, простоте изучения и удобству использования. Ниже — краткая характеристика и комментарии блогера по языкам. 

Уровень S

Языки: C, Java Script. Это мощные многофункциональные языки, которые по возможности стоит изучать и использовать в первую очередь. 

  • C — важнейший язык, которые лежит в основе всех вычислений: на нем написано большинство операционных систем, а также интерпретаторов и компиляторов для других языков программирования. За 50 лет C почти не изменился и сейчас на н ем можно написать операционку по стандартам 1989 года. Блогер считает C единственным языков, который вышло правильно разработать с первого раза. 
  • Java Script — вездесущий совершенный язык, на котором легко и удобно писать код. С ним легко начать работу для тех, кого интересует фронтенд-разработка. 

Уровень A

Языки: Rust, Python. Это популярные, полезные и быстрорастущие языки, которые из-за своих архитектурных особенностей не могут подняться выше. 

  • Rust — это язык, которые решает уникальную проблему: работает быстро как C++, не подвергает программу опасности ручного выделения памяти и за счет своего сборщика мусора работает без ущерба для производительности. Однако у Rust непростой синтаксис, поэтому новички не могут с л егкостью им пользоваться. 
  • Python — язык общего назначения, который из-за сверхпопулярности используется для всего. Даже для тех ситуаций, в которых он неуместен. 

Уровень B

Языки: C#, C++, Ruby. Хорошие и полезные середнячки для технарей. 

  • C# — альтернатива Java, если нужно писать программы под Windows. 
  • C++ — не решает новых проблем, но включает в себя множество дополнительных функций, которых нет в C. Полезен для разработки операционных систем, высокопроизводительных вычислений, а также в разработке видеоигр. 
  • Ruby — язык общего назначения и веб-разработки. Стал популярным из-за фреймворка Ruby on Rails. У Ruby лаконичный синтаксис, который трудно читать. 

Уровень C

Языки: Swift, Type Script, Perl, Kotlin, Go. Это удобные и функциональные языки, которые по разным причинам не смогли полностью раскрыть свой потенциал. 

  • Swift отлично заменил Objective-C, хорошо продуман и быстро работает. Однако его проблема — его нельзя использовать нигде за пределы экосистемы Apple. 
  • Type Script становится постепенно ненужным. Причина в Java Script, который ежегодно обрастает множеством дополнительных функций в синтаксисе. 
  • Perl — старый и сильно видоизменившийся язык, который не предлагает разработчикам уникальных функций и нужен только для обслуживания старых продуктов. Здесь непонятно, почему Engineer Man не присвоил Perl уровень D. 
  • Kotlin — мощный современный язык, приемник Java. Однако пока конкуренции между языками нет и Kotlin в основном используется для разработки под Android. 
  • Go — еще один проект от Google. Язык с отличной моделью параллелизма, который создавался для разработки веб-сервисов. Минусы: сложный синтаксис. 

Уровень D

Языки: Dart, Lua, Java, PHP. Это устаревающие тяжеловесные языки, которые удерживают позиции из-за огромного количество кода, которые пока не переписать. Если можно — разработчики используются более современные языки. 

  • Dart — язык от Google, который не решает новых проблем. Если бы не активное продвижение и фреймворк Flutter, то про него все бы уже давно забыли. 
  • Java — существует около 12 альтернативных решений, которые позволяют создавать байт-код совместимый с виртуальной машиной. Новые решения не уступают Java по производительности, но более удобны для работы. Преимущество Java только в количество кода, который нужно обслуживать. 
  • Lua — старый язык с ограниченным количеством вариантов использования. 
  • PHP — простой и удобный язык для старта и использования. Создатели приложили много усилий, чтобы наладить совместимость старой и новой версий. Но ранние версии были сырыми и поэтому в версии PHP 2021 года сохраняются проблемы 1998 года. Кроме того, PHP предназначен только для веб-разработки. 

Уровень F

Языки: Objective-C. Это сложный и плохо собранный язык с неудобным синтаксисом, от которого компания Apple отказалась в 2014 году. Его заменил Swift.

Рейтинг ценности языков программирование по версии ИТ-блогера Engineer Man

А вдруг я неверно выберу язык. Как быть, чтобы не прогадать? 

Языки программирования появились восемьдесят лет назад и развивались вместе с эволюцией электронно-вычислительных машин. Ощутите разницу: первые языки обрабатывали команды из нулей и единиц, а сейчас — управляют нейросетями и ИИ. 

По теме
10 бесплатных способов войти в IT: от самых очевидных к нестандартным
10 бесплатных способов войти в IT: от самых очевидных к нестандартным

В мире насчитывается около 500 языков программирования, а если технологии продолжат развитие, их количество будет увеличиваться. Причина в том, что многие языки устаревают и становятся невыгодными для коммерческой разработки. Для примера посмотрите, сколько проблем накопилось в Java и почему многие переходят на Kotlin. 

Схема развития основных языков программирования с 1957 по 2007 год. Инфографика: piermarcobarbe.github.io

Если планируете долгую карьеру в ИТ — высока вероятность, что через время вам придется выучить новый язык или сменить специализацию. Иначе вы можете стать заложником технологии — человеком, которые пишет старый код и не нужен рынку. 

Хорошая новость: многие языки программирования похожи по структуре. Поэтому когда выучите первый язык, второй и последующие даются проще — у вас есть основа, на которую останется наложить синтаксис и особенности нового языка. Чтобы в этом убедиться, почитайте пост на Reddit пользователя с ником davidccoin — он начинал работать в НАСА и за карьеру сменил сотню языков, от BASIC до Python.

Выбирать первый язык программирования и сомневаться — это нормально. Главное, не переоценивать важность процедуры и не думать, что от этого зависит вся карьера.

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

article widget img
Включить нельзя блокировать: как победить назойливые уведомления в приложениях.
В потоке бесконечных уведомлений трудно фокусироваться на делах. Пользователь Hacker News поступил радикально: уже два года он живет с отключенными пушами на всех девайсах. Удобно ли это? Читайте дискуссию.
Телеграм-канал про Образо­вание, карьеру и жизнь в IT
Телеграм-канал про Образо­вание, карьеру и жизнь в IT

Читайте по теме

Войти в IT
Войти в IT
13

Войти в IT

Как прийти в айти, задержаться там надолго и не попасть на галеру
nerd head nerd letter

Мир содрогнулся, когда узнал, что читают разработчики по ночам...

Ничего криминального — только полезная еженедельная рассылка от Bubble. Тренды в айти, лайфхаки и советы экспертов.

Подписывайся!

Ты — котик! Проверяй почту
Нам нужен настоящий адрес эл. почты
Спецпредложения
Курсы со скидками для пользователей Bubble
Выбрать курс
Освоить за выходные
Экспресс-курсы программирования
Выбрать курс
Баг пофиксил
Курсы для QA-инженеров
Выбрать курс
Звездочка к резюме
Курсы по карьерному росту
Выбрать курс
Подписывайся на Bubble в соцсетях
Подписывайся на BUBBLE в социальных сетях
Телеграм-канал про Образование, карьеру и жизнь в IT
Только полезный контент и ничего лишнего.