Передмова

Даний допис було опубліковано 23 лютого 2021 року на сайті з яким я більше не хочу мати нічого спільного через країну його походження. Тому з релізом Друкарні вирішив перепостити довгочит сюди з мінімальною корекцією.

Ця публікація написана джуном для джунів (але можливо спеціалісти більш високого рівня теж знайдуть щось для себе / своїх падаванів).

Навіщо потрібні pet проєкти?

Для саморозвитку як розробника та закріплення вивченого матеріалу.

Якщо ти щоденно муштруєш теорію: читаєш статті, дивишся туторіали, але при цьому не застосовуєш вивчене на практиці, то часу на засвоєння обраної теми знадобиться в рази більше.

Для працюйочого розробника pet проєкт чудова можливість абстрагуватись від робочих задач і зануритись в цікаву тему. Часто на розробку домашніх проєктів немає багато часу через, що код потрібно писати швидко і багато, а інформацію шукати по суті не відволікаючись на зайве.

Для джуна без постійного місця роботи, pet проєкт може замінити ту саму роботу. Під час розробки ти ще глибше занурюєшся в тему, а іноді знаходиш нові об'єкти для вивчення.

Підсумовуючи pet проєкти нам потрібні для:

  • вивчення / закріплення нового матеріалу;

  • отримання задоволення від розробки чогось, що тобі цікаве;

  • поповнення свого портфоліо;

  • (bonus) є шанс, що твій pet проєкт може комусь сподобатися і тоді з цього можна отримати фінансову вигоду.

Як вибрати та на що звернути увагу?

Я розглядав це питання зі сторони фронтенд розробника і, можливо, для інших галузей наведені нижче тези будуть не валідні.

Найголовніше — розробка має приносити задоволення. Технології, дизайн або щось ще не повинні викликати у тебе почуття відрази, інакше такий проєкт може зупинитися на етапі першого комміту.

Технології

Якщо ти обрав певні технології для свого домашнього проєкту, то швидше за все вони тебе цікавлять і проблема, наведена вище, тебе не стосується. (Чи тебе змушують писати на тому, що тобі огидно?)

Дизайн

Тут все залежить від людини та ситуації. Є два варіанти:

  1. Напружитись та зробити крутезний дизайн.

    Плюси:

    • lvl up як дизайнера;

    • зазвичай власний дизайн дуже приємний;

    • через те, що це власний макет, ти в ньому добре орієнтуєшся і ще на етапі дизайну продумуєш деякі фічі.

    Мінуси:

    • зазвичай на це йде багато часу і може вийти ситуація, що макет створювався довше, ніж сам застосунок.

  2. Знайти готовий дизайн та працювати з ним.

    Плюси:

    • швидко (хоча пошук може затягтися, про це нижче);

    • не потрібно відволікатися на дизайн.

    Мінуси:

    • не завжди можна знайти дизайн для власного задуму, особливо якщо він не типовий;

    • готові популярні безкоштовні макети часто вже використали тисячі розробників, а не популярні не завжди гарні.

Ідея

Якщо авторські ідеї не твоє, то на просторах інтернету існують безліч тем проєктів, в яких можна використовувати будь-які потрібні тобі технології.

Ось кілька вічно актуальних прикладів:

  • список задач (todo list);

  • застосунок погоди;

  • менеджер покупок;

  • сайт портфоліо;

  • кіно сайт;

  • калькулятор;

  • блог;

  • магазин чогось.

Особистий досвід

У цьому блоці я розповім як вигадувались / створювались мої pet проєкти.

Початок (AniList)

Йшов липень 2020 року. Через семестр вивчення JavaScript в коледжі я вирішив вивчити якийсь фреймворк. Обрав React. Через декілька днів знайомства з фреймворком я натрапив на серію відеоуроків по розробці вебзастосунку піцерії на ютубі та вирішив одразу застосовувати вивчене в реальному проєкті. Але просто переписувати код з відео в IDE було не цікаво, тому я вирішив зробити аніме список.

Вище я писав про два варіанти отримання дизайну для проєкту. Який з варіантів обрав я? Обидва. Для початку я зайшов на вже існуючі сайти з такою ж тематикою потім пролистав Behance і зібрав свого "франкенштейна" з власних ідей і шматків вже готових дизайнів.

AniList design screenshot

По готовому макету я зрозумів, що потрібно буде якось отримувати інформацію про аніме (API, AJAX), десь зберігати її (Redux), а також якось організувати авторизацію і збереження інформацію про користувачів (Firebase) + робота з версіями файлів (GIT, GitHub). У підсумку я мав ознайомитися як мінімум з 5 новими технологіями окрім React.

І в цьому я вважаю один з плюсів pet проєктів. Починаєш вчити щось одне, а наприкінці освоюєш набагато більше, ніж очікував.

ToDo list

ToDo list design

Наступним проєктом мав стати todo list. Мій одногрупник (теж початковий розробник) повинен був робити frontend на Angular, а я (несподівано) backend.

Тут мені довелося поринути у світ backend-у і може не вивчити, але добре так ознайомитися з NodeJS, Express, MongoDB, mongoose, cors, dotenv, способами авторизації, деплоєм на Heroku та ще глибше зрозуміти роботу API.

За підсумком вийшло так, що і я, і мій товариш, кожен собі писали back і front end.

Решта

Потім було ще кілька проєктів. Коротко напишу, що із них я виніс для себе.

Застосунок погоди:

  • малювання на canvas-ах;

  • робота з геолокацією;

  • React анімація компонентів.


Shedaily (front & back end) - застосунок який парсив розклад із сайту коледжу в якому я вчився і приводив його в приємний вигляд:

  • парсинг інформації;

  • робота з Excel таблицями в NodeJS.


Terminal website - надихнувшись одним проєктом створив простий сайт з контактами в стилістиці старого монітору:

  • SCSS;

  • Gulp.


Менеджер підписок:

  • MobX;

  • перемикання кольорових тем.


Магазин аксесуарів для телефонів (backend) (так і не був завершений):

  • глибше пізнав MongoDB + mongoose;

  • GraphQL.


Сайт портфоліо:

  • JAM stack;

  • Gatsby;

  • створення кастомного курсора.

Висновок

Нещодавно виникла ідея переписати свій перший pet project (Аніме список), але тепер із новими навичками: backend на NestJS + GraphQl замість Firebase, frontend NextJS, ну і дизайн переробити. Ця думка є результатом мого прогресу котрий я здобув завдяки pet проєктам.

"Usus est magister optimus" — досвід – найкращий учитель

Update 16.04.2023

Хоч допис був написаний понад двох років назад я вважаю, що інформація в ньому все ще актуальна і може комусь допомогти.

На даний момент список моїх пет-проєктів трохи більший ніж описаний вище. Anime list я так і не переписав, але замість нього почав більш масштабний застосунок для перегляду аніме, який поки висить в статусі paused через відсутність часу на розробку. Тому якщо буде активність та інтерес з вашої сторони, і час та натхнення з моєї, можу освітити неописані проєкти або детально розписати розробку крайнього застосунку.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Bilyi
Bilyi@white

1.2KПрочитань
2Автори
15Читачі
На Друкарні з 15 квітня

Вам також сподобається

Коментарі (9)

Повністю навчився кодити на пет проєктах + книги. Схема проста.

  1. Прочитав

  2. спробуй зробити

  3. спробуй зробити трохи складніше

  4. спитай у гугла як це робити

  5. зроби

  6. читай книгу далі

Вам також сподобається