По теме выбора языка ходит множество холиваров, и однозначного ответа нет. За всё время я нашёл множество вариантов, от С до JS. И что забавно, любой вариант - правильный.
Эта заметка скорее не о выборе первого языка программирования (хотя и это тоже), а о том, почему я выбрал именно Python, и из каких соображений исходил.
Сфера применения
В один прекрасный момент я задумался - а что я хочу? Базовые вещи, типа циклов и массивов я усвоил, но не до конца понимал, а что хочу с этим делать, то есть что я хочу делать с программированием? Ведь, по сути, программирование - это инструмент, с помощью которого достигаются цели - делают игры, бизнес, собирают, обрабатывают и визуализируют данные, автоматизируют рутинные задачи и делают мир лучше. Но что конкретно я хочу сделать с этой волшебной палочки? Прекрасно, если у тебя есть цель, и ты просто следуешь ей. Условно, хочешь делать игры - учишь C#/C++ и Unity/Unreal и просто двигаешься вперёд. Плохо, если тебя штормит из стороны в сторону, тебе интересны многие технологии из разных сфер (что, в общем-то, хорошо) и бросаешься из одной одной области в другую даже не прокачавшись.
Для себя я выделил несколько областей, которые мне интересны сейчас и, скорее всего, будут интересны в будущем: web, gamedev и data analysis. И так уж вышло, что во всех областях задействован Python.
Впечатления от языка
Дело тут не только в синтаксисе, к которому можно привыкнуть, даже если он ужасен, хотя большую часть времени программист читает код, и лучше бы синтаксис вам нравился, а ещё и в конструкциях языка, приёмах. В этом плане с Python мало кто может соперничать, он лаконичный, приятный, соотношение количества строк кода к полезности выше, чем даже в других высокоуровневых языках. Конечно, можно поговорить о скорости, но зачем это делать, если вы даже не доросли до junior? К тому же, как мы выяснили, язык - это инструмент, и если вы доростёте до того момента, когда вам нужна будет жуткая скорость, просто выберите другой инструмент.
Многозадачность
Этот пункт выливается из первого. У python есть огромнейший плюс, из-за которого он идёт в Unix-системах в комплекте, помимо лёгкости, конечно же. Это возможность писать маленькие утилиты, которые автоматизируют рутинные вещи. Что-то спарсить, быстренько посчитать и прочее. И да, я бы не ставил это в плюс, если бы не столкнулся с подобной задачей.
Сообщество
Возможно, это покажется избитым аргументом, но я действительно считаю, что это очень важно. Дело в том, что популярность языка (или фреймворка) определяет не его крутость, скорость, удобство, а сообщество. Чем оно больше, тем больше можно найти материала в сети по языку, больше ошибок на Stack Overflow, ну и нанять людей с компетенцией для запуска продукта. Да, вот так всё просто.
Лёгкость обучения программированию
Может показаться, что это тот же самый второй аргумент, но я разделяю приятность и лаконичность с лёгкостью в обучении именно программированию. Циклы и массивы - это далеко не конец, поэтому хорошо, если будет как можно меньше отвлекающих факторов в обучении сложным концепциям.
Приведу простой пример: мне нравится PHP, его простота и хорошая (одна из лучших, на мой взгляд) документация, но есть вещи из прекрасного далёко, которые немного раздражают. Например, теги, четыре способа подключения файла + автозагрузка класса, точка вместо плюса при конкатенации, знак доллара и прочее вещи, от которых легко, но невозможно избавиться. И если эти доводы выглядят, как просто недовольство синтаксисом, то вот ощущение, будто сообщество PHP редеет на глазах уже серьёзная проблема. Почти вся информация, которую нахожу в сети, кроме Хекслета и документации, устарела лет на 5. И это при том, что язык так стремительно развивается и стал самым быстрым интерпретируемым языком. У Python же не было тяжелого детства, чувствуется удобство. Конечно, Python не идеален и у него есть недостатки, о которых я пока не знаю, но узнаю в процессе обучения.
А на этом всё. Возможно, я наговорил полной чуши, буду рад, если поправите.