Я, как всегда, никуда не собиралась, когда в новостной ленте «ВКонтакте» вдруг увидела сообщение, что завтра последний день подачи заявок на Django Girls в Санкт-Петербурге — мастер-класс по программированию на Python для женщин. Обычно я читаю такие сообщения, когда регистрация на мероприятие уже закрыта. У меня особое везение на такие дела — узнать о событии на следующий день после его завершения. Поэтому, когда я поняла, что появилась реальная возможность попасть на бесплатный тренинг по Python, то быстро заполнила заявку, на всякий случай забронировала отель и стала ждать.
Мне кажется, я сразу знала, что меня примут, иначе как объяснить, что я проморгала аналогичное событие в Москве месяцем раньше и попала именно в Санкт-Петербурге! Можно ли придумать лучшее время для поездки: лето и белые ночи, чемпионат мира с возможностью посетить фан-зону на Конюшенной площади, знакомство с IT-сообществом Django Girls и офисом Wargaming, и под занавес праздник «Алые паруса»!
Почему Python
Прошло два года с тех пор, как я открыла для себя мир IT, но по-прежнему мало что умею делать прикладного. Организовать тестирование ПО в проекте, координировать UAT — это я умею, и мне нравится разнообразие проектов. Но если нужно что-то сделать «руками», например, автоматизировать простенький тест, с этим беда. Поэтому давно появилась мысль попробовать программировать на Java или Python. Даже попыталась пройти онлайн-курс на Udemy Computer Science for beginners, c введением в Java. Часть о двоичной системе исчисления и физическом устройстве компьютеров была очень понятной, но как только дошло до кода, стало сложно. Мне нужен ментор — человек, который сидит рядом и отвечает на любой вопрос. Так что приглашение на мастер-класс по Python для женщин я восприняла как свой шанс. Тем более, Python не самый сложный язык и пригодится мне минимум в двух сферах: автоматизация тестов и анализ данных.
Подготовка к мастер-классу
С утра 23 июня 2018 года я отправилась прямиком на площадь Фаберже, в офис Wargaming. Пришла заранее, немного помогла организаторам с расстановкой столов и стульев для участниц. Нас было около 70 девушек, пожелавших сделать первый шаг в программировании. За каждым столом 5-6 участниц и один тренер. Нашему столику повезло, нас было всего трое и тренер Люба, практически персональный помощник. Рядом со мной сидела Оля, маркетолог, сильно желавшая перейти в IT, и Даша, сотрудница банка как и я, решившая переехать в Канаду и для этого осваивающая востребованную профессию программиста.
Так как все программы я установила дома и почитала вступительные статьи, то смогла сразу приступить к проекту — созданию блога на Python с размещением его на одной из готовых платформ. При этом код приложения нужно было размещать на GitHub и оттуда обновлять блог на сайте. Разработка велась на моем локальном компьютере, в роли которого любезно выступил мой домашний ноутбук. Всё, о чем я расскажу ниже, я делала впервые в жизни, и до мастер-класса не имела представления, как реально создается веб-приложение.
Инструменты
Для разработки использовался фреймворк Django — понятный и популярный инструмент. На ноутбук был установлен язык программирования Python версии 3.6 и создано виртуальное окружение для ведения проекта. Для работы с кодом был установлен текстовый редактор Sublime Text. Для хранения версий кода скачан и установлен Git. Версии публиковались на GitHub, для чего я создала там профиль. Для размещения моего блога в Интернете был выбран сайт www.pythonanywhere.com, где я также создала учетную запись. Всю работу с папками и файлами на ноутбуке вела через командную строку cmd, и похожая консоль использовалась на Pythonanywhere для управления папками и файлами блога.
Как проходил мастер-класс
Принцип тренинга прост: читаешь инструкцию, выполняешь по ней задания, если что-то непонятно — спрашиваешь тренера. Задания даны в очередности, которая позволяет создать маленький, но полноценный блог и выложить его в Интернет.
Тренинг длился с 10 утра до 7 вечера, каждый час 10 минутный перерыв. Было несколько интересных докладов, например, о стажировках для начинающих программистов или о возможностях обучения, начиная с бесплатных онлайн-курсов и заканчивая получением бакалавра по Computer Science в американском ВУЗе по очень доступной цене. В обед была пицца, а для сторонников здорового питания — домашнее кафе «Фаберже» на 4-м этаже в ТЦ по соседству. В нашем распоряжении также была большая кухня с неограниченным количеством подходов к воде, чаю, кофе, печенью и фруктам. Лично меня офис Wargaming поразил сотрудниками, работавшими там в субботний день — эти креативщики ездили по офису на самокатах, причем иногда босиком.
Мой результат за день
Сколько мне удалось сделать за день? Немало! Сначала я создала в Django отдельный проект и в нем создала необходимые файлы. В конфигурации проекта указала данные для корректной работы сайта, например, временной пояс и адрес размещения блога. Далее настроила базу данных. По сути, она уже была создана в Django, её нужно было мигрировать в директорию моего проекта. И, наконец, запустила виртуальный сервер на ноутбуке — это вообще была магия, до сих пор не верю, что я это сделала.
Когда шаблон сайта был готов, и его можно было увидеть на компьютере в браузере по адресу 127.0.0.1:8000/, настал черёд создать в базе данных модель для записей в блоге. То есть у нас есть пустой шаблон сайта, но его нужно чем-то заполнять, например, записями блога. Чтобы программа понимала, какие записи я хочу создавать, ей нужно сказать об этом. И делается это с помощью модели и добавления её в базу данных. На этом этапе создание блога на локальном компьютере было окончено, и нужно было мой сайт разместить в Интернете — развернуть (deploy). Для этого мы использовали очень популярный инструмент Git — систему контроля версий кода.
Сначала нужно было сообщить моему ноутбуку, куда выкладывать код. Для этого сначала задаются настройки, а затем командой git commit и git push код размещается на GitHub. При обновлении кода можно добавить комментарий, тогда каждое изменение будет сопровождаться описанием, что именно изменилось. А еще можно разными командами через cmd проверить, какие изменения сделаны. Очень полезная штука!
Далее началось самое интересное: код с GitHub надо выгрузить на сайт, где будет размещаться блог, то есть опубликовать мой блог в сети — по сути, ради этого всё и затевалось. Только сначала на Pythonanywhere нужно было создать виртуальное окружение и базу данных, а затем уже выгрузить код с GitHub. Делается это легко — одной командой git pull. Вообще всё вышеописанное делается легко. Для меня самой большой магией было то, что через 8 часов работы всё заработало, все получалось и появлялось, где надо. Совсем немного попробовала язык Python: копировала из инструкции крохотные фрагменты кода и изменяла, как мне было нужно. А больше всего времени ушло на множество подготовительных шагов: настройки, создание сред, баз данных, учетных записей, репозитория. Чтобы всё заработало, нужно увязать друг с другом все компоненты и инструменты. Это не так просто.
Я поняла, что современное программирование — это использование большого набора инструментов, где многое уже готово к использованию. Успех зависит о того, насколько хорошо ты знаешь эти инструменты и умеешь ими пользоваться.
Одна забавная ошибка всё же случилась. Я создала файл blog с HTML-кодом (то есть с тем, что мы увидим на страничке в Интернете), и должна была его выложить на сайт, но команда завершилась ошибкой и консоль cmd мне сообщила, что файл не существует. Оказалось, путь к файлу программа указывала неверный. Вместе с тренером мы никак не могли понять, почему программа смотрит на путь по умолчанию, а не тот, что мы указали. Гуглили — не помогло. Я иду по другим столам и спрашиваю, кто дошел до этого этапа, была ли подобная ошибка. Откликается тренер одного из столов, подходит к нам, смотрит на имя папки и говорит, что у меня опечатка в названии: tamplates вместо templates. Начали исправлять через команду rename — нет доступа. Разбираемся, почему нет доступа, непонятно. И тут мой тренер предложила зайти в саму папку и исправить. «Как?» — «Ну как ты файлы переименовываешь на компьютере?» — «Что, вот так прям через Windows-проводник зайти и переименовать?» — «Конечно». И это сработало. Иногда начинаешь мыслить слишком сложно в ситуациях, имеющих простое решение.
Потом я еще училась обновлять блог на сайте со своего компьютера и создала URL-адрес, чтобы браузер при вводе ссылки на мой блог понимал, какую страничку ему вывести на экран.
Итого:
- мой учебный блог в Интернете: utestwalter.pythonanywhere.com
- мой репозиторий на GitHub: github.com/utestwalter/my-first-blog
Впечатления
Мне очень понравился мастер-класс, он сильно меня воодушевил и, без сомнения, открыл новую главу в моей жизни.
К вечеру я очень устала,
В заключение хочется сказать: милые девушки, если вы мечтаете приобщиться к миру технологий, работать в интересных компаниях и хорошо зарабатывать, не бойтесь идти в IT. А как это сделать, вы уже знаете на моем примере.
Автор: Dorial