Рубріки: Теорія

Що таке портфоліо та як його створити програмісту

Сергій Бондаренко

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

Що таке портфоліо?

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

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

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

До речі, слово «портфоліо» походить від італійського portafoglio, яке саме так і перекладається — гаманець, портфель. Посилання на портфоліо прикріплюють до резюме як доказ заявлених спеціалістом навичок.

Кому потрібне портфоліо?

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

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

Відмінності портфоліо від резюме

Багато хто плутає портфоліо та резюме, вживаючи ці слова як синоніми. Насправді це різні речі.

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

Портфоліо — це необов’язковий, але дуже важливий додаток до того, що написано в резюме. Воно підтверджує заявлені навички та знімає всі питання щодо кваліфікації спеціаліста.

Види портфоліо

Для художників, фотографів чи дизайнерів портфоліо може бути оформлене як онлайн-галерея робіт або взагалі викладене для доступу до мережі окремим PDF-файлом.

У випадку з розробниками ПЗ справа складніша. Будь-яка якісна програма розробляється не один тиждень, тому портфоліо, особливо у тих, хто тільки нещодавно почав вивчати програмування, може бути досить скромним.

Як його зібрати? При влаштуванні на роботу програмістів (як досвідчених, так і початківців) існує практика демонстрації своїх pet-проєктів.

Pet-проєкт — це завдання, яким програміст займався деякий час просто тому, що йому це було цікаво (звідси і кумедне слово pet — домашній улюбленець). 

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

У процесі роботи над власним pet-проєктом майбутній програміст набирає досвід. Він з нуля починає розумітися на тому, як працює та чи інша бібліотека чи фреймворк, вчиться «обкатувати» сире рішення, шукати в ньому недоліки та баги.

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

Що робити, якщо роботи закриті NDA?

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

Можна спробувати отримати офіційний дозвіл на розголошення якоїсь інформації, яка не нашкодить власнику прав на цей продукт, але пам’ятайте — шансів у вас не багато. Одним словом, потрібно бути дуже обережним з проєктами, закритими NDA.

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

Приклади портфоліо, ідеї для проєктів

Але що робити, якщо креативність — це не зовсім про вас? Якщо з ідеями pet-проєктів справи погані, можна вчинити інакше. У кожному IT-напрямку є набір стандартних завдань, які можна використовувати для прокачування своїх скілів.

Їх без особливих зусиль можна знайти в інтернеті, якщо трохи погуглити.

Ось, наприклад, список проєктів для фахівця, який позиціонує себе на позицію програміста Python:

  • веб-сайт (з використанням Flask, Django тощо);
  • реалізація комп’ютерного зору для аналізу зображень чи трекінгу у реальному часі (скажімо, за допомогою бібліотеки OpenCV);
  • використання графічного інтерфейсу (Tkinter, PyQt5, wxPython та інші бібліотеки) для зручного застосування (калькулятор, медіа-конвертер тощо);
  • пошуковий бот — для збору даних в інтернеті (за товарами, магазинами, кафе, салонами краси, автомайстернями та ін.);
  • бот для торгівлі акціями чи криптовалютами;
  • організація нейронної мережі, що навчається, для створення «сильного» гравця в комп’ютерній грі.

Аналогічні списки проєктів можна знайти і для інших мов програмування. 

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

Але для веб-розробника цілком очікувана наявність власного сайту-візитки, де будуть представлені якісь конкретні приклади залучення ваших скілів:

  • розроблено форму реєстрації та входу;
  • враховано валідацію, наприклад, у формі для зв’язку;
  • створено оригінальну систему навігації (а не просто нудне меню-гамбургер);
  • додано оновлювану стрічку новин з корисною інформацією (курси криптовалют, наявність товарів у магазині та ін.);
  • виводиться на екран якийсь випадковий елемент (цитата, порада тощо);
  • застосований індикатор завантаження.

Ще варіант відповіді на запитання «де знайти ідею» — займайтеся проєктами з відкритим кодом та додавайте їх до своєї колекції робіт. Наприклад, вирішуйте технічне завдання з чужих репозиторіїв на GitHub. Можете, навіть, використовувати утиліту для вибору випадкового issue на потрібній мові.

Інший спосіб вигадати собі завдання — скористатися генератором челенджів. Як варіант — Sharpen або Briefz. Просто замініть design на develop та спробуйте створювати те, що там пропонується.

Непоганий спосіб прокачати свої навички та виконати тестові завдання — сервіс Codewars. Він підтримує 55+ мов програмування та допоможе закріпити різні навички кодингу.

Як правильно скласти портфоліо

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

Основні вимоги до розробника залежать від напрямку, у якому він працює.

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

Не перевантажуйте свій сайт-візитку текстом. Розбийте розділи сайту на власні веб-компоненти чи окремі HTML-сторінки. 

Впорядковуйте свій код, щоб спостерігалася ієрархія з певними головними областями. Використовуйте section, nav, header, aside, body тощо. Слідкуйте, щоб позиціонування елементів через CSS відповідало сучасним специфікаціям.

Якщо ви ідентифікуєте себе як веб-розробник, за можливості зменшіть використання в коді div та span.

При описі своїх робіт добре було б між іншим згадати деякі алгоритми, які використовувалися для їх реалізації. На це з великою вірогідністю клюне роботодавець і задасть вам кілька питань, до яких ви вже будете готові.

Наприклад, ви можете сказати, що використовували у своїй програмі алгоритм швидкого сортування. У цьому випадку є великий шанс, що вас запитають, які ще існують алгоритми сортування. Ви їх легко перерахуєте: сортування бульбашкою, сортування Шелла, сортування перемішуванням і т.д.

Ну, і звичайно, потрібно запам’ятати їхні переваги та недоліки. 

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

Якщо ви програміст, то вся чи більша частина вашої роботи так чи інакше зав’язана на GitHub (або будь-якій іншій системі контролю версій).

Тому наявність посилань на репозіторії GitHub є обов’язковою. Але тут є нюанс. Ваше портфоліо може бути набагато ширшим, тому складаючи своє резюме, слід брати роботи під ті вимоги, які вказані у вакансії.

Скажімо, якщо потрібна робота з базами даних, варто показати приклад, де реалізована якась фішка з БД. 

Поради щодо GitHub

Приділіть увагу своєму розділу на GitHub, перевірте профіль та взагалі оформіть його акуратно та педантично.

Дайте нормальну та зрозумілу назву для репозиторію, зробіть опис. Файлова ієрархія у вас не повинна бути заплутаною.

Обов’язково мають бути:

  • хоча б найпростіші коментарі, які заощадять час тому, хто переглядатиме ваш репозиторій;
  • ім’я;
  • прізвище;
  • профіль;
  • контактні дані (наприклад, профіль на LinkedIn, пошта для швидкого запиту);
  • коротка біографія.

Заповнити репозиторій не важко — це можуть бути:

  • виконані домашні завдання з навчальних курсів;
  • якісь лабораторні роботи;
  • некомерційні pet-проєкти.

У показнику вашої активності встановіть дозвіл для відображення коммітів з приватних репозиторіїв. Комміти, ясна річ, мають бути визначені — в описі слід вказувати не просто bug fixed, а який саме знайдено баг, що саме було виправлено.

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

Додайте readme, посилання на демо, ліцензію, опис установки, відео, картинки тощо. Використовуйте теги, які дозволять рекрутеру знайти ваш репозиторій-портфоліо. Код-стайл має бути скрізь однаковим. 

Основні помилки при створенні портфоліо

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

Не варто включати в портфоліо незавершені проєкти, навіть якщо вони дуже цікаві. Сирий продукт лише зіпсує загальне враження.

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

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

Будьте уважні при складанні опису своїх pet-проєктів. Роботодавець може дивитися не тільки на суть проєкту, але також може приділити увагу таким «дрібницям» як організація його підтримки, використання git-flow, написання документації. 

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

Ну, і ясна річ, не варто привласнювати собі чужі проєкти — це дуже швидко з’ясовується і забере не тільки ваш час, а й час роботодавця.

Сервіси для створення портфоліо

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

Крім того, обрану платформу можна оптимізувати під певні технології. Так, наприклад, генератор сайтів Gatsby, орієнтований для React.

VuePress використовує Vue.js. Перевага цих сервісів у тому, що ви швидко отримуєте стабільний статичний сайт з адаптивністю для перегляду на мобільних пристроях і оптимізацією «з коробки».

Платформ для сайту-портфоліо існує безліч.

Найпростіший варіант — Google Sites. Він безкоштовний, має набір шаблонів і дуже простий у використанні. Єдиний мінус — аскетична адреса такої візитки.

Іноді для створення проєкту власних сил може бути недостатньо. У цьому випадку можна піти на кооперацію з кимось і зробити проєкт разом.

Наприклад, домовитися з веб-дизайнером-початківцем, який зробить цікаву верстку, а ви зі свого боку, наприклад, реалізуєте на Python- або Java-логіку веб-додатків.

Такий «бартер» у більшості випадків закінчується успішно, адже в проєкті зацікавлені обидва розробники. Знайти собі однодумця можна, наприклад, тут — на Simbi.

Висновок

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

Останні статті

Українські програмісти створили Lağoda QT — гру-головоломку кримськотатарською мовою

Українські програмісти створили безплатну гру-головоломку Lağoda QT.  Кожен рівень — вірш одного з видатних кримськотатарських…

07.05.2024

В Copilot для Microsoft 365 додали українську мову

Корпорація Microsoft оголосила про підтримку української мови у Copilot для Microsoft 365. Українська мова входить…

07.05.2024

Google безплатно навчатиме створювати чат-боти за допомогою Gemini. Потрібно тільки знання Python

Корпорація Google запустила реєстрацію задля участі в безплатній програмі Startup School: Gen AI. Програма безплатна…

07.05.2024

Вакансій і наймів більше, а зарплати — менше: що відбувалося на ринку праці у квітні

В квітні на ринку праці збільшилася кількість вакансій для IT-фахівців. На DOU та Djinni спостерігались…

07.05.2024

І всього лише $300. Китайці представили ноутбук на базі RISC-V для ШІ-девелоперів

Китайський стартап SpacemiT представив MuseBook — ноутбук на базі восьмиядерного процесора K1 RISC-V, орієнтований на…

06.05.2024

Учасники Brave1 створили ШІ-платформу HARVESTER для органів держбезпеки

Учасники Brave1, українська команда MATHESIS, розробила для органів держбезпеки платформу HARVESTER на основі штучного інтелекту.…

06.05.2024