ликбез

Гид по выбору первого языка программирования

Фото: SeaRick1 / Shutterstock
С какого языка начать изучение программирования? ALMAMAT Blog составил гид по выбору первого языка. Обучение на IT-рынке продолжается постоянно, и через время разработчик будет работать с несколькими языками, инструментами и технологиями. Сначала будет не очень понятно, но шаг за шагом все получится.
По популярности
По версии TIOBE Index, Python стал языком 2018 года. В январе 2019 года в ТОП-3 популярных языков программирования входят Java, С и Python. Индекс TIOBE имеет ряд критериев, вычисляется по данным 25 поисковых движков и отражает популярность языков программирования на мировом рынке. В Топ-10 TIOBE Index также входят: C++, Visual Basic. NET, JavaScript, C#, PHP, SQL, Objective-C. Дополнительно, в Топ-20 входят: MATLAB, R, Perl, Assembly Language, Swift, Go, Delphi/Object Pascal, Ruby, Pl/SQL и Visual Basic.
Дмитрий Грин
CEO ALMAMAT. Global IT University


«В Кремниевой долине С, Python, Java и JavaScript – топовые языки. Зная С, легко освоить другие языки. Python – потому что AI пишется преимущественно на нем. Java – универсальный и потому популярный».
По доступности
Python, JavaScript, Swift, Ruby, Java осваивают довольно легко.
По входу на рынок труда
Много вакансий для разработчиков, пишущих на Java, JavaScript, Python, SQL, C/C++, PHP. iOS-разработчику нужны Objective-C (сложный) и Swift (простой). QA-инженеру для автоматизации тестирования понадобятся, например, Java или JavaScript, но могут использоваться и другие языки. Читайте интервью ALMAMAT Blog с QA-инженером Setka Сабиной Хасановой.
По деньгам
Деньги на разных рынках принципиально разные. Например, в Кремниевой долине в разы выше. Много достойных вакансий для тех, кто пишет на Java (разработкой под Android) и Java Script; на С/С++, а также на Objective-С и Swift (разработка под iOS).

Глобально, на порядки больше денег приносят работа в компаниях-мейджорах и такие языки, как F#, Clojure, Groovy, Perl, Erlang, Rust, Scala, Go. Кстати, в этом же ряду популярный простой и лаконичный Ruby. А Rust любят многие в IT-комьюнити. Менее популярные языки часто изучают в дополнение к своему основному, широко используемому на рынке.

Доступные и популярные языки, такие как Java или JavaScript (JS), а также языки, дающие фундаментальные знания (С/С++), приносят хорошие деньги и позволяют быстро находить работу в России, на аутсорсе или с релокацией в другие страны.
По спектру применений
1
С и С++
Для тех, кто знает С/С++, много работы. Они находятся в хорошей форме, у них большое комьюнити и широкое применение. Они повлияли на развитие других популярных языков, а значит потом будет легче изучать новое. С++ это мультипарадигмальный язык общего назначения, не очень сложный и закладывающий добротный базис на старте.
2
Java
Широкое применение: Android-приложения, серверные приложения в больших компаниях, автоматизация тестирования, веб, Big Data, веб-приложения и др.
3
JavaScript
Node.js превращает JavaScript в язык общего назначения. JS это и фронтенд, и бэкенд. Подходит и в работе тестировщика, QA-инженера.
4
C#
Не самый простой язык для сложных проектов. Интересные сферы применения: игры; веб-сервисы; облачные сервисы; десктопные, мобильные, кроссплатформенные приложения и др.
5
Python
AI, игры, Big Data, веб, mobile и др.
По перспективам
JavaScipt, C/С++, Python, Swift, Java. (После Java легче изучать перспективные Go и Scala. Scala используется в таких компаниях, как Twitter, Asana, Soundcloud, Hootsuite, Groupon.com, Foursquare, Tumblr и Coursera, но как первый язык его брать не рекомендуют, лучше подготовиться). Есть прогнозы о том, что Go, Scala, R, Rust, Kotlin, Elixir, Clojure и Haskell будут набирать популярность, но начинать лучше с мейнстримового языка.

Отдельно стоит тут сказать про C/С++: немного сложнее в изучении, но если вы хотите сделать карьеру в IT, то это хороший выбор для старта. Вы будете глубже понимать программирование, а не только иметь навыки. Тут нужны баланс, правильные стратегия и тактика, об этом подробнее поговорим чуть позже. Чтобы зарабатывать и скорее войти на рынок, нужны навыки, причем именно те, которые описывают в своих вакансиях работодатели. А для того, чтобы стать архитектором, ведущим разработчиком, нужно еще и глубокое понимание в дополнение к стеку разработчика.
По намерениям
Какая сфера привлекает вас больше других?
1
«Хочу делать сайты и веб-приложения»
Java, JavaScript, HTML 5, Ruby, Python, SQL, PHP
2
«Хочу написать приложение для айфона»
Swift (потребуется макбук или iPad с клавиатурой, чтобы писать код). Коммерческому iOS-разработчику нужно знать Objective-С и Swift.
3
«Хочу писать приложения под Android»
Java и Kotlin
4
«Хочу сделать карьеру в IT»
Разница между «работать» и «сделать карьеру» в IT есть, как и на других рынках. Хорошо начать с С/C++, так часто пишут, потому что между ними есть несколько отличий, а в целом они похожи. В описании вакансий часто пишут именно С/C++. Работы много и на российском, и на калифорнийском рынках. Хорошие перспективы для развития и вертикального роста.
5
«Хочу работать с темой AI»
Python, C/C++
6
«Хочу быть работать с данными»
Python, Java, R, Scala
7
«Хочу работать в геймдев»
Базис – С# и среда Unity
8
«Хочу понять, как все это работает»
С/C++
9
«Хочу работать в робототехнике»
С/C++
10
«Хочу быстро сделать свой стартап»
Ruby, Java, Swift, JavaScript
11
«Хочу работать в IoT, интернете вещей»
С/C++, Python, Java, Go, JavaScript
12
«Хочу работать в известной компании»

Вот данные авторитетного ресурса Stackshare.io по использованию популярных языков программирования в известных компаниях:

Java (Airbnb, Instagram, Uber Technologies, Spotify, Netflix, Pinterest, Slack, Google, LinkedIn, Lyft)

Python (Instagram, Uber Technologies, Spotify, Netflix, Facebook, Dropbox, Pinteres, Reddit, Google)

С (Twich, Telegram Messenger)

JavaScipt (Airbnb, Instagram, Slack, Reddit, eBay, Asana, Coursera, Product Hunt, MIT)

C++ (Google, Twich, IBM, Lyft)

C# (Microsoft, Stack Overflow)

Objective-С (Apple, Instagram, Uber Technologies, Pinterest, Slack, Snapchat)

Swift (Lyft, Asana, Apple)

Go (Google, Uber, Medium, Lyft, Shopify, Twich, Codeacademy)

Ruby (Airbnb, Shopify, StackShare, Twich, Starbucks, Hulu, Kickstarter, Product Hunt, Hotel Tonight, MIT, Coinbase, Codeacademy)
13
«Хочу перейти на IT-рынок»
Если входить через специальность QA-инженера, то можно начать, например, с JavaScript, Java, Ruby или Python. Названия Java и JavaScript похожи, но свойства языков различаются, оба языка – топовые и характеризуются как доступные для новичков.
Получилось выбрать?
Этой информации достаточно, чтобы сделать выбор первого языка программирования. Выбирайте быстро и сразу приступайте к ежедневному изучению. Иначе в попытках определить «лучший» язык, запутаетесь и деморализуете себя, читая десятки источников. (Это классические грабли тех, кто так и не приступает к изучению). Программисты и другие IT-специалисты знают несколько языков с разными преимуществами и множество инструментов – они постоянно осваивают что-то новое. После первого языка будет следующий, на изучение уходят месяцы, а не долгие годы.

Свой стартовый язык имеет смысл выбрать между популярными (JavaScript, Java и Python), удобными (лаконичный Ruby, визуализирующий обучение Swift), перспективными (Go) и фундаментальными (С/С++: полно работы и, умея, положим, на С++, вы потом будете учиться писать на других языках быстрее).

Кроме того, QA-инженеру, например, не обязательно глубоко знать язык программирования, чтобы начать заниматься автоматизацией тестирования: можно развиваться в программировании параллельно ежедневной работе. almamat blog
Almamat рассказывает, как начать карьеру в IT