Проект «Игры разума». Впечатления от выполнения

Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Читать в полной версии →

Первый проект в специальности «Python-разработчик» при самостоятельном обучении. Первый проект в жизни.

Предисловие

Проект «Игры разума» стал моим первым самостоятельным проектом в рамках обучения по профессии «Python разработчик». Да и вообще первым проектом, в котором я одновременно создавал код, настраивал окружение и размещал на GitHub.

Описание проекта

Моими глазами проект на старте выглядел так:

Ход выполнения проекта

  1. Знакомство с описанием и предисловием к проекту. Тут первое представление о том, что все будет легко и понятно, быстро улетучивается. Уже на первом шагу проекта я столкнулся с тем, что мои ожидания ошибочны. Я приготовился писать исполнительный код программ, а тут сперва надо настроить окружение. Причем настройка окружения оказалась более сложной, чем это было описано в предшествовавшей теории. Я приуныл и на какое-то время отложил проект. Приуныл из-за того, что столкнулся с непонятным и сложным.

  2. Поборов сомнения и прокрастинацию, я стал потихоньку перечитывать теорию и выполнять шаги с первого по третий. Сейчас, после завершения проекта, эти шаги кажутся простыми и проходимыми за пару часов. Но на них через преодоление себя пришлось потратить почти неделю (может и больше). Наконец стало казаться, что все работает корректно.

  3. На четвертом шаге я плотно познакомился с CodeClimate и flake8. Эти инструменты произвели на меня сильное приятное впечатление. Оказалось, что часть тестирования кода (ту часть, которая про понятность и читаемость человеком) можно хотя бы частично регламентировать и доверить программе. Я и раньше слышал рассказы о подобных возможностях, но плотно столкнулся впервые.

  4. И вот наконец-то на пятом шагу я создал первый работающий файл одной из игр. Сам код игры писал минут пять, а вот потом ещё час «игрался» с ним. Тестировал, проверял, запускал, прогонял через flake8 и так далее. Первое ощущение от того, что написал именно «целевую» часть проекта.

  5. На шестом шаге я написал код второй игры. И, когда начал собирать эти игры внутри проекта, пришлось прилично переписать код первой игры. Чтобы «не повторять себя» и чтобы код был более универсальным. Сам код второй игры опять занял не много времени. А вот переделки, доделки и прогоны через flake8 заняли прилично времени. Стало понятнее, зачем нужно всё это окружение. Именно благодаря настройкам окружения «переделки» проходили достаточно быстро, а формирование нового пакета, его инсталляция и запуск превратились в постой запуск скрипта… В несколько десятков запусков скриптов…

  6. Три последующих шага полетели быстро. Уе сформировалось в сознание понимание того, что и как нужно сделать. Написал код, отладил код, встроил в пакет, прогнал через CodeClimate и flake8, исправил. Ощущение, как будто на конвейере.

  7. Перед тем, как запустить автоматическую проверку проекта еще раз все аккуратно проверил и вручную протестировал. Вытащил еще несколько ошибок, исправил их. С замиранием сердца отправил на автоматическую проверку. Томительные несколько минут ожидания.

  8. После первой поверки система выдала мне протокол действий из почти двухсот строк. И проект не был принят. Уныние. Через пол часа собрался с силами и стал разбираться в протоколе. Совсем не сразу, но я понял, что практически все проверки я прошел, кроме одной. Запятая после последнего элемента списка. Мой локальный flake8 на это не ругался, а автоматическая система проверки проекта это заметила. Исправил, запустил. И ВСЁ!

  9. Зелёная галочка в зелёном кружке в виде результата! Класс! С таким удовольствием я со школы не учился!

Впечатления от проекта

«Как будто сам сдал с первого раза матан на первом курсе!». А если более подробно, то вот так:

Мне очень понравилось. После того, как система автоматической проверки приняла у меня проект, я ощутил искреннюю радость, прямо даже восторг. Проект «прокачал» меня не только технически, но и добавил уверенность в том, что я смогу пройти весь путь по освоению специальности.

Выводы

Спасибо за проект!