😍 Спробуй Новий Trustee Plus на дотик - твій криптогаманець і платіжна картка тут 👉
Марія БровінськаУвійти в ІТ
7 вересня 2022, 12:12
2022-09-07
Мануал для джуна. Що треба знати новачку у frontend-розробці перед співбесідою на проєкт мрії: запитання для інтерв'ю та приклади тестових
Створювати ІТ-продукти можна на різних рівнях і вдосконалювати їх як зсередини, (backend), так і ззовні (frontend). Візьмемо, наприклад, сайт. Спеціаліст може працювати із завданнями «під капотом», а може розвивати інтерфейс сайту, застосунку чи спеціальне програмне забезпечення для бізнесу, щоб вони були зручними, зрозумілими та функціональними.
Останнім якраз займається frontend-інженер. Що ще треба знати джунам про frontend-розробку, що не варто робити перед співбесідою та на які запитання відповісти, щоби бути готовим на 100% — Frontend Engineer у Levi9 Олексій Горбунов розклав все по поличках у цьому матеріалі.
Створювати ІТ-продукти можна на різних рівнях і вдосконалювати їх як зсередини, (backend), так і ззовні (frontend). Візьмемо, наприклад, сайт. Спеціаліст може працювати із завданнями «під капотом», а може розвивати інтерфейс сайту, застосунку чи спеціальне програмне забезпечення для бізнесу, щоб вони були зручними, зрозумілими та функціональними.
Останнім якраз займається frontend-інженер. Що ще треба знати джунам про frontend-розробку, що не варто робити перед співбесідою та на які запитання відповісти, щоби бути готовим на 100% — Frontend Engineer у Levi9 Олексій Горбунов розклав все по поличках у цьому матеріалі.
Базові знання
Сфера frontend-розробки досить велика. Спеціаліст може виконувати рядові задачі, як-то верстати сторінки, налаштовувати передачу інформації із сервера на сайт і робити це в зрозумілому для користувача вигляді, так і розробляти програми для IOS/ Android, інтерфейси для роботи зі статистичними даними, структурування інформації та файлів, інтерактивні дошки й інструменти продуктивності, як Trello, Jira, Notion.
Мови для роботи: JavaScript, TypeScript
Фреймворки: загальні — React, Angular, Vue; для мобільної розробки — React Native та Ionic; для десктоп-розробки — Electron
Англійська: щоб мати можливість швидко зростати та працювати на міжнародних ринках і з цікавими проєктами, треба знати англійську мову — мати принаймні рівень В2, щоби комфортно спілкуватися з командою та клієнтом.
Frontend-розробник може працювати в будь-якій сфері. Так, в e-commerce ти відповідаєш за взаємодією клієнтів із вашим сайтом і його наповненням, працюєш із браузером і його фічами тощо. Якщо це мобільний застосунок, то розробник зустрічається з нативними модулями — налаштування сповіщень, інтеграція діплінків, елементи відео, як-то сканування QR-коду або отримання інформації з камер. У кожної сфери є свої нюанси й особливості, але це нормально — розробник постійно навчається.
Досвід співбесід і їхні особливості
Загалом співбесіди можна розділити на два етапи: ознайомче інтерв’ю з HR про ваші побажання, досвід і роботу компанії, а також спілкування з технічними фахівцями з перевіркою ваших навичок розробки. Водночас технічна співбесіда може тривати декілька годин — у мене був і 3-годинний мітинг.
Запорука успішного інтерв’ю — це «метч» із першої зустрічі. Щоби він відбувся, треба вміти представити себе з хорошого боку, але не намагатися здаватися кращим і сильнішим розробником, ніж ви є зараз.
Запитання на інтерв’ю
Якщо soft-skills запитання націлені на те, щоб розкрити ваші особистісні якості, то на технічному інтерв’ю увагу приділяють hard-навичками. Зазвичай багато треба говорити про роботу з «чистим» JavaScript, тобто без фреймворків і бібліотек.
Якщо йдеться про мову програмування, то класичний JavaScript відрізняється від того, який застосовують розробники на реальних проєктах. Наприклад, методи роботи з певними типами даних беруться з бібліотек як lodash, водночас ті самі класи рідко використовуються в побудові інтерфейсів на React. різниця є й у роботі з об'єктами, масивами, примітивами, прототипами, класами й іншими речами «під капотом». Підхід до розв’язання задач також інший, але без розуміння класичного JavaScript ви не зможете взаємодіяти з вищим рівнем абстракції на проєкті.
Під час роботи на React, вірогідно, ви не стикатиметеся з прототипним наслідуванням. Натомість на співбесіді про них можуть запитати.
Під час більшості інтерв’ю в блоці про JavaScript вас запитають про типи даних у цій мові, що означає та як працює ключове слово «this», дадуть декілька завдань на синтаксис, прототипи, алгоритми та різні структури даних за типом стека чи черги. А за фреймворками, наприклад, React — як працювати з перформансом, які є інструменти для цього, про рендеринг і хуки, а також взаємодію з життєвим циклом компонента. Водночас, якщо при роботі на React ви навряд чи стикатиметесь із прототипним наслідуванням, то на співбесіді про них можуть запитати.
Під час розмови вас можуть також попросити написати код — дати завдання та запитати, як ви поліпшите перформанс і яке рішення вимоги замовника можете запропонувати.
Можуть бути й дивні запитання. Наприклад, у мене колись цікавилися, що б я зробив, якби двоє моїх колеги побилися.
Цікаві тестові
Тестові завдання — це хороша можливість перевірити свої знання та показати, що ви вмієте. Проте його завдання — це не створити софт для компанії, а подивитися, як розробник мислить і працює — наприклад, як оголошує змінні, функції, якої структури проєкту дотримується. Але робота над тестовим не має перевищувати 4 годин.
На деяких технічних співбесідах був блок live-coding. Видали дані людей і попросили зверстати адаптивну сторінку, використовуючи ці картки. Або ж — просили зобразити картки готелів і налаштувати фільтрацію пошуку. Мета такого завдання — побачити, як розробник мислить, підходить до задачі чи використовує оптимальні рішення при роботі з кодом.
Ще одним цікавим завданням було реалізувати нескінченний скрол сторінки та розв’язати проблему, яка виникає через перевантаження системи елементами — сайт починає зависати. Наприклад, це можливо за допомогою бібліотек як React-virtualized, де елементи віртуалізуються та менше навантажують девайс користувача.
Підготовка до інтерв’ю
Перед співбесідою не потрібно намагатися вивчити все напам’ять — програмування занадто різноманітне, щоб знати все. Натомість його треба розуміти: якщо вивчили синтаксис мови та розумієте, як фіча працює, мозок починає відтворювати ці знання на практиці.
А щоб упевнитися у власних силах та освіжити теорію, можна потренуватися на завданнях на Leetcode, на Codewars, подивитися репозиторії з популярними питаннями на співбесідах — там є блоки із CSS, HTML, JavaScript. Можна також переглянути схожі кейси, фреймворки, особливості взаємодії з ними та роботи з перформансом.
Red flags
Загальне враження. З опису вакансії ви можете краще зрозуміти напрям і технології, з якими доведеться працювати. Так, якщо не подобається сфера чи вам нецікавий стек, краще не подаватися на цю позицію.
Тайм-трекери. Отримати завдання та одразу почати писати код неправильно й марно. Розробник має проаналізувати задачу, подивитися схожі кейси імплементації, ознайомитися з документацією та продумати логіку коду. Так, можна цілий день вирішувати в голові чи на папері проблему, а якісний код написати за 30 хв.
Розмитий графік роботи. Коли робочі години невизначені, а рекрутер ухиляється від прямого запитання, це може вказувати на часті овертайми, що не дуже добре для початківця.
Junior-спеціалістам краще більше часу приділяти підвищенню кваліфікації та навчанню. Тоді результат буде набагато ціннішим і для вас, і для компанії.
Альтернативна користь співбесід
Коли спеціаліст проходить співбесіди, то краще розуміє свою позицію на ринку — чи знаєте актуальні технології та потреби бізнесу, чи відповідають їм ваші навички та досвід.
ІТ-спеціаліст постійно має підвищувати кваліфікацію, відвідувати курси та створювати pet-проєкти. І не варто намагатися здатися більш кваліфікованим. Не знаєте чогось — не соромтесь сказати про це, але спробуйте логічно зрозуміти, як це можна зробити.
Співбесіда — це завжди новий досвід і універсального шаблону, як її провести, немає. Ви зіткнетеся з чимось новими навіть на 40-му інтерв’ю та нервувати з цього приводу не варто. Інтерв’ю можна розглядати як можливість дізнатися щось корисне для себе та поспілкуватися з професіоналами, які можуть чогось навчити, порадити чи розповісти інсайдерські речі про сферу.
Мануал для джуна. Чим займається Azure Cloud Engineer: must have навички початківця та список запитань зі співбесід від Lead DevOps Engineer із SoftServe
«Після випуску про IT-Generation хочеться зробити тред про те, як IT-школи вас най**ують». Відомий IT-блогер Діма Малєєв розповів, що думає про IT-освіту
Відомий IT-блогер Діма Малєєв розповів своє ставлення до IT-курсів, які наразі продукуються в Україні. «Після сьогоднішнього випуску про IT-Generation, хочеться зробити невеликий тред про те, як IT-школи вас най**ують, продаючи курси, які вам ніяк не допоможуть. І навіть якщо ви виграєте грант від програми — ви просто згаєте час», — написав він у Twitter.
Публікуємо його допис із частковою цензурою.
50 питань та відповідей щодо програмування для підготовки до технічного інтерв'ю
Готуючись до співбесіди, багато програмістів-початківців поняття не мають, яких питань очікувати від інтерв’юрів — чи це співбесіда в стартап, чи в технологічний гігант на кшталт Amazon, Microsoft або Google. У статті на Hacker Noon розробник Джавін Пол зібрав питання, які люблять ставити на таких інтерв’ю, а також відповіді на них та додаткові ресурси для підготовки.