Последний в этом году пост посвящается новичкам. Одна из самых сложных проблем в начале пути, ещё в процессе обучения - получение опыта реальной разработки. Я говорю про тот период, когда камень-ножницы-бумага уже давно позади, но до реальной разработки ещё далеко. На этом этапе действительно возникает диллема: где брать опыт, если участие в реальных проектах и даже просто написание тестовых - пока что недостижимый уровень, а решение задачек на LeetCode не требует комплексного мышления? (В каждой задачке нужно реализовать всего одну функцию, у которой уже есть чёткое ТЗ, а значит не нужно думать обо всём проекте и о том, нужна ли вообще такая функция. Да и решение одной задачи занимает от минуты до нескольких часов и даёт меньшее чувство удовлетворения долгой работой и её результатом)
Есть сомнительное решение - пет-проекты. Сомнительное, потому что может не сработать по нескольким причинам:
1️⃣ В начале пути ваша база знаний кратно увеличивается за короткие промежутки времени и часто полностью обновляется. Это приводит к быстрому "устареванию" кода, отставанию его уровня от знаний разработчика, и в результате ещё недавно актуальный код превращается в легаси, который сложно поддерживать.
2️⃣ Почти наверняка код будет отчасти нерабочий, ведь у вас нет никакой насмотренности, и вы не видите проблемное место. Нерабочий код вызовет кучу ошибок, которые далеко не всегда на него укажут. И, если у вас нет ментора, то вы посидите над ошибкой, ничего не нагуглите и просто забросите, не доведя его до конца.
3️⃣ Если пет-проект вы выбрали сами, но при этом у вас есть какая-то программа обучения(курс или самостоятельно созданный список тем), то, вероятно, темы оттуда не будут пересекаться с тем, что вам нужно в проекте, и вы будете разрываться между теорией и практикой. Хорошо, если пет-проект есть в этой программе, в таком случае этой проблемы не возникнет. Иначе придётся либо соблюдать грамотный баланс, либо отдавать себя целиком практике. Когда я был новичком, мой ментор просто давал мне проекты и мы придерживали теорию, после чего я к ней возвращался.
Перед тем, как писать первый пет-проект, всё же посмотрите тестовые(например, чекните мой список с тестовыми на гитхабе) и подумайте, смогли бы вы их написать. Если нет, то свой проект будет лучшим решением. И попытайтесь найти ментора, если его у вас нет. Если не нашли, то можно задавать вопросы во всяких сообществах.
Теперь сам план написания пет-проекта:
1️⃣ Продумать идею: она должна быть достаточна проста, чтобы её реализовать. Не должно быть много сущностей, в идеале всего одна. Простой пример: генератор паролей, у которого только одна сущность - пароли, больше ничего нет.
2️⃣ Написать ТЗ. Именно написать, ну или нарисовать, но нужно чётко его обозначить, иначе ваш проект будет расширяться бесконечно. Расширить ТЗ можно только после выполнения текущего ТЗ.
3️⃣ Выбрать стек. Думаем, какие технологии нам нужны: это могут быть библиотеки, фреймворки и тп. Не думаем о таких вещах, как архитектура(тем более микросервисная) и тп. Просто пишем код, настолько чистый, насколько у вас получается.
4️⃣ Настроить окружение, локальный репозиторий, установить зависимости. Это может быть сложно в первый раз, можно потренироваться на тестовых окружениях заранее. Заводим репозиторий в GitHub(или ещё где-нибудь).
5️⃣ Сформировать файловую структуру, написать первые строки кода. Запустить, проверить.
6️⃣ Дальше двигаемся так же, реализовывая фичу за фичей, пока проект не будет готов. Код с ростом знаний и опыта актуализируем и обновляем, приводя его к новым стандартам, чтобы избежать легаси. Если попадаются ошибки, то пытаемся исправить самостоятельно, потом идём гуглить, потом обращаемся к ментору. Так появляется насмотренность.
Вот и всё. План довольно простой и очевидный, но пару пунктов очень важно было записать, потому что их недовыполнение влечёт за собой вышеописанные проблемы.
Идём чиллить после шестидневки😎😎
P.S. И надо сабнуться на тгк: https://t.me/dmkjfss
Top comments (0)