Обложка: Дайвинг в Python: история одного опыта

Дайвинг в Python: история одного опыта

Лейсан Сарварова

Лейсан Сарварова

инженер-программист 2 категории компании ICL Services

Недавно я приступила к изучению одного из самых распространённых, а, согласно некоторым источникам, и самого популярного на 2021-й год языка программирования — Python. В данной статье мне бы хотелось рассказать о своем пути в его изучении. Ввиду того, что «я не волшебник, я только учусь» (дисклеймер – я могу ошибаться), данная статья – лишь субъективное видение ситуации на данный момент.

Почему Python?

Меня всегда безумно вдохновляла мысль об искусственном интеллекте – научить машину выполнять функции, которые считаются прерогативой человека — это же вау! Однако, человеческий мозг устроен так, что в один момент просто восхищаться стало неинтересно, и я захотела попробовать себя в этом поприще. Что делать и куда идти я, конечно же, не имела понятия, поэтому поступила как любой человек в 21-м веке – зашла в браузер, открыла Google и ввела запрос «Artificial Intelligence». И, как говорится, «понеслась» — куча статей, ссылок, форумов, видео и иного контента было мной просмотрено, как итог – Data Science, Machine Learning и, как следствие, Python.

Почему Python так популярен?

Вообще, Python используется не только в области Data Science – большое количество ресурсов описывают его использование в других сферах – как минимум, в веб-разработке, game developing, автоматизации. Почему же он популярен? Давайте разбираться:

  • Python — один из самых простых и понятных языков программирования – если вы знаете английский, то разобраться в том, что делает программа, не составит большого труда. Python играет на стороне разработчика и позволяет ему заниматься решением своих задач, а не отвлекаться непосредственно на написание кода;
  • кроссплатформенность — язык отлично работает с разными операционными системами. Насколько я знаю, есть также реализация интерпретаторов и для мобильных устройств;
  • Python высоко востребован на рынке труда;
  • Python имеет большое количество библиотек, если говорить именно о ML, то это Numpy, SciPy, SciKit-Learn, Pandas. Библиотеки значительно упрощают жизнь разработчику – не нужно изобретать новые методы и функции: все уже давно придумано, написано, протестировано – остается лишь правильно применить;
  • поддержка языка и его популярность. Помимо официальной документации, ввиду распространённости языка есть огромное количество форумов, где можно найти ответы на свои вопросы. Эта особенность снова превращает Python в один из лучших языков для старта в программировании.

Однако, ничто неидеально – у Python также есть недостатки: в частности, его скорость и потребление памяти.

Python называют медленным не зря – иногда на выполнение операции может понадобиться в 25 раз больше времени, чем, например, в C++ (ссылку на сравнение оставлю ниже) – это обусловлено в большей мере динамической типизацией. Говоря простым языком, динамическая типизация – это когда во время написания кода разработчику не нужно указывать тип данных, интерпретатор определит тип переменной сам во время выполнения программы (динамически). Программисту удобно, но небыстро – такой подход требует большего резерва памяти для каждой переменной. Больше памяти – больше времени на вычисления. Также из-за динамической типизации Python может выполнять только одну задачу за раз, а это значит, что ни о какой многопоточности речи не идет, и это также является минусом в сравнении с другими языками.

Весомые ли это недостатки? Решать каждому самостоятельно – зависит от скопа задач, которые в итоге нужно решить.

Что я уже сделала?

Окей, с тем, что я буду изучать Python – определилась, а что дальше? Как и прежде – я пошла в Google. Пути развития два – пойти в школу или учить самостоятельно.

Ввиду того, что ИТ-специальности набирают обороты, а вместе с тем растут и их зарплаты, все больше людей интересуются этой областью. Это, в свою очередь, создает рынок платных программ обучения, которыми наполнен интернет: если погуглить «изучение питона с нуля», то первыми ссылками будут рекламы разных курсов, которые обещают сделать из человека крутого разраба за полгода-год, помочь с трудоустройством и еще много чего.

Честно сказать, я тоже рассматривала вариант покупки курса, но так на него и не решилась – авторитетных знакомых, которые изучали программирование с помощью таких ресурсов, у меня на тот момент не было, отзывы в интернете слишком противоречивые, а сумма обучения — внушительная. В моем скептическом восприятии мира так не бывает: заплатил денюжку, прошел курсы за полгода и сразу стал middle-разработчиком… ну такое. Однако, если вас это не смущает – вероятно, такие курсы для вас. Если увидите реальный результат – напишите статью об этом для таких же скептиков, как я.

Вариант, который выбрала я, – самостоятельное изучение

Поскольку практики у меня не было, я решила начать с одной из самых популярных книг для изучения языка – A bite of Python (Укус Питона). Я остановила свой выбор на ней, прочитав кучу положительных отзывов. Плюсом было то, что у нее есть перевод на русский: я знаю английский, но воспринимать абсолютно новую информацию предпочитаю на родном языке.

Что могу сказать? Книга оказалось действительно понятным справочником для «первоклассников» в изучении питона – никакой воды, отличные примеры и объяснения. Это даже не учебник, это методичка. Если вы, как и я, не знаете, с чего начать, то рекомендую. Даже, если по какой-то причине книга вам «не зайдет», потраченного времени будет не жалко, поскольку в ней всего 150 страниц.

Что дальше?

Программирование – это практика. Можно прочесть миллиард книг, но стать хорошим разработчиком можно, только потратив кучу часов на сам процесс кодинга. Поэтому, как обычно, погуглив и почитав отзывы, я решила пройти бесплатный курс на платформе Stepik по основам разработки на Python – это «базовая база»: типы данных, циклы, конструкции, при этом куча практики на отработку навыков.

Несмотря на то, что в компании ICL Services моя текущая работа не связана непосредственно с Python, есть возможность развиваться в любых интересующих направлениях в рамках Research Groups — я работаю в подразделении End User Services, и у нас это очень приветствуется. Сейчас нам нужно разработать автоматизацию для тестирования образов ОС Windows 10. Предполагается, что она будет собирать данные по требованиям из Low Level Design – это такой документ, который содержит информацию об образе — какие конфигурации, какие приложения установлены, например — и генерировать автотесты. В дальнейшем ее планируется использовать и для образов MAC OS – кроссплатформенный Python отлично подходит.

Что будет дальше? Пока не знаю. Меня очень демотивируют грандиозные планы обучения – когда понимаешь, сколько еще шагов тебе предстоит сделать, чтобы прийти к цели, очень легко «сдуться» и не делать вообще ничего. Поэтому я стараюсь жить и развиваться по принципу, который, кстати, является одним из пунктов Zen of Python — «лучшее – враг хорошего»: лучше делать немного, но хорошо и регулярно, чем набрать себе кучу курсов, ссылок и задач, и ничего из этого никогда не освоить.

Где программировать на Python?

Чтобы писать простые программы на питоне, необязательно использовать IDE (интегрированные среды разработки) – установил python с официального сайта, открыл IDLE — и все, готово. Но для того, чтобы в дальнейшем писать уже более сложные проекты, все же рекомендуют использовать IDE или даже обычные редакторы кода. Я, как новичок, решила выбрать IDE – они содержат в себе сразу все инструменты, необходимые для удобной разработки:

  • сохранение файлов – написал код, сохранил, закрыл, открыл в том же виде;
  • запуск программ сразу из IDE;
  • подсветка ошибок и синтаксиса – считаю очень полезной фичей для новичков, да и для опытных разработчиков, в частности;
  • автоматическое приведение кода к нужному формату — Python чувствителен к отступам, переносам, поэтому такая фича тоже не помешает.

Я остановила свой выбор на PyCharm — одной из популярных IDE, предназначенных именно для Python. Существует как бесплатный open-source – таким как раз я и пользуюсь, так и платные (Professional) варианты. Плюсом является и то, что он доступен на Windows, Mac OS X и Linux.

Заключение

Когда поступил запрос написать статью о Python я как человек, который еще только делает свои первые шаги, затушевалась – о чем я могу рассказать, я же ничего не знаю. Но все с чего-то начинают, поэтому я буду бесконечно рада, если моя история кому-то поможет, направит, даст мотивацию стать лучше и не бояться. Есть такая цитата: «В основе любого успеха — 99 процентов труда и 1 процент таланта. Труд невозможен без дисциплины».

Поэтому, успеха вам!