Скидки до 20% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Дневник студента

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

Время чтения статьи ~4 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Проект «Игры разума». Впечатления от выполнения главное изображение

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

Предисловие

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

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

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

  • Написать несложный код, описывающий логику пяти игр
  • Отладить работу кода. Провести ручное тестирование
  • Аккуратно оформить этот код по правилам и нормам
  • Упаковать код в poetry и выгрузить на GitHub.

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

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

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

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

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

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

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

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

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

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

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

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

  • Собственная неуверенность в начале мешает двигаться в проекте намного больше, чем отсутствие знаний и навыков.
  • Как бы хорошо и аккуратно я не учился и не разбирался в курсе до проекта, все равно пришлось многократно возвращаться к пройденному материалу раз за разом, пока результат не начинал соответствовать сперва моим ожиданиям, а потом системе автоматической проверки.
  • Для себя я с некоторым удивлением обнаружил, что объём «переделок» и «доработок» в проекте, как вызванных моими ошибками, так и заложенный шагами проекта, больше, чем сам объем итогового результата. Прям как в моей текущей работе.
  • «Дорогу осилит идущий!». Если каждый день стараться делать хотя бы понемногу, то результат начинает появляться довольно быстро. Казалось бы банальность, но в очередной раз работает.

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

Выводы

  • Проект это сложно, и требует не менее 20 часов чистого времени
  • Чтобы все выполнить правильно, придётся вернуться и повторить предшествовавшую теорию, и не раз
  • Именно проект позволил мне почувствовать, что я «что-то знаю и что-то умею»
  • В процессе выполнения проекта у меня сформировались навыки и знания, которые в рамках предшествовавшего курса были только обозначены.

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

Аватар пользователя Антон Тюрин
Антон Тюрин 13 марта 2023
6
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря