Этот вопрос мучает многих начинающих, это очень серьезный и нетривиальный вопрос. Я, в свое время, тоже много гуглил, искал ответы на форумах, спрашивал знакомых и т.д. и в итоге сильно ошибся. Я решил учить C++, но довольно быстро забросил это занятие, не смог свыкнуться со всеми сопутствующими сложностями как самого языка, так и его окружения. Очень большую отрицательную роль в моем неудачном опыте сыграл ВУЗ, в котором я тогда учился, и преподаватели. Почему? Да потому что они преподавали Delphi в качестве первого языка программирования, тем самым сильно искажая мое понимание и видение того, что же такое компьютерные программы, как они создаются и работают. Довольно глупо пользоваться каким-нибудь инструментом, не зная принципов, по которым он создавался и работает, не так ли?
Короче говоря, я, перепробовав множество языков и инструментов, осознал, что Python – почти идеальный язык программирования для начинающих, т.е. именно Python стоит учить первым. Далее я постараюсь аргументировать свою точку зрения.
Почему именно Python?
При подготовке этой статьи я нашел довольно интересное видео и, если Вам лень читать дальше, посмотрите его. Оно, конечно, носит рекламный характер, но точно передает смысл того, что я пытаюсь сказать.
Преимущества языка
Очень сложно кратко перечислить все преимущества этого языка, их действительно очень и очень много, я выделил лишь самые основные:
- простота изучения:
- поддержка различных парадигм программирования: структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование
- динамическая типизация
- автоматическое управление памятью
- полная интроспекция, т.е. возможность определить тип и структуру объекта во время выполнения программы
- механизм обработки исключений
- поддержка многопоточных вычислений
- удобные высокоуровневые структуры данных, такие как списки и словари
- простой синтаксис языка:
- вместо скобок { } или блоков begin end используются отступы в виде 4 пробелов; это позволяет отлично структурировать код
- упрощенный синтаксис традиционных операторов, таких как операторы условия if else, цикл for и т.д.
- простота объявления классов, функций и процедур
- легко читаемый код
- множество как стандартных библиотек, так и библиотек сторонних разработчиков:
- стандартная библиотека содержит средства для работы со многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP-серверов и клиентов, для разбора и создания почтовых сообщ
