🧑‍💻 Разница между рабочими и учебными проектами

При написании проектов у каждого возникали мысли о том, как здорово было бы пользоваться ими на практике, желательно не одному и не бесплатно.

В этой статье я хочу обосновать свою точку зрения на эту тему, которая состоит в том, что учебные и рабочие проекты кардинально отличаются. Под рабочим проектом я подразумеваю законченный продукт, которым пользуются клиенты на коммерческой или бесплатной основе.

Корень этих отличий в первоочередной цели, побудившей вас разработать проект. Для учебного проекта это новые знания и навыки, для рабочего - пользователи.

В большинстве случаев два этих приоритета напрямую конфликтуют друг с другом:

  • Рабочие продукты рационально делать на тех технологиях, которые вы уже знаете, выбирая инструменты, позволяющие построить рабочий прототип за минимальное время.
  • Учебные pet-проекты обязательно должны содержать в себе одну или несколько новых для вас технологий.

Конфликт этих интересов на примере разработки интернет-магазина:

  • Практично - воспользоваться CRM для быстрой разработки магазинов.
  • Полезно - написать с нуля, пользуясь теми инструментами, практику с которыми вы хотите получить (фреймворки, базы данных).

Иногда получается совмещать приятное с полезным и строить что-то, применимое на практике, учась при этом новому. Однако в рабочий проект неизбежно придёт рутина, делая которую вы ничему не учитесь. А для самообразования рутина бесполезна - нужно идти дальше.

Практические советы

  • Задумывать pet-проект с потенциальной возможностью его реального применения - полезно. Это помогает формализовать функционал проекта и написать ТЗ.
  • Безжалостно отсекайте части pet-проекта, разработка которых не научит вас чему-то полезному.
  • Бросать недописанные pet-проекты - нормально, не нужно заниматься самобичеванием из-за этого.
  • Трудоустроившись, стремитесь совмещать приятное с полезным - учиться новому в рабочее время. Заинтересованный в расширении ваших обязанностей работодатель будет рад видеть рост ваших навыков, вы будете развиваться профессионально.

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