Почему создание проектов — лучший способ обучения
Лучший способ учиться — это делать.
На протяжении всего моего пути в программировании я придерживался этого девиза.
Ничто не сравнится с реальным опытом.
Не читаю книги.
Не смотрю Ютуб.
Не думая о том, чтобы что-то сделать.
Сначала моей целью было написать код и разместить личный блог на собственном домене. Но мне не хотелось жечь свечу с обоих концов.
Итак, я отложил кодирование на потом и сосредоточился на выпуске письменного контента. Через некоторое время я переключил свое внимание на создание сайта блога с нуля. Посмотреть его можно на сайте www.kaungzinhein.me!
Благодаря этому личному проекту я научился (и продолжаю учиться):
1. CSS
2. Развертывание веб-сайта
3. Основы nextjs 13 (например, маршрутизация)
4. Реализация функции поиска в nextjs (и реакция)
Прежде чем приступить к проекту, я просто экспериментировал с учебными пособиями по проекту nextjs. Несмотря на то, что это были проекты, которые в конечном итоге лучше случайных упражнений из учебника, не казалось, что они имеют большое значение.
И это просто потому, что за этими проектами не было личной цели.
Без личного контакта с источником мотивации любая деятельность может показаться непрактичной.
Вот такая идея пришла в голову. Проект блога возник в результате сочетания наличия платформы блога (для доставки подробного контента) и стремления к разработке веб-приложений.
Я начал искать ресурсы — чтобы воспроизвести и применить их на своем собственном веб-сайте.
Затем я обнаружил, что даже такой, казалось бы, простой проект требует объединения многих частей. Части были следующими:
- CSS-стиль, хотя это и не полноценная целевая страница, я поставил перед собой задачу сделать сайт хотя бы приличным. С этой ленью мне пришлось столкнуться: у меня всегда была личная реакция против того, чтобы тратить время на веб-дизайн, и я больше склонялся к бэкэнд-разработке.
- Комфорт с nextjs – как работает фреймворк и общие рекомендации.
Изучив другие успешные блоги, я решил включить в них функцию панели поиска, которая поможет фильтровать мои статьи. Пытаясь выяснить, как реализовать это в nextjs, я также придумал реализации в бэкэнде реагирования, которые продолжаю использовать в других проектах.
В то же время технические аспекты, не связанные с программированием, были столь же сложными:
- Размещение моего приложения для блога
- Регистрация личного домена
Решение проблем, которое потребовалось для этих шагов, было неожиданным, что расширило мою зону комфорта как программиста, привыкшего решать проблемы, связанные с кодом, но не технические проблемы, не связанные с кодом.
Еще один важный вывод из этого опыта: «нужно чему-то научиться».
Честно говоря, я на какое-то время отложил «CSS» (честнее говоря, с тех пор, как начал изучать веб-разработку). Я всегда не хотел позволять этому занимать место в моей программе самостоятельного обучения, опасаясь, что это оставит меньше места для других, более важных навыков (например, управления состоянием, серверных API).
Но когда я взялся за этот проект, у меня возникла потребность в CSS. Поэтому я преследовал это.
Это самый важный урок, который можно извлечь из принципов PBL.
Когда сталкиваешься с проблемой, которую нужно решить, или с проектом, который нужно реализовать, естественно учиться и концентрироваться на необходимых навыках.
Каждый навык/тема — это недостающая часть головоломки, которую вы пытаетесь решить.
С другой стороны, большинство учебных программ разработаны с целью преподавания как можно большего количества тем за минимальное время. И зачастую эти темы не связаны друг с другом.
Здесь каждая тема — это недостающий фрагмент множества разных головоломок, и вам никогда не удастся решить ни одну головоломку полностью.
Неудивительно, что создается впечатление, что вы изучаете темы, а не бросаете вызов и приносите пользу.
Зачем беспокоиться, если нет причины, по которой вы учитесь тому, что учитесь?
Проекты — отличный способ придать личный смысл.
Давайте не будем останавливаться на достигнутом. У подхода PBL есть еще больше преимуществ.
Многоразовость.
Например, алгоритм функции поиска в моем блоге реализован и в других проектах с некоторыми вариациями.
То, чему вы научились или открыли во время создания проекта, можно применить в будущих проектах. Это дает вам возможность улучшить производительность повторно используемой функции/навыка, применяя ее в других контекстах.
Это повторение.
Повторение с обратной связью с течением времени приводит к мастерству — принципу осознанной практики.
Именно так я формирую свое портфолио в области разработки программного обеспечения как программист-самоучка — тратив большую часть своего времени и усилий на создание проектов, применимых в реальных ситуациях.
· Я решил запрограммировать веб-сайт блога для размещения моих статей.
· Проекты с целью позволяют узнать, что актуально и необходимо
· Проекты можно использовать повторно.
Удачных строительных проектов!