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


Локация определяет язык программирования

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

1) Небольшой город

Представьте, что вы живете в небольшом городке в Амурской области. До экономических центров России далеко, а местного рынка сбыта нет. И вот начитавшись статей про то, какой Python крутой, вы его изучаете на базовом уровне и начинаете поиск работы.

Оказывается, что в радиусе 4000 тысяч километров никому не нужен программист на Python. Для удаленки слишком большая разница в часом поясе, да и не нужны никому джуны на python на удаленку. И вот вы вроде бы изучили Python, но при этом сидите без работы и никому не нужны.

С другой стороны в городе есть местный 1С-Франчайзи, который нанимает стажеров на 1С. И если бы вы сразу пошли учить 1С, то сейчас бы уже имели работу, получили возможность откладывать деньги и планировать переезд в город крупнее, где больше выбор работы и технологий. Либо у вас есть местная студия, что пилит сайты на PHP, и они могли бы рассмотреть вас.

2) IT-Столицы

Совсем иначе обстоят дела, если вы живете в Москве, Санкт-Петербурге или Новосибирске. Местный рынок вакансий предоставляет большой выбор технологий, поэтому можно посмотреть компании, которые нанимают стажеров, либо имеют свой учебный центр на какую-то определенную технологию.

Например, очень большое количество компаний нанимают стажеров на Java или .Net стек. И было бы логично выучить именно этот стек и через стажировку получить себе работу. Разница между Java и .Net заключается в том, что первые чаще всего разрабатывают софт для банков, телекома и логистических компаний (отчего зп повыше, но и задачи сложнее), а вторые работают с госсектором и торговыми сетями.

Большое количество компаний позволит достаточно быстро расти по карьере и по зарплате, и через 3-4 года можно будет рассчитывать на комфортный уровень жизни.

3) Миграция в другую страну

Это является неожиданностью для многих, но в разных странах разный уровень спроса на ту или иную технологию. Поэтому, если вы изучаете PHP и планируете переехать в США, то обнаружите, что на него крайне скуден и беден спрос. А вот вакансий на Python или Java наоборот много, причем в топовые компании.

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

Условия работы определяют язык программирования

Задачи разной сложности требуют ту или иную структуру организации труда. Поэтому огромные банковские порталы пишутся командами из тысяч программистов в больших, просторных офисах. А небольшие порталы делаются ребятами из небольших офисов в промзонах, либо из дома на удаленке.

1) Корпоративная среда

Если вы всю жизнь мечтали работать в Москва-Сити или подобных зданиях, посещать крупнейшие мероприятия для разработчиков, развивать какую-то сложную систему и рассуждать о том, как корабли бороздят просторы вселенной, то там нужно учить Java или .Net.

Корпоративный мир в России и мире крайне консервативен, поэтому они любят использовать проверенный, надежный стек, даже если за это нужно будет переплачивать. И тут у Java и .Net просто нет конкурентов.

Однако нужно понимать, что за своей консервативностью скрываются свои минусы. Удаленная работа в таких компаниях маловероятна. Пробовать что-то новое и «клеевое» вы не будете. А половина всей работы будет заключаться не в написании кода, а в согласовании проекта и написании документации.

2) Фриланс и свобода

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

Пока корпоративный программист строит UML таблицу связей классов и уровни абстракции, программист на PHP, Python или JavaScript запускает полноценный проект. К легким также относится мобильная разработка, ведь один человек может запускать полноценные приложения.

Не нужно слушать «крутых дядек»

На разных форумах и сайтах опытные разработчики советуют ребятам изучать какие-то экзотичные стеки типа Haskell, Rust, Kotlin, ведь это крутые интересные языки. Возможно, это действительно крутые языки, но работы на них минимум.

Опытные программисты 10 лет пишут на Java, имеют уже зарплаты под 4-5 тысяч долларов, поэтому они могут позволить тратить свое время, чтобы посмотреть какой-то новый стек в качестве хобби и рассказать о том, какой он крутой. У вас же нет время на эксперименты, вам нужно надежное решение.

Не нужно идти в ГеймДев

Играть в игры и разрабатывать игры - это две большие разницы. Если первое приносит удовольствие, то второе нет. Поэтому не нужно романтизировать это направление.

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

Как итог о выборе языка программирования

Старайтесь выбирать надежный стек, который имеет вакансии в вашем городе или регионе. Чем больше вакансий, и чем выше уровень оплаты, тем лучше. Ибо в хороших компаниях ценят своих разработчиков, готовы платить им достойную зарплату и создавать комфортные условия работы. И это гораздо важнее, чем «крутость» языка программирования.