Як розвиватися в IT за допомогою pet-проєктів
Ігор Шатило — Lead Backend Developer в IT-команді NIX. Переважно працює з PHP, JS, Laravel, Magento 2. Але коли необхідно впровадити якусь іншу технологію чи підхід, вивчає нові способи та інструменти. Чудова можливість попрактикуватися — pet-проєкт. Ігор розповідає, з чого починати його створення та як pet-проєкт може вплинути на професійний досвід.
Що таке pet-проєкт і для чого він потрібен
Pet-проєкт — це індивідуальний (рідше груповий) проєкт, який ви робите заради перевірки власних гіпотез та/або для практичного втілення нещодавно вивченої технології чи підходу. Займатися цим можна як самостійно, так і підтягнути друзів або колег. Робота над pet-проєктом може тривати тижнями, місяцями й навіть роками — у міру того, як у вас з’являється вільний час і нові ідеї.
Такими проєктами можуть бути:
- вебсайти або блоги;
- ігри;
- корисні програми для мобільних пристроїв;
- утиліти для комп’ютерного ПЗ;
- програми доповненої реальності;
- софт для робототехніки;
- чат-боти тощо.
Це позаробоча активність, яка є хорошим варіантом, якщо:
- ви не хочете кидати фултайм-роботу;
- не впевнені, чи спрацює ваша ідея в команді, але дуже хочете спробувати її втілити;
- ви готові приділяти цьому багато вільного часу.
Подібні проєкти — це ніби хобі для розробників, які приносять їм задоволення від власної діяльності, а також користь іншим людям (якщо проєкт дійшов до кінцевого користувача).
Чому варто братися за pet-проєкти?
Як для початківця, так і для більш досвідченого IT-спеціаліста це чудова можливість перевірити свої технічні навички, вміння стратегічно мислити та поміркувати, як ідея спрацює в реальності. До того ж, виконуючи pet-проєкт, ви приблизно зможете зрозуміти, як влаштована робота у стартапах.
Часто новачок боїться запропонувати колегам якесь рішення, бо боїться підвести команду у випадку невдачі. Цей страх не дозволяє людині розкрити свій потенціал.
Працюючи над pet-проєктом, можна робити помилки, пробувати щось нове, шукати різні шляхи вирішення завдань — і все це без остраху зробити щось не так. Так розробник-початківець виробить корисну професійну звичку — постійно генерувати нові ідеї.
Самостійний пошук та аналіз великих обсягів інформації — це те, без чого неможливо реалізувати жоден проєкт — чи то комерційний, чи «домашній».
Створення pet-проєкту також допоможе напрацювати самодисципліну. А якщо знайдете однодумців, то зможете вдосконалити навички командної роботи та управління проєктом. Ви будете не лише в ролі розробника, але й спробуєте себе на місці менеджера, замовника або тестувальника.
Окремо скажу про користь pet-проєктів для досвідчених програмістів. Як правило, у професійній діяльності спеціаліст стикається з одним конкретним видом завдань (верстка вебсторінок, розроблення ігор і застосунків, створення ботів для соцмереж та алгоритмів для ведення email-розсилки тощо). Рet-проєкт допоможе розширити свою професійну експертизу, підтримувати наявні навички на високому рівні та весь час «шліфувати» їх. Також це зручний спосіб затестити нові інструменти програмування та роботи з даними.
У багатьох IT-компаніях через вимоги політики конфіденційності забороняється демонструвати фрагменти коду в портфоліо. Щоб наочно показати свої практичні навички потенційним роботодавцям, розробник може створити аналогічний комерційному pet-проєкт, де представить свої найяскравіші рішення.
Pet-проєкт нічим не обмежений: ні термінами, ні форматом, ні технологіями. Це хороший спосіб відпочити від робочої рутини та присвятити час цікавим вам сферам.
Водночас із власного досвіду можу назвати кілька недоліків таких проєктів:
- Буває важко знайти баланс між основною роботою, pet-проєктом і відпочинком від усього цього. Займатися власним проєктом інколи доводиться за залишковим принципом, коли є сили.
- Урешті проєкт може «не злетіти», а часу на нього пішло багато.
Перш ніж розпочати pet-проєкт, варто пам’ятати про ці моменти та зважено ухвалювати рішення щодо початку роботи.
Яку тему обрати та які технології використовувати?
Для початку визначтеся, для чого будете робити pet-проєкт:
- щоб опанувати нову технологію чи спробувати якийсь підхід у розробленні;
- для автоматизації рутинних процесів;
- для створення продукту, який полегшить життя вашого оточення чи суспільства тощо.
Відштовхуючись від мети проєкту, ви зможете подумати над його тематикою й обрати відповідні технології.
Наступний крок — правильно обрати інструменти. Скажімо, якщо ви збираєтеся працювати с машинним навчанням, то не варто обирати PHP — його створили для інших завдань. Перш за все — для розроблення сайтів і вебзастосунків. Ця мова використовується лише на бекенді та не завжди підійде для роботи з алгоритмами машинного навчання (хоча для цього є кілька бібліотек). У такому випадку краще використовувати Python або мову R. Або ж узагалі поєднати кілька мов. Водночас важливо, щоб кожна з них відповідала за ту область розроблення, для якої вона найбільше придатна.
Наприклад, якщо йдеться про веброзроблення, то можна спробувати стандартний стек LAMP (Apache) або LEMP (Nginx), а як бекенд використати PHP або Python. Хочеться чогось цікавішого — беріть Golang. Для мобільного розроблення взагалі широкий вибір інструментів: від JS (який, певно, вже скоро у чайниках будуть використовувати) до Swift, Java та Kotlin.
Для своїх pet-проєктів я зазвичай використовую такий стек технологій:
- MySQL чи PostgreSQL — як базу даних;
- ElasticSearch — для сервера пошуку;
- Redis — для кешування даних;
- PHP або Python — як мову програмування на бекенді (Python зазвичай використовую для оброблення даних);
- Nginx або Apache — у якості сервера;
- Laravel — фреймворк на бекенді;
- ReactJS або VueJS — фреймворки для фронтенду.
Як робити pet-проєкт ефективно?
Щоб ваш проєкт розвивався, насамперед необхідно системно підійти до його реалізації. Напишіть собі графік роботи над проєктом і намагайтесь дотримуватися плану..
Додаткову мотивацію підтримувати проєкт додає і те, що разом із ним розвиваєтесь і ви. Особливо приємно, коли вдається щось зробити, хочеться ще.
Коли ж ваш pet-проєкт має хоча б базові функції й ви готові показати його світові, то спершу варто протестувати його серед друзів чи колег. Їхній фідбек допоможе вам зрозуміти, чи варта ваша ідея уваги, які функції можна додати/прибрати або що можна покращити.
Буває і так, що pet-проєкт набридає, і це звична справа. У такий момент можна зробити паузу, перемкнутися на інше хобі та з новими силами пізніше повернутися до свого проєкту. Або взагалі закрити його. Так, це трохи сумно, але сприймайте це як корисний досвід, який обовʼязково десь стане вам у пригоді. Можете розмістити свої напрацювання як опенсорс на тому ж Github, і якщо він зацікавить когось, то ваша ідея житиме далі. Хтозна, може саме ваш код виявиться гучною розробкою у світі IT.
Мої приклади pet-проєктів
До початку повномасштабної війни в Україні у мене було чимало ідей власних pet-проєктів. Так, ми з другом збиралися створити мобільний застосунок для занять спортом із використанням штучного інтелекту. На базі великих даних (їх ми мали зібрати під час тестування) система мала генерувати індивідуальний план тренувань.
Одна з реалізованих ідей — соцмережа. Правда, зараз не працює, але з її запуском я отримав колосальний досвід. Коли ми з командою запускали її 2017 року, в деяких професійних колах ми дійсно навели шуму. Навіть проводили пресконференцію та намагалися рекламувати її.
Наразі мої пріоритети змінилися, як і тематика pet-проєктів. У перші дні повномасштабної війни в межах нашої внутрішньої волонтерської ініціативи я збирав інформацію про учасників нашої команди. Тоді люди перебували в дорозі, у різних районах міста чи навіть країни, і необхідно було дізнаватися, де вони, як себе почувають, чи потрібна їм допомога. Даних було багато, і хотілося цей процес автоматизувати.
У результаті вийшов невеликий pet-проєкт у вигляді Telegram-бота, який оперативно збирає необхідні дані та надсилає їх мені. Нещодавно Telegram випустив масштабне оновлення для ботів. Відтепер можна створювати вебзастосунки та напряму інтегрувати їх у Telegram, а не розробляти щось окреме. І тут у мене кількість ідей просто зашкалює. Залишилося тільки знайти час на реалізацію.
Отже, pet-проєкти можна робити, щоб розібратися в якійсь темі, перевірити гіпотезу, застосувати нову технологію на практиці чи поповнити портфоліо цікавими рішеннями. У будь-якому випадку ефективніше, якщо цей проєкт стане для вас продуктом, який розв’язує справжні проблеми цільової аудиторії, або ж автоматизує рутинні процеси.
Не переймайтеся, якщо в проєкті щось піде не так, як хотілося. Все одно це цінний досвід. Показуйте свої напрацювання знайомим і друзям. Залучайте інших IT-спеціалістів до спільної роботи. Оформлюйте результати у кейси та сміливо прикріплюйте до резюме.
Больше об этом
Я хочу піти у стартап, але боюся залишитися без роботи та грошей — No fears
Любую статью можно сохранить в закладки на сайте, чтобы прочесть ее позже.