Kompletny Przewodnik - Rozmowa Rekrutacyjna Frontend Developer 2026
Rozmowa na stanowisko Frontend Developer w 2026 roku to nie jest już tylko "czy znasz JavaScript i potrafisz zrobić stronę". To sprawdzian z całego ekosystemu - od głębokiej znajomości języka, przez framework, TypeScript, CSS, po architekturę komponentów i narzędzia deweloperskie. Kandydaci, którzy przychodzą nieprzygotowani na tę szerokość wymagań, odpadają już na pierwszych pytaniach.
W tym przewodniku znajdziesz kompletną mapę tego, co sprawdzają rekruterzy na rozmowach frontend, jakie pytania padają najczęściej, i jak się do nich przygotować. Każda sekcja zawiera linki do szczegółowych artykułów, gdzie znajdziesz konkretne pytania z odpowiedziami.
Co sprawdzają na rozmowie Frontend Developer
Zanim zagłębimy się w szczegóły, musisz zrozumieć strukturę tego, co rekruterzy oceniają. Rozmowa frontend składa się z pięciu głównych obszarów:
| Obszar | Waga | Co sprawdzają |
|---|---|---|
| JavaScript Core | 30-35% | ES6+, asynchroniczność, closure, this, prototypy |
| Framework | 25-30% | React/Angular/Vue - zależnie od stanowiska |
| TypeScript | 10-15% | Typy, interfejsy, generyki |
| CSS/HTML | 15-20% | Layout, responsive, semantyka, dostępność |
| Narzędzia & Architektura | 10-15% | Git, bundlery, testing, komponentyzacja |
Wagi różnią się między firmami. Startupy mogą kłaść większy nacisk na szybkie prototypowanie i znajomość frameworka. Korporacje często sprawdzają głębiej JavaScript i TypeScript. Firmy produktowe pytają więcej o architekturę i skalowanie. Ale JavaScript core jest fundamentem wszędzie - bez solidnej znajomości języka, cała reszta się wali.
JavaScript - Fundament Każdej Rozmowy
Możesz być ekspertem od React, ale jeśli nie potrafisz wyjaśnić jak działa event loop albo co to jest closure, rozmowa skończy się szybko. JavaScript to fundament i rekruterzy zaczynają właśnie od niego.
Tematy, które musisz znać
Scope i Closure to absolutna podstawa. Musisz rozumieć różnicę między var, let i const nie tylko pod kątem hoisting, ale też scope. Closure - czyli funkcja "pamiętająca" zmienne z zewnętrznego scope - pojawia się na każdej rozmowie.
// Klasyczne pytanie: co wypisze ten kod?
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 100);
}
// Odpowiedź: 3, 3, 3 (nie 0, 1, 2!)
// Dlaczego? var ma function scope, nie block scope
// Wszystkie callbacki odwołują się do tej samej zmiennej i
// Jak to naprawić?
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 100);
}
// Teraz: 0, 1, 2 - let ma block scope
Asynchroniczność to drugi filar. Event loop, callback queue, microtasks vs macrotasks, Promise, async/await. Rekruterzy uwielbiają pytania typu "w jakiej kolejności wyświetlą się te console.log".
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');
// Kolejność: 1, 4, 3, 2
// Dlaczego 3 przed 2? Microtasks (Promise) mają priorytet nad macrotasks (setTimeout)
this w JavaScript to pułapka dla wielu kandydatów. Wartość this zależy od tego, jak funkcja jest wywołana, nie gdzie jest zdefiniowana. Arrow functions nie mają własnego this - używają this z otaczającego scope.
Prototypy i dziedziczenie - nawet jeśli używasz class syntax, pod spodem to wciąż prototypy. Rekruterzy pytają o prototype chain, Object.create, różnicę między proto a prototype.
Szczegółowe pytania z JavaScript z odpowiedziami znajdziesz w artykule: 15 Najtrudniejszych Pytań Rekrutacyjnych z JavaScript →
Framework: React vs Angular vs Vue
Na 90% ofert pracy frontend wymagany jest konkretny framework. Nie musisz znać wszystkich - potrzebujesz głębokiej znajomości jednego. Ale warto rozumieć różnice, bo pytanie "dlaczego React a nie Angular?" pada regularnie.
React - najczęściej wymagany
React dominuje rynek i prawdopodobnie to właśnie o niego będziesz pytany. Kluczowe tematy:
Hooks - useState, useEffect, useCallback, useMemo, useRef. Musisz wiedzieć kiedy używać którego i jakie problemy rozwiązują. Szczególnie ważne: kiedy nie używać useMemo/useCallback (premature optimization).
// Pytanie: jaki jest problem z tym kodem?
function SearchResults({ query }) {
const [results, setResults] = useState([]);
useEffect(() => {
fetchResults(query).then(setResults);
}, []); // ❌ Brak query w dependencies!
return <ul>{results.map(r => <li key={r.id}>{r.name}</li>)}</ul>;
}
// Poprawnie:
useEffect(() => {
fetchResults(query).then(setResults);
}, [query]); // ✅ Reaguje na zmiany query
Zarządzanie stanem - kiedy useState wystarczy, kiedy Context API, kiedy Redux/Zustand. Rekruterzy sprawdzają, czy rozumiesz trade-offy, nie tylko czy znasz API.
Virtual DOM i reconciliation - jak React decyduje, co re-renderować? Dlaczego key w listach jest ważny? Co to jest React Fiber?
React 19 - jeśli rekrutujesz w 2026, spodziewaj się pytań o najnowsze funkcje: use() hook, Actions, Server Components, nowe hooki formularzy.
Szczegółowe pytania z React z odpowiedziami:
Angular - enterprise i duże aplikacje
Angular to wybór dla dużych aplikacji enterprise. Jeśli rekrutujesz do korporacji lub software house'u pracującego z bankami, ubezpieczycielami, telekomunikacją - prawdopodobnie będzie Angular.
Kluczowe tematy Angular:
- Dependency Injection - jak działa, providedIn, hierarchia injectorów
- RxJS - Observable, Subject, operators (map, filter, switchMap, mergeMap)
- Change Detection - Default vs OnPush, kiedy Angular sprawdza zmiany
- Signals (Angular 16+) - nowe podejście do reaktywności
- Lazy loading modułów i standalone components
Angular 19 wprowadził zoneless change detection - to będzie gorący temat na rozmowach w 2026.
Szczegółowe pytania z Angular z odpowiedziami:
Vue - prostota i elastyczność
Vue jest popularny w mniejszych firmach i startupach. Kluczowe tematy:
- Composition API vs Options API
- Reaktywność - ref(), reactive(), computed()
- Lifecycle hooks
- Vuex/Pinia do zarządzania stanem
- Vue 3 features - Teleport, Suspense, fragmenty
Która wiedza jest uniwersalna?
Niezależnie od frameworka, rekruterzy sprawdzają te same koncepcje:
| Koncept | React | Angular | Vue |
|---|---|---|---|
| Cykl życia komponentu | useEffect | ngOnInit, ngOnDestroy | onMounted, onUnmounted |
| Zarządzanie stanem | useState, Redux | Services, NgRx | ref, Pinia |
| Komunikacja parent-child | props, callbacks | @Input, @Output | props, emit |
| Reaktywność | Virtual DOM | Zone.js / Signals | Proxy-based |
TypeScript - Czy Jest Wymagany?
Krótka odpowiedź: tak, w 2026 roku TypeScript jest praktycznie standardem. Długa odpowiedź: zależy od firmy, ale nawet jeśli projekt jest w czystym JS, znajomość TypeScript to duży plus.
Co musisz wiedzieć
Podstawowe typy - string, number, boolean, array, object, any, unknown, never, void. Różnica między any a unknown (any wyłącza type checking, unknown wymusza sprawdzenie typu przed użyciem).
Interfejsy i typy - kiedy interface, kiedy type alias? Interface jest rozszerzalny (declaration merging), type jest bardziej elastyczny (union types, mapped types).
// Interface - rozszerzalny
interface User {
id: number;
name: string;
}
interface User { // declaration merging
email: string;
}
// Type - bardziej elastyczny
type Status = 'pending' | 'active' | 'deleted'; // union type
type UserWithStatus = User & { status: Status }; // intersection
Generyki - to poziom mid/senior. Musisz umieć napisać funkcję generyczną i wyjaśnić, po co są generyki.
// Klasyczne pytanie: napisz funkcję, która zwraca pierwszy element tablicy
// z zachowaniem typu
function first<T>(arr: T[]): T | undefined {
return arr[0];
}
const num = first([1, 2, 3]); // num: number | undefined
const str = first(['a', 'b']); // str: string | undefined
Type guards i narrowing - jak TypeScript zawęża typy w runtime.
function processValue(value: string | number) {
if (typeof value === 'string') {
// TypeScript wie, że tu value jest string
return value.toUpperCase();
}
// Tu value jest number
return value.toFixed(2);
}
Szczegółowe pytania z TypeScript z odpowiedziami: TypeScript dla Początkujących - Pytania Rekrutacyjne →
CSS i HTML - Niedoceniane Tematy
Wielu kandydatów skupia się na JavaScript i frameworku, traktując CSS jako "coś co jakoś działa". To błąd. Na rozmowach frontend pytania o CSS padają regularnie i często eliminują kandydatów, którzy ich nie spodziewali.
CSS Layout - Flexbox i Grid
To absolutna podstawa. Musisz wiedzieć:
Flexbox - jednowymiarowy layout. justify-content, align-items, flex-grow/shrink/basis, flex-direction, flex-wrap.
Grid - dwuwymiarowy layout. grid-template-columns/rows, grid-area, fr jednostka, auto-fill vs auto-fit.
/* Klasyczne pytanie: wycentruj element w pionie i poziomie */
/* Rozwiązanie Flexbox */
.container {
display: flex;
justify-content: center;
align-items: center;
}
/* Rozwiązanie Grid */
.container {
display: grid;
place-items: center;
}
Kiedy Flexbox, kiedy Grid? Flexbox dla layoutu w jednym kierunku (navbar, lista przycisków). Grid dla layoutu dwuwymiarowego (siatka kart, layout strony). Możesz je łączyć - Grid dla głównego layoutu, Flexbox wewnątrz komponentów.
Pozycjonowanie i Box Model
Position - static, relative, absolute, fixed, sticky. Musisz wiedzieć, względem czego pozycjonuje się element z position: absolute (najbliższy przodek z position innym niż static).
Box Model - content, padding, border, margin. Różnica między box-sizing: content-box a border-box.
Specificity - jak CSS decyduje, który styl wygrywa? inline > ID > class > element. Ważność: !important > inline > reszta.
Responsive Design
Media queries, mobile-first vs desktop-first, jednostki względne (em, rem, vh, vw, %).
/* Mobile-first approach */
.container {
padding: 1rem;
}
@media (min-width: 768px) {
.container {
padding: 2rem;
max-width: 720px;
}
}
@media (min-width: 1024px) {
.container {
max-width: 960px;
}
}
HTML Semantyczny i Dostępność
Pytania o semantyczny HTML i accessibility (a11y) stają się coraz częstsze.
- Kiedy używać
<article>,<section>,<aside>,<nav>? - Różnica między
<button>a<div onclick> - Atrybuty ARIA - aria-label, aria-hidden, role
- Kolejność focusu i nawigacja klawiaturą
Szczegółowe pytania z CSS z odpowiedziami: CSS Flexbox i Grid - Kompletny Przewodnik →
Narzędzia i Ekosystem
Rekruterzy sprawdzają nie tylko czy potrafisz pisać kod, ale czy rozumiesz środowisko, w którym pracujesz.
Git - Podstawy i Workflow
Każda firma używa Git. Podstawowe komendy (add, commit, push, pull, branch, merge) to minimum. Na rozmowach padają pytania o:
- Różnica między merge a rebase
- Jak cofnąć commit (reset vs revert)
- Jak rozwiązać konflikt merge
- Git flow vs trunk-based development
# Pytanie: jak cofnąć ostatni commit zachowując zmiany?
git reset --soft HEAD~1
# Pytanie: jak cofnąć commit na wspólnym branchu bez przepisywania historii?
git revert <commit-hash>
Szczegółowe pytania z Git: Git dla Programistów - Pytania Rekrutacyjne →
Package Managers i Bundlery
npm vs yarn vs pnpm - różnice, lockfile, node_modules.
Bundlery - Webpack, Vite, esbuild, Turbopack. Nie musisz znać konfiguracji na pamięć, ale powinieneś rozumieć:
- Po co są bundlery (łączenie modułów, tree shaking, code splitting)
- Różnica między dev a production build
- Czym jest source map
Testing
Pytania o testy są coraz częstsze, szczególnie na stanowiska mid/senior:
- Unit tests (Jest, Vitest)
- Component tests (React Testing Library, Vue Test Utils)
- E2E tests (Cypress, Playwright)
- Czym jest TDD i czy go stosujesz
// Przykład testu komponentu React
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import Counter from './Counter';
test('increments counter on button click', async () => {
render(<Counter />);
expect(screen.getByText('Count: 0')).toBeInTheDocument();
await userEvent.click(screen.getByRole('button', { name: /increment/i }));
expect(screen.getByText('Count: 1')).toBeInTheDocument();
});
System Design dla Frontendowców
Na stanowiskach mid i senior spodziewaj się pytań o architekturę. Nie tak zaawansowanych jak backend system design, ale nadal wymagających.
Architektura Komponentów
Jak organizujesz komponenty? Atomic Design? Feature-based? Jakie są trade-offy?
# Struktura feature-based (popularna w 2026)
src/
├── features/
│ ├── auth/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── api/
│ │ └── index.ts
│ ├── products/
│ └── cart/
├── shared/
│ ├── components/
│ ├── hooks/
│ └── utils/
└── app/
Zarządzanie Stanem
Kiedy stan lokalny, kiedy globalny? Jak uniknąć prop drilling? Server state vs client state (React Query, SWR).
Performance
- Code splitting i lazy loading
- Memoization (React.memo, useMemo, useCallback)
- Virtualizacja długich list
- Optymalizacja obrazów (lazy loading, next/image, srcset)
- Core Web Vitals (LCP, FID/INP, CLS)
Pytania typu "Zaprojektuj..."
Przykładowe pytania system design dla frontend:
- "Zaprojektuj komponent autocomplete z debounce"
- "Jak zbudujesz infinite scroll?"
- "Zaprojektuj system powiadomień toast"
- "Jak zorganizujesz formularze w dużej aplikacji?"
Plan Przygotowań: 3 Tygodnie do Rozmowy
Oto sprawdzony harmonogram przygotowań. Zakłada 1.5-2 godziny dziennie. Jeśli masz więcej czasu, możesz go skrócić.
Tydzień 1: JavaScript i Podstawy
Dni 1-3: JavaScript Core
- Scope, closure, hoisting
- this i arrow functions
- Prototypy i dziedziczenie
- Praktyka: odpowiedz na głos na 10 pytań z naszego zestawu JavaScript
Dni 4-5: Asynchroniczność
- Event loop, call stack, callback queue
- Promise, async/await
- Microtasks vs macrotasks
- Praktyka: rozwiąż 5 zadań z kolejnością wykonania console.log
Dni 6-7: ES6+ Features
- Destructuring, spread/rest
- Map, Set, WeakMap, WeakSet
- Optional chaining, nullish coalescing
- Modules (import/export)
Tydzień 2: Framework i TypeScript
Dni 1-3: Twój Framework (React/Angular/Vue)
- Cykl życia komponentu
- Zarządzanie stanem
- Hooks (React) / Signals (Angular) / Composition API (Vue)
- Praktyka: zbuduj mały projekt od zera (todo list, prosty dashboard)
Dni 4-5: TypeScript
- Podstawowe typy i interfejsy
- Generyki
- Type guards
- Praktyka: przepisz swój mały projekt na TypeScript
Dni 6-7: Zaawansowane tematy frameworka
- Performance optimization
- Testing komponentów
- Najnowsze features (React 19 / Angular 19 / Vue 3.4)
Tydzień 3: CSS, Narzędzia i Mock Interviews
Dni 1-2: CSS
- Flexbox i Grid
- Pozycjonowanie i Box Model
- Responsive design
- Praktyka: zbuduj layout strony bez frameworka CSS
Dni 3-4: Narzędzia i Ekosystem
- Git workflow
- Build tools (Vite, Webpack)
- Testing (Jest, React Testing Library, Cypress)
Dni 5-7: Mock Interviews
- Odpowiadaj na pytania na głos (nagraj się)
- Rozwiązuj zadania praktyczne z timerem
- Przećwicz "myślenie na głos" podczas kodowania
- Przygotuj pytania dla rekrutera
Najczęstsze Błędy Kandydatów
Po przeprowadzeniu wielu rozmów frontend, widzę powtarzające się wzorce błędów:
Błąd 1: Znajomość frameworka bez JavaScript
"Znam React" ale nie potrafi wyjaśnić, jak działa this albo co to closure. Framework to abstrakcja nad JavaScript - bez znajomości języka, nie zrozumiesz dlaczego rzeczy działają (lub nie działają).
Błąd 2: Ignorowanie CSS
Kandydat świetnie radzi sobie z logiką, ale na pytanie "jak wycentrować element" szuka odpowiedzi na Stack Overflow. CSS jest częścią pracy frontend developera. Musisz go znać.
Błąd 3: Brak praktyki "na głos"
Wiesz wszystko, ale pod presją rozmowy nie możesz wyartykułować myśli. Jedyne rozwiązanie: praktyka mówienia na głos. Nagrywaj się odpowiadającego na pytania.
Błąd 4: Nieznajomość najnowszych wersji
React 19, Angular 19, Vue 3.4 - rekruterzy pytają o najnowsze features. Jeśli nie wiesz co to Server Components albo Signals, wyglądasz na kogoś, kto nie śledzi branży.
Błąd 5: Brak pytań do rekrutera
"Nie mam pytań" to sygnał, że nie myślisz poważnie o tej roli. Przygotuj minimum 3-5 pytań o zespół, projekt, stack, kulturę pracy.
Podsumowanie: Checklist Przed Rozmową
Przed rozmową upewnij się, że:
JavaScript:
- Potrafisz wyjaśnić closure na przykładzie
- Rozumiesz event loop i kolejność wykonania
- Znasz różnice var/let/const
- Wiesz jak działa this
Framework:
- Znasz cykl życia komponentu
- Rozumiesz zarządzanie stanem
- Potrafisz zoptymalizować wydajność
- Znasz najnowsze features (React 19 / Angular 19)
TypeScript:
- Potrafisz napisać interfejs i typ
- Rozumiesz generyki
- Znasz type guards
CSS:
- Flexbox - justify-content, align-items, flex properties
- Grid - grid-template, grid-area
- Pozycjonowanie - relative, absolute, fixed, sticky
- Responsive design i media queries
Narzędzia:
- Git - branch, merge, rebase, reset, revert
- npm/yarn - podstawowe komendy
- Podstawy testowania
Soft skills:
- Przygotowane pytania dla rekrutera
- Przećwiczone odpowiedzi behawioralne (STAR)
- Praktyka "myślenia na głos"
Zobacz też
- 15 Najtrudniejszych Pytań Rekrutacyjnych z JavaScript - dogłębne pytania i odpowiedzi
- 15 Najtrudniejszych Pytań Rekrutacyjnych z React - React hooks, performance, patterns
- Angular vs React - Porównanie - różnice i kiedy wybrać który
- TOP 5 Błędów w Zadaniach z Angulara - najczęstsze pułapki
- Angular 19 - Zoneless, Signals, @defer - nowości Angular 19
- Angular Signals - Deep Dive - signal(), computed(), effect(), zoneless, migracja
- React Hooks - useEffect, useMemo, useCallback - kiedy używać, kiedy nie
- React 19 - Nowe Hooki - use(), Actions, Server Components
- React Server Components - Deep Dive - RSC, Server Actions, streaming, "use client"
- Vue.js Pytania Rekrutacyjne - Kompletny Przewodnik - Composition API, Pinia, Vue Router
- Next.js Pytania Rekrutacyjne - Kompletny Przewodnik - App Router, Server Components, SSR/ISR
- HTML5 i Accessibility - Przewodnik - semantyka, ARIA, WCAG, dostępność
- Redux Pytania Rekrutacyjne - Przewodnik - Redux Toolkit, React-Redux, Thunk, Saga
- Frontend Testing - Jest, RTL, Cypress - testy jednostkowe, integracyjne, E2E
- Web Performance i Core Web Vitals - LCP, INP, CLS, optymalizacja
- TypeScript dla Początkujących - podstawy z pytaniami rekrutacyjnymi
- TypeScript Zaawansowany - generics, conditional types, mapped types, infer
- CSS Flexbox i Grid - Przewodnik - layout od podstaw
- Git dla Programistów - workflow i pytania rekrutacyjne
- Git Zaawansowany - rebase, cherry-pick, bisect, worktrees, reflog
- Frontend Security - CSP, CORS, XSS - bezpieczeństwo aplikacji frontendowych
- Browser APIs - Web Workers, Service Workers, IndexedDB - PWA, offline-first, wydajność
- Jak Przygotować Się do Rozmowy Technicznej - ogólny przewodnik
Chcesz Więcej Pytań na Rozmowę Frontend?
Ten artykuł to mapa - pokazuje, co musisz wiedzieć. Ale prawdziwe przygotowanie wymaga praktyki z konkretnymi pytaniami.
Mamy zestawy pytań dla każdej technologii frontend - JavaScript (150 pytań), React (50 pytań), Angular (50 pytań), TypeScript (33 pytania), CSS (54 pytania) i więcej. Każde pytanie z odpowiedzią w formacie "30 sekund / 2 minuty" - dokładnie tak, jak wyglądają prawdziwe rozmowy.
Zdobądź Pełny Dostęp do Wszystkich Pytań →
Lub wypróbuj za darmo:
Napisane przez zespół Flipcards, na podstawie doświadczeń z rozmów rekrutacyjnych w firmach technologicznych i software house'ach w Polsce i za granicą.
Chcesz więcej pytań rekrutacyjnych?
To tylko jeden temat z naszego kompletnego przewodnika po rozmowach rekrutacyjnych. Uzyskaj dostęp do 800+ pytań z 13 technologii.
