EngX Code Review: почни писати код іще краще й побудуй ефективний процес код-рев’ю.

час читання: 5 хв

Як стати backend-розробником

Дізнайтесь, кому підійде професія бекенд-розробника, де і скільки навчатися, звідки набратися досвіду і як знайти роботу. Поради Software-інженера Google Влада Гаєвського.

Software-інженер Google Влад Гаєвський

Кому підійде професія розробника на бекенді

— У 2014-му я прийшов на джуніор-позицію backend-розробника в компанію EPAM. І з того часу продовжую писати на Java, — згадує Влад, — Після EPAM я перейшов у американську продуктову компанію, яку згодом поглинув Google. Так я опинився у Варшаві в одному із офісів Google.

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

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

Як навчитися backend-розробки з нуля

— Щоб навчитися багатьом речам, треба теорія і практика. Backend-розробка — не виняток.

Теорія

Зараз досить багато джерел, у які можна починати занурюватись навіть безкоштовно. По-перше — це книги. Вони є з будь-якої мови програмування. Завантажуємо pdf-формат та читаємо. Зі свого боку можу порекомендувати:

Для тих, хто не любить читати книги, можна почати з перегляду каналів на YouTube з назвами типу Java для початківців, Ruby для початківців і т. д. Мені свого часу допоміг канал Онлайн уроки з Java.

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

Практика

— Практикою потрібно закріплювати отримані теоретичні знання. І ось тут може допомогти відвідання курсів. Але й без них можна обійтись. Я порадив би почати вирішувати найпростіші завдання. Взяти будь-яке побутове питання, вирішення якого допоможе вам у житті, і написати для цього рішення код. Наприклад, порахувати якийсь складний відсоток у банку. Написати найбанальнішу програму без інтерфейсу — скільки я отримаю грошей через N років, якщо покладу на рахунок у банку таку суму під такий відсоток. Спочатку це можна зробити у вигляді калькулятора для конкретного випадку. Потім можна ускладнювати. Будь-яке питання, яке ви вирішуєте у повсякденному житті, можна автоматизувати та перенести до програми. Це буде завдання, створене для самого себе. Навіть такі найпростіші завдання допомагатимуть, оскільки на першому етапі просто треба почати писати код. Якщо це ваше, процес вас захопить. Мій молодший брат також вирішив, що хоче програмувати. Спочатку він робив ігри для консолі на Python, щось на зразок хрестиків-нуликів, тепер впроваджує емоджі для улюбленого Minecraft. Особисте залучення — це дуже важливо.

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

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

Тривалість навчання

— Коли я розпочинав свій шлях, у мене паралельно було навчання в коледжі, — згадує Влад, — З фактором відволікання у вигляді навчання чи іншої роботи можна навчитися розробці на бекенді за пів року. А якщо дуже постаратися, то за 4 місяці. Це термін з початку прочитання першої книжки до стажування. 2 місяці піде на теорію та 2 місяці — на практику. Швидше навряд чи вийде.

Але зовсім необов'язково отримувати диплом розробника у коледжі чи ВНЗ. Тут важливіші навички.

Де отримувати досвід

— Щоб здобути досвід, потрібно шукати компанії, які проводять стажування. Але якщо таких не знайшлося, то резюме можна включати і власні проєкти. Головне, щоб вони були цікавими та не найбанальнішими. Можна наголосити, що окрім основної мови ви застосували кілька сторонніх технологій, фреймворків. Один із моїх перших проєктів — це веб-сторінка для онлайн-перекладу. По суті, переклад робив не я, але обгортку навколо цього оформлював я. Ось про такі проєкти можна розповідати на співбесідах. Головне — розмістити це все на github.com. Тому що перша стадія будь-якої співбесіди до будь-якої компанії — це техскринінг, який перевіряє, чи вміє людина писати код взагалі. А тут одразу на github.com сторінка, де буде видно, що ви вмієте використовувати інші технології. Це підніме зацікавленість роботодавця.

Поради backend-розробнику початківцю

— Що б я порадив спеціалістам-початківцям? Головне, якщо ви вже потрапили на роботу в компанію, — постійно стежити за тим, що роблять старші колеги. Робота кипітиме навколо, у вас буде багато завдань, але завжди корисно подивитися, як вирішують завдання інші. Подивитися в їхній код, набратися досвіду. І ніколи не зависати на одному стеку технологій. Щойно вас взяли на якийсь проєкт, на стажування, це буде саме один стек технологій. Але для джуніора «смертельно» зависнути на одному конкретному стеку. Якщо на роботі вивчати інший стек немає можливості, то йдемо в інтернет і дивимося доповіді про інший. Потрібно постійно розширювати кругозір.

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

Чи складно стати backend-розробником

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

За весь той час, що я в IT, у мене дуже багато хто запитував, які підручники почитати і що на YouTube подивитися. У мене вже була заготована відповідь для таких запитів зі списком посилань. Але у 90% випадків це все ні до чого не призводило. Люди не доходили до кінця. Не буде такого, що я дав посилання на яке натиснув, і завтра вийшов на роботу. Буде багато інших посилань, і якщо буде бажання довести це до кінця, ви точно отримаєте винагороду.

Іще більше про професію
Матеріали за темою