Программирование, как современное хобби
Знакомство с Python
Python – тот редкий язык программирования, который претендует на звание простого и мощного. Он позволяет полностью сосредоточиться на решении конкретной поставленной задачи и не отвлекает от разработки сложным синтаксисом или структурой языка.
Python – достаточно прост в освоении и одновременно предоставляет эффективные высокоуровневые структуры данных совместно с простым и продуктивным подходом к объектно-ориентированному программированию. Синтаксис Python является невероятно элегантным в сравнении с другими языками программирования и больше похож на обычный английский язык. Это идеальный язык для написания различных сценариев и ускоренной разработки приложений на различных платформах и в разнообразных областях поскольку он является интерпретируемым и обладает динамической типизацией.
Необычным названием язык обязан своему создателю – Гвидо ван Россуму, который, вопреки расхожему
мнению, назвал его не в честь семейства неядовитых змей – питонов, а в честь популярного комедийного
телевизионного шоу на телеканале BBC под названием Летающий цирк Монти Пайтона
(англ.
Monty Python’s Flying Circus
).
Особенности языка программирования Python
Индекс TIOBE, который представляет собой индикатор популярности языков программирования на основе подсчета ежемесячных поисковых запросов трижды определял Python языком программирования года (2007, 2010, 2018).
На момент разработки сайта (осень 2020 г.) Python занимает свою самую высокую позицию в рейтинге TIOBE Index c 2001 года – 2-е место.
Python обладает положительными и негативными сторонами, как любой другой язык программирования, рассмотрим их подробнее.
Достоинства:
- Простота и низкий порог вхождения – чтение исходного кода программы на Python напоминает чтение английского языка, это позволяет сосредоточиться на решении конкретных задач, а не используемом языке программирования.
- Свобода и открытость – язык относится к свободному и открытому программному обеспечению (FLOSS), каждый имеет право свободно распространять копии этого ПО, читать исходные коды, вносить любые изменения и использовать его части в собственных программах.
- Высокоуровневость – во время написания программы разработчику не требуется вручную управлять памятью, которую использует программа – это происходит автоматически.
- Кроссплатформенность – благодаря своей открытости Python был портирован на множество аппаратных платформ и операционных систем: GNU/Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE и т. д.
- Мультипарадигмальность – язык поддерживает несколько парадигм программирования: процедурно-ориентированное и объектно-ориентированное.
- Расширяемость – Python может вызывать внутри себя программы на C/C++ для увеличения скорости работы всего приложения в целом.
- Распространенность – применяется в веб-разработке, анализе Big Data и в Data Science, создании прикладных приложений и игр, а также используется в системном администрировании для автоматизации задач.
- Востребованность – количество Python-разработчиков растет под стать числу проектов, представленных на рынке труда.
Основным недостатком Python является низкая в сравнении с компилируемыми языками производительность. Связано это с динамической типизацией языка – с одной стороны она ускоряет процесс разработки, с другой стороны одновременно с этим скорость работы самой программы получается низкой.
Личный опыт разработки
С программированием я познакомился еще в школе на уроках информатики, тогда нам преподавали основы языка программирования Pascal. После окончания школы и поступления в техникум на первом курсе я продолжал изучать Pascal, который со временем сменился на язык Assembly. В университете в ходе изучения программирования микроконтроллеров к Assembly добавились языки C/C++. Меня всегда увлекал процесс программирования, однако, последние названные языки программирования являются низкоуровневыми и вследствие чего имеют достаточно сложный синтаксис.
Хобби должно приносить удовольствие, поэтому мой взор пал на язык программирования Python, который обладая элегантным синтаксисом практически не имеет ограничений в сферах применения.
Изучение языка я начал с прочтения книги Укус Питона
автора К. Сварупа. Книга читается на одном
дыхании, содержит множество примеров и в ходе чтения даже придется написать небольшой проект для работы с
файловой системой. Данная книга – идеальный вариант для новичка согласно моему мнению. Второй книгой
для меня стала Изучаем Python
автора Марка Лутца – всемирно известный учебник, который
предоставляет всестороннее и глубокое введение в основы языка. Книга очень подробная и объемная, на
вдумчивое прочтение двух томов придется затратить не один месяц. На мой взгляд книга является отличным
учебником, но она может отпугнуть того, кто только начинает изучать программирование на Python.
Также могу рекомендовать к прочтению следующую литературу:
- Чарльз Петцольд.
Код. Тайный язык информатики
– путешествие из прошлого с его вычислительными машинами и телеграфом в эпоху современных микропроцессорных систем. - Адитья Бхаргава.
Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
– отличная книга для изучения алгоритмов, которые помогают писать наиболее эффективный код.
Некоторые примеры моих проектов
1. Консольный вариант игры Виселица
. Можно играть вдвоем или против компьютера, в словаре которого
более 30 тысяч существительных слов.
2. Менеджер паролей для электронной почты. Для входа необходимо ввести мастер-пароль
. Данные
приложение хранит в зашифрованном виде.
3. Асинхронный мессенджер с шифрованием сообщений. В данном случае сервер запущен на локальном компьютере.
Заключение
Для меня увлечение программированием прежде всего является инструментом, который учит всегда доводить дело до логического завершения и помогает развивать воображение и внимание к мелочам. Авторы некоторых исследований [1, 2, 3, 4, 5] утверждают, что программирование позволяет поддерживать человеческий мозг в тонусе, так как процесс подразумевает интенсивную когнитивную деятельность, которая подразумевает изучение чего-либо, и является интеллектуально трудной.
Это отличный способ бросить себе вызов – разобраться в чем-то что на первый взгляд кажется сложным, поработать с большим количеством информации и разными источниками.
Несмотря на то, что сам процесс может занимать много времени и не приносит мне дохода поскольку это мое хобби – мне все равно нравится время от времени разрабатывать какие-либо проекты, разобраться с новой для себя библиотекой и применить новые знания на практике.
Полезные ссылки
- python.org – Официальный сайт Python.
- pythonist.ru – Сайт для подготовки Python специалистов к собеседованию на работу.
- pythontutor.ru – Бесплатный курс по программированию на Python с нуля.
- codewars.com – Образовательное сообщество по компьютерному программированию.
- checkio.org – Ресурс для изучения и практики языка программирования Python.
- Swaroop C. – A Byte of Python.
- @Python – Англоязычный Telegram-чат для Python-разработчиков.
- @ru_python_beginners – Русскоязычный Telegram-чат для начинающих Python-разработчиков.
- @pythonres – Telegram-канал со множеством полезных материалов для изучения языка Python.
Обзор аналогичных разделов магистров прошлых лет
- Адарченко Александр Владимирович – Программирование на Java
- Пранскевичус Владислав Александрович – Функциональное программирование
- Похилец Николай Васильевич – Мой опыт профессионального программирования