22.09.2022

Сергій Немчинський: Які проекти робити програмісту-початківцю?

Сергій Немчинський
16 хвилин перегляду
Сергій Немчинський: Які проекти робити програмісту-початківцю?

Як краще презентувати себе під час пошуку першої роботи? Що писати, щоб показати, що ви є справжнім розробником? Які проекти робити розробнику-початківцю?

Потрібно визначитись із метою

Перш ніж говорити про те, який проект робити розробнику-початківцю, потрібно визначитися з метою. Тут порекомендую книгу «Мета» Еліяху Голдратта.

Ціль 1. Розвага

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

Ціль 2. Максимально швидко знайти роботу

У цьому випадку вам потрібно показати свої скіли майбутньому роботодавцю, показати, що ви справжній розробник. Ось у цьому випадку варто подумати про вибір проекту.

Вибираємо стек технологій

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

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

Якщо у вашій професії є дві взаємовиключні технології, то можете сміливо брати найпопулярнішу з них. Наприклад, у Java можна використовувати або Hibernate, або Toplink, але Hibernate набагато популярніший. Ту, яка менш популярна, можна використовувати у другому проекті (якщо ви шукаєте роботу занадто довго, щоб не гаяти часу, можна почати ще один проект). Як показує моя практика, якщо ви йдете на роботу, де використовується менш популярна технологія, то із знанням більш популярної  технології вас також візьмуть. Тому що вони зазвичай ідентичні та вивчити нову вам буде нескладно.

Тепер у вас є стек технологій, які повинні входити до вашого проекту. Але проект — це насамперед ідея.

Вигадуємо ідею проекту

Який проект писати? Такий, що потенційно може бути комусь потрібен. Це дуже важлива тема. Здається, що тут усе ясно і зрозуміло, але далеко не всі це розуміють. Робіть саме комерційний додаток.

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

Тут є одна серйозна пастка. Більшість новачків нічого не розуміють у проджект-менеджменті (і це логічно). Так ось, у проджект-менеджменті говориться, що будь-який проект потрібно починати з MVP (Minimal Viable Product). MVP — тестова версія товару/послуги/сервісу з мінімальним набором функцій (іноді навіть однією функцією), які мають основну цінність для кінцевого споживача. Вам не потрібно відразу писати повну функціональну програму, яка вміє все. Потрібна мінімальна кількість функцій, але таких, які будуть корисні людям. Це може бути телеграм-бот. Але не такий, який просто пише «Привіт» та «До побачення», а який робить щось корисне.

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

Що це може бути? Ну, наприклад, якийсь трекер завдань. Таких програм дуже багато, але хороших мало. Ось придумайте такий, який справді подобається вам. Можливо, знайдуться люди, кому ваш трекер теж сподобається більше за інші. Може, це буде якась чергова домашня бухгалтерія. Можливо якийсь рекомендаційний сервіс (по відео, книжкам, фільмам — взагалі по чому завгодно). У мене є знайомий-рибалка, який писав для себе систему, яка показувала температуру води у всіх водоймах в області. Інші рибалки також оцінили. Чим більш вузькоспрямована специфіка, тим більше шансів, що програма дійсно виявиться комусь потрібна.

Яких проектів робити не варто?

1. Великі проекти. Не слід робити чергову соціальну мережу. Можливо, вам здається, що соціальна мережа – це простий проект. Ні! Це жахливо складний проект, який потребує сотень людинороків роботи. Це проект для великої та серйозної компанії. І внесок має бути кілька десятків мільйонів доларів. Чат зробити ви можете, але не соцмережу. Та кому потрібний чат у 21 столітті?

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

Як вибрати проект?

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

Як має виглядати проект?

Проект має виглядати як додаток, яким хтось користується. Це складно зрозуміти, особливо бекендерам. Якщо ви не вмієте працювати з графікою – найміть дизайнера або верстальника. Ви можете знайти таких же початківців і робити спільний проект. Ідеальний варіант, коли вас у команді двоє чи троє (бекендер, фронтендер та дизайнер). Ви втрьох робите справжній проект, який чудово виглядає та правильно працює і на фронті, і на беку. Усі троє його вказують у своїх резюме. Більше того, це можна вказати як стратап на трьох + додати навичку роботи в команді. Але якщо команди не знайшлося — тоді наймайте дизайнера та верстальника, ваш проект має виглядати добре. Ну чи розбирайтеся у всіх нюансах самі і робіть все самі.

Участь у open-source проектах

Я як технічний інтерв’юер кілька разів зустрічав людей, які приходили до мене на першу роботу та розповідали про свій досвід роботи як комітера у якихось open-source проектах. І це справді зараховується як комерційний досвід. Чи включати це в резюме до блоку комерційного досвіду або до блоку проектів — спірне питання, я все ж таки вказав би це окремим пунктом — «участь в open-source проектах».

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

Завжди ваш Сергій Немчинський.