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

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

Как сдать первый проект и не сломать себе шею?

Время чтения статьи ~5 минут
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Как сдать первый проект и не сломать себе шею? главное изображение

Я пришёл на групповое обучение уже имея опыт изучения Python. Опыт во мне противился и брыкался. Работа над первым проектом превратилась в историю преодоления себя. Ее я сегодня и расскажу. Возможно, кому-то моя рефлексия поможет выйти на конструктивный диалог с собой, а может быть и нет :-)

enter image description here

В начале было тяжело включиться в процесс. Особенно от того, что все курсы до первого проекта я прошел ещё за год до записи в группу. Мне не удавалось захватить внимание. Я машинально листал знакомые тексты уроков и пройденные по ним тесты, но при этом витал где-то в облаках. Больше заставлял себя, чем получилось. Учеба из-под палки не шла. Потеряв пару недель, я решил сменить стратегию. Сказал себе: «Не хочешь вспоминать — не надо. Давай пропустим теорию и сразу начнём писать код. Будешь ошибаться и находить ответы уже на живые вопросы»

Стратегия сработала. Упражнения к урокам помогли мне включиться в учебу. Многие задания стали для меня открытием, несмотря на то, что часть из них я уже проходил ранее. Те пассивные знания, которые совсем недавно тормозили меня, неожиданно добавили мне оборотов. Машинка завелась. Я понял, что жажда практики тянет меня вперед. Застревая в реализации, я уходил на повторное изучение уроков и не замечал, как менялся мой настрой. Теория снова начала работать. Спасибо ребятам из Хекслет, что не останавливаются и добавляют все новые и новые упражнения. В моём случае, это стало решающим моментом на старте.

enter image description here

Затем я начал первый проект и понял, что стратегия больше не работает. Возможно от того, что код пришлось отложить на потом и глубоко уйти в настройку окружения. К этому я точно не был готов. Тема предварительной подготовки пакета к публикации утомляла. Проблемы с установкой, запуском и настройкой Poetry усиливали мое недовольство. До этого я искал мотивацию и набирал темп. Теперь темп нужно было сбивать и включать холодный рассудок, но я уже рвал и метал.

Если вы спросите меня, принесло ли мне счастье использование Poetry, то я смело отвечу: «Нет. Поэт из меня пока не вышел». Но если взглянуть беспристрастно, то нас окружают десятки, а то и сотни инструментов. Не все из них совпадают с нашими ожиданиями, находят гармонию с внутренним чувством прекрасного. Инструмент — это способ решения задачи. Разные задачи — разные инструменты. Необязательно любить отвертку. Достаточно иметь ее под рукой, когда придёт время. Что точно не следует делать, так это доставать любимый молоток по любому поводу и забивать им все, что попадает на глаза. Как оказалось, тяжелее всего поменять своё представление. Поэтому я аккуратно договорился с собой, что просто попробую изучить новый инструмент. Если не зайдёт, буду знать, что такое бывает, положу в ящик и может быть однажды когда-нибудь достану.

Если взглянуть шире, то правило «закипел — сначала остынь» помогает мне снова и снова. Когда я завожусь и начинаю метать молнии, то открываю файл и описываю то, что у меня не получается. Возможно, из этого родится конструктивный вопрос в общий чат группы и ребята помогут мне с ответом, но скорее всего я просто переведу энергию сопротивления в действие. В результате из десятков вопросов, записанных в файл, до чата доходят единицы, потому что ответ всплывает ещё в процессе рефлексии.

enter image description here

Кончено, формулировка проблемы и рефлексия помогает не всегда. Где-то на полпути я окончательно застрял в обвязке из новых инструментов и понял, что дальше идти не могу. Все труднее и труднее было найти в себе силы и время на учебу из-за постоянно возникающих проблем с рабочим окружением. Постоянно разбираться в инфраструктуре, не меняя код, и фактически не приближаясь к решению, это не то, что я планировал делать.

В итоге я разрешил себе остановиться и сделал самый длинный перерыв в учебе, чтобы вернуть интерес и освободить голову для нового подхода. Я выдохнул, перестал сопротивляться своему желанию упростить процесс, и избавился от лишнего. Половину проекта я написал, не вылезая из единственного окна в терминале. Нужно создать или поправить модуль — открыл в Nano и вуаля. Там же запустил скрипт, проверил-поправил, проверил-поправил, отравил коммит. Я понял, что не каждый проект стоит начинать в IDE и сразу тянуть кучу зависимостей. Пускай сложность растёт постепенно.

Договариваться с собой я более-менее научился и к первому ревью был в гармонии. Мой код работал и решал задачу правильно, тесты горели зелёным, я гордился своими костылями и даже не думал, что работа только начинается. Проходить код-ревью было больно. Моя первая реакция: «Да вы шутите!?». Столько правок я точно не ожидал. Особенно там, где я долго бился над решением. Расстроило ли меня ревью? О, да. Сдача проекта улетела в далекое будущее. Я стоял как герой фильма перед титрами, камера поднималась вверх, а я махал ей рукой

Было бы слишком самонадеянно противиться комментариям опытного ментора, поэтому я сменил мантию великого творца на потертую рубаху инженера, закатал рукава и начал методично вносить изменения. Редактировать код мне понравилось. Не всегда было понятно, что делать, но интерес не угасал. Особенно трудно давались архитектурные решения. Мозг кипел, но я был доволен как слон.

enter image description here

Оглядываясь назад, я понимаю, что слишком сильно ориентируюсь на результат, зачастую переоцениваю собственные силы, считаю себя значительно умнее, чем я есть на самом деле, а когда устаю — люблю добавить драмы. Не сказать, что это стало большим открытием. Вероятно, я уже делал похожие выводы и до этого, но ни разу не формулировал их так однозначно и четко.

Поделитесь своим опытом прохождения первого проекта. Расскажите, какие стратегии и практики помогли вам?

Аватар пользователя Evgenii
Evgenii 27 июля 2021
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 декабря