Какой язык программирования учить первым и почему?

Этот вопрос мучает многих начинающих, это очень серьезный и нетривиальный вопрос. Я, в свое время, тоже много гуглил, искал ответы на форумах, спрашивал знакомых и т.д. и в итоге сильно ошибся. Я решил учить C++, но довольно быстро забросил это занятие, не смог свыкнуться со всеми сопутствующими сложностями как самого языка, так и его окружения. Очень большую отрицательную роль в моем неудачном опыте сыграл ВУЗ, в котором я тогда учился, и преподаватели. Почему? Да потому что они преподавали Delphi в качестве первого языка программирования, тем самым сильно искажая мое понимание и видение того, что же такое компьютерные программы, как они создаются и работают. Довольно глупо пользоваться каким-нибудь инструментом, не зная принципов, по которым он создавался и работает, не так ли?

PythonКороче говоря, я, перепробовав множество языков и инструментов, осознал, что Python – почти идеальный язык программирования для начинающих, т.е. именно Python стоит учить первым. Далее я постараюсь аргументировать свою точку зрения.

Почему именно Python?

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

Преимущества языка

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

  1. простота изучения:
    • поддержка различных парадигм программирования: структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование
    • динамическая типизация
    • автоматическое управление памятью
    • полная интроспекция, т.е. возможность определить тип и структуру объекта во время выполнения программы
    • механизм обработки исключений
    • поддержка многопоточных вычислений
    • удобные высокоуровневые структуры данных, такие как списки и словари
  2. простой синтаксис языка:
    • вместо скобок { } или блоков begin end используются отступы в виде 4 пробелов; это позволяет отлично структурировать код
    • упрощенный синтаксис традиционных операторов, таких как операторы условия if else, цикл for и т.д.
    • простота объявления классов, функций и процедур
  3. легко читаемый код
  4. множество как стандартных библиотек, так и библиотек сторонних разработчиков:
    • стандартная библиотека содержит средства для работы со многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP-серверов и клиентов, для разбора и создания почтовых сообщ