📚 170 câu cần học 🔁 78 câu ôn nhanh ⏱ ~11 giờ 🧭 13 chủ đề
Tiến độ lộ trình0/170 · 0%
🎯 Ở level Senior, bạn cần ổn những điều này
- ✓ Thiết kế end-to-end: chọn render strategy, API contract, cache, auth, deploy
- ✓ Phân tích hiệu năng toàn tuyến: Web Vitals, bundle, truy vấn DB, caching
- ✓ Cân nhắc đánh đổi giữa các kiến trúc và giải thích được cho team
- ✓ Xử lý sự cố sản xuất và có tư duy vận hành (log, metrics, graceful shutdown)
1 JS
JavaScript
Bắt buộc 14 câuĐã thuộc0/14 · 0%
- ✓ `this` trong JavaScript được xác định như thế nào? Mid
- ✓ call, apply, bind khác nhau thế nào? Tự viết bind Mid
- ✓ debounce và throttle khác nhau thế nào? Viết code mỗi loại Mid
- ✓ ES Modules khác CommonJS thế nào? Live binding và tree shaking là gì? Mid
- ✓ Event bubbling, capturing và event delegation là gì? Mid
- ✓ Event loop hoạt động thế nào? Microtask vs macrotask? Mid
- ✓ Promise.all, allSettled, race, any khác nhau thế nào? Mid
- ✓ Prototype và prototype chain là gì? class khác function constructor ra sao? Mid
- ✓ Shallow copy và deep copy khác nhau thế nào? structuredClone có giới hạn gì? Mid
- ✓ Garbage collection hoạt động thế nào? Các nguyên nhân memory leak phổ biến Senior
- ✓ Iterator protocol và generator hoạt động thế nào? Dùng khi nào? Senior
- ✓ Map, Set, WeakMap, WeakSet và WeakRef khác nhau thế nào? Senior
- ✓ Microtask starvation là gì? Làm sao tránh chặn event loop? Senior
- ✓ Proxy và Reflect là gì? Ứng dụng và hạn chế Senior
🔁 Ôn nhanh 7 câu nền tảng (đã học ở level thấp hơn)
- ✓ `==` và `===` khác nhau thế nào? Type coercion hoạt động ra sao? Junior
- ✓ Closure trong JavaScript là gì? Junior
- ✓ Destructuring, spread và rest operator khác nhau thế nào? Junior
- ✓ Khác nhau giữa var, let và const? Junior
- ✓ map, filter, reduce dùng thế nào? Method nào của Array làm thay đổi mảng gốc? Junior
- ✓ Optional chaining `?.` và nullish coalescing `??` khác gì `&&` và `||`? Junior
- ✓ Vì sao 0.1 + 0.2 !== 0.3 trong JavaScript? Xử lý thế nào? Junior
2 TS
TypeScript
Bắt buộc 11 câuĐã thuộc0/11 · 0%
- ✓ `strict` trong tsconfig bật những flag nào? Nên bật thêm flag nào? Mid
- ✓ Function overload trong TypeScript hoạt động thế nào? Khi nào nên dùng? Mid
- ✓ Generics là gì? Khi nào dùng? Mid
- ✓ Mapped types là gì? Modifier `+/-` và key remapping `as` Mid
- ✓ Structural typing là gì? Làm sao mô phỏng nominal typing (branded types)? Mid
- ✓ Toán tử satisfies khác type annotation và `as` thế nào? Mid
- ✓ Conditional types và infer hoạt động thế nào? Distributive conditional type là gì? Senior
- ✓ Declaration merging và module augmentation là gì? Senior
- ✓ Template literal types là gì? Ứng dụng thực tế Senior
- ✓ Type TypeScript và runtime validation: vì sao cần zod? Senior
- ✓ Variance: covariance, contravariance, invariance trong TypeScript Senior
🔁 Ôn nhanh 6 câu nền tảng (đã học ở level thấp hơn)
- ✓ any, unknown và never khác nhau thế nào? Junior
- ✓ Các utility types thường dùng: Partial, Pick, Omit, Record, ReturnType Junior
- ✓ enum và const object (as const) khác nhau thế nào? Nên dùng cái nào? Junior
- ✓ interface và type khác nhau thế nào? Junior
- ✓ readonly, Readonly và `as const` khác nhau thế nào? Junior
- ✓ Type narrowing và type guard là gì? Discriminated union hoạt động ra sao? Junior
3 Re
React
Bắt buộc 21 câuĐã thuộc0/21 · 0%
- ✓ Batching state update trong React 18 (automatic batching) là gì? Mid
- ✓ Custom hook là gì? So với HOC và render props thì sao? Mid
- ✓ Error Boundary và Portal trong React dùng khi nào? Mid
- ✓ Khi nào component re-render? Dùng memo, useMemo, useCallback ra sao? Mid
- ✓ Lifting state up và prop drilling: khi nào nâng state, khi nào dùng composition hoặc Context? Mid
- ✓ React Router v6: nested route, Outlet và loader/action (data router)? Mid
- ✓ React Testing Library: nguyên tắc, thứ tự ưu tiên query và userEvent? Mid
- ✓ Stale closure trong React hooks là gì và xử lý ra sao? Mid
- ✓ Suspense, React.lazy và code-splitting dùng thế nào? Mid
- ✓ TanStack Query: staleTime, gcTime, invalidate và vì sao khác tự gọi fetch trong useEffect? Mid
- ✓ useLayoutEffect khác useEffect thế nào? Mid
- ✓ useReducer và Context: vấn đề re-render và cách khắc phục? Mid
- ✓ Xử lý form phức tạp trong React: vì sao dùng react-hook-form (kèm Zod)? Mid
- ✓ Chọn state management: useState, Context, Redux, Zustand, React Query? Senior
- ✓ Compound component và composition: thiết kế API component linh hoạt? Senior
- ✓ Concurrent rendering: useTransition và useDeferredValue khác nhau thế nào? Senior
- ✓ Race condition khi fetch trong useEffect và cách xử lý bằng AbortController? Senior
- ✓ React 19 có gì mới: use, Actions, useOptimistic? Senior
- ✓ Reconciliation và Fiber trong React hoạt động thế nào? Senior
- ✓ Render danh sách hàng chục nghìn item: virtualization hoạt động thế nào? Senior
- ✓ StrictMode render hai lần để làm gì? Component pure nghĩa là gì? Senior
🔁 Ôn nhanh 9 câu nền tảng (đã học ở level thấp hơn)
- ✓ Class component và function component khác nhau thế nào? Lifecycle tương ứng với hooks ra sao? Junior
- ✓ Conditional rendering và render danh sách trong React: các cách và lỗi hay gặp? Junior
- ✓ Controlled và uncontrolled component khác nhau thế nào? Junior
- ✓ JSX là gì và được biên dịch ra sao? Junior
- ✓ State và props khác nhau thế nào? Junior
- ✓ useEffect chạy khi nào? Mảng dependency để làm gì? Junior
- ✓ useRef khác useState thế nào? Khi nào dùng ref? Junior
- ✓ Vì sao list trong React cần `key`? Có nên dùng index làm key? Junior
- ✓ Virtual DOM là gì và vì sao React dùng nó? Junior
4 Nx
Next.js
Bắt buộc 19 câuĐã thuộc0/19 · 0%
- ✓ cookies(), headers() và Dynamic APIs: tác động đến rendering và thay đổi ở Next 15? Mid
- ✓ Data fetching trong App Router: khi nào fetch ở Server Component, khi nào dùng Route Handler? Mid
- ✓ Form với Server Actions: useActionState, useFormStatus và progressive enhancement? Mid
- ✓ Hydration error trong Next.js là gì, nguyên nhân phổ biến và cách sửa? Mid
- ✓ ISR và on-demand revalidation: revalidatePath và revalidateTag dùng thế nào? Mid
- ✓ Middleware trong Next.js chạy ở đâu, dùng làm gì và có những giới hạn nào? Mid
- ✓ next/dynamic và phân tích bundle: giảm JavaScript gửi tới client thế nào? Mid
- ✓ Phân biệt SSG, SSR, ISR trong App Router; điều gì khiến một route thành dynamic? Mid
- ✓ redirects, rewrites và headers trong next.config khác nhau thế nào? Mid
- ✓ Server Actions hoạt động thế nào và cần lưu ý gì về bảo mật? Mid
- ✓ Triển khai authentication/authorization trong App Router đúng cách như thế nào? Mid
- ✓ after() và instrumentation.ts dùng để làm gì trong Next.js? Senior
- ✓ Deploy Next.js: Vercel khác self-host thế nào? Output standalone và Docker? Senior
- ✓ Giải thích 4 tầng cache của Next.js App Router và cách revalidate Senior
- ✓ Kết hợp TanStack Query với Server Components: prefetch và HydrationBoundary? Senior
- ✓ Parallel Routes và Intercepting Routes là gì? Làm modal có URL riêng thế nào? Senior
- ✓ RSC payload là gì? 'use client' boundary ảnh hưởng thế nào đến bundle và cách tối ưu? Senior
- ✓ Security headers và CSP với nonce trong Next.js được triển khai thế nào? Senior
- ✓ Streaming với Suspense và Partial Prerendering (PPR) trong Next.js hoạt động ra sao? Senior
🔁 Ôn nhanh 9 câu nền tảng (đã học ở level thấp hơn)
- ✓ App Router và Pages Router khác nhau thế nào? Có thể dùng song song không? Junior
- ✓ Biến môi trường NEXT_PUBLIC_ khác biến thường như thế nào? Có thể đổi lúc runtime không? Junior
- ✓ Dynamic route và generateStaticParams trong App Router dùng thế nào? Junior
- ✓ layout, template, loading, error và not-found trong App Router dùng để làm gì? Junior
- ✓ Metadata API và SEO trong Next.js: generateMetadata, sitemap, robots, Open Graph? Junior
- ✓ next/image và next/font tối ưu hiệu năng như thế nào? Junior
- ✓ next/link prefetch hoạt động thế nào và điều hướng client-side khác gì reload trang? Junior
- ✓ Route group và private folder trong App Router dùng để làm gì? Junior
- ✓ Server Component và Client Component trong Next.js App Router khác nhau thế nào? Junior
5 No
Node.js
Bắt buộc 20 câuĐã thuộc0/20 · 0%
- ✓ Graceful shutdown trong Node.js (SIGTERM) làm thế nào? Mid
- ✓ Hash password trong Node.js: bcrypt/argon2 và timing attack Mid
- ✓ Node.js đơn luồng nhưng xử lý được nhiều request nhờ đâu? Mid
- ✓ process.nextTick, Promise và setImmediate khác nhau thế nào? Mid
- ✓ Structured logging với pino và gắn request id xuyên suốt Mid
- ✓ Test API Express với Jest và Supertest, mock dependency thế nào? Mid
- ✓ Thiết kế REST API: status code, idempotency, pagination Mid
- ✓ Upload file trong Node.js: multer, giới hạn và streaming lên storage Mid
- ✓ Validate input trong Express: vì sao cần và dùng zod như thế nào? Mid
- ✓ Xử lý lỗi trong Node.js: uncaughtException và unhandledRejection Mid
- ✓ AsyncLocalStorage dùng để làm gì? Truyền context request không cần tham số Senior
- ✓ Các pha (phases) của event loop trong libuv hoạt động ra sao? Senior
- ✓ Cấu hình 12-factor và scale ứng dụng Node.js (PM2, cluster, stateless) Senior
- ✓ Connection pooling database trong Node.js: cỡ pool, leak và nhiều instance Senior
- ✓ HTTP keep-alive và các timeout của Node.js server: sai cấu hình gây 502 thế nào? Senior
- ✓ JWT vs session và bảo mật API Node.js (CORS, helmet, rate limit, SQL injection) Senior
- ✓ Memory leak trong Node.js: nguyên nhân phổ biến và cách debug? Senior
- ✓ Scale Socket.IO/WebSocket nhiều instance: sticky session và Redis adapter Senior
- ✓ Streams, backpressure và Buffer trong Node.js Senior
- ✓ worker_threads, cluster và child_process khác nhau thế nào? Senior
🔁 Ôn nhanh 8 câu nền tảng (đã học ở level thấp hơn)
- ✓ CommonJS và ES Modules khác nhau thế nào? Junior
- ✓ EventEmitter trong Node.js hoạt động thế nào và cần lưu ý gì? Junior
- ✓ fs: sync, callback và promises khác nhau thế nào? Dùng path ra sao? Junior
- ✓ Middleware trong Express là gì? Junior
- ✓ Node.js là gì? Vai trò của V8 và libuv Junior
- ✓ package.json: dependencies, devDependencies, semver và lockfile Junior
- ✓ require() hoạt động thế nào? Module cache và resolution Junior
- ✓ So sánh npm, Yarn và pnpm Junior
6 Ne
NestJS
Bắt buộc 19 câuĐã thuộc0/19 · 0%
- ✓ API versioning trong NestJS: URI, header và media type Mid
- ✓ Custom providers: useClass, useValue, useFactory, useExisting dùng khi nào? Mid
- ✓ E2E test NestJS với Supertest: dựng app, override provider và dọn dữ liệu Mid
- ✓ Interceptor dùng để làm gì? Ví dụ logging, caching, map response Mid
- ✓ Rate limiting với ThrottlerModule trong NestJS và khi chạy nhiều instance Mid
- ✓ Request lifecycle trong NestJS: thứ tự middleware, guard, interceptor, pipe, filter? Mid
- ✓ Transaction trong NestJS với TypeORM: DataSource, QueryRunner và repository pattern Mid
- ✓ Triển khai JWT authentication với Passport trong NestJS Mid
- ✓ Unit test service NestJS với Test.createTestingModule và mock provider Mid
- ✓ Upload file trong NestJS với FileInterceptor và ParseFilePipe Mid
- ✓ Viết RBAC bằng Guard, Reflector và custom decorator như thế nào? Mid
- ✓ Circular dependency trong NestJS: nguyên nhân, forwardRef và cách tránh Senior
- ✓ CQRS trong NestJS (@nestjs/cqrs): Command, Query, Event và khi nào nên dùng? Senior
- ✓ Dynamic module: forRoot, forRootAsync, ConfigModule; global vs scoped module Senior
- ✓ Lifecycle hooks trong NestJS và graceful shutdown (OnModuleInit, OnApplicationShutdown) Senior
- ✓ NestJS microservices: transport, @MessagePattern khác @EventPattern thế nào? Senior
- ✓ NestJS với Express vs Fastify adapter và các cách tối ưu hiệu năng Senior
- ✓ Provider scope DEFAULT, REQUEST, TRANSIENT khác gì nhau và ảnh hưởng hiệu năng ra sao? Senior
- ✓ Xử lý job nền với BullMQ trong NestJS: retry, idempotency và scale worker Senior
🔁 Ôn nhanh 9 câu nền tảng (đã học ở level thấp hơn)
- ✓ Ẩn field nhạy cảm khi trả response: ClassSerializerInterceptor và @Exclude Junior
- ✓ ConfigModule trong NestJS và validate biến môi trường lúc khởi động Junior
- ✓ Dependency Injection và IoC container trong NestJS hoạt động ra sao? Junior
- ✓ Exception Filter trong NestJS là gì? Khi nào cần tự viết? Junior
- ✓ Middleware và Guard trong NestJS khác nhau thế nào? Khi nào dùng cái nào? Junior
- ✓ Module, Provider và Controller trong NestJS khác nhau thế nào? Junior
- ✓ Tài liệu hoá API NestJS bằng Swagger/OpenAPI như thế nào? Junior
- ✓ Tạo custom parameter decorator bằng createParamDecorator (ví dụ @CurrentUser) Junior
- ✓ ValidationPipe, DTO và class-validator dùng thế nào? whitelist, transform để làm gì? Junior
7 DB
SQL
Bắt buộc 11 câuĐã thuộc0/11 · 0%
- ✓ ACID là gì? Transaction dùng để làm gì? Mid
- ✓ Chuẩn hoá 1NF-3NF là gì và khi nào nên denormalize? Mid
- ✓ Index trong database là gì? Khi nào làm chậm hệ thống? Mid
- ✓ PRIMARY KEY, FOREIGN KEY và các constraint chính Mid
- ✓ Subquery và CTE (WITH) khác nhau thế nào? Mid
- ✓ Vấn đề N+1 query là gì? Cách khắc phục? Mid
- ✓ Window function: ROW_NUMBER, RANK, LAG dùng thế nào? Mid
- ✓ Đọc EXPLAIN / query plan để tối ưu truy vấn chậm Senior
- ✓ Isolation level và deadlock trong SQL Senior
- ✓ Optimistic locking và pessimistic locking khác nhau thế nào? Senior
- ✓ Phân trang OFFSET và keyset (seek) khác nhau thế nào? Senior
🔁 Ôn nhanh 5 câu nền tảng (đã học ở level thấp hơn)
8 Wb
Web & Trình duyệt
Bắt buộc 11 câuĐã thuộc0/11 · 0%
- ✓ CORS là gì? Preflight request hoạt động ra sao? Mid
- ✓ HTTP caching: `Cache-Control`, `ETag` và validation hoạt động ra sao? Mid
- ✓ JWT nên lưu ở đâu: localStorage hay cookie HttpOnly? Mid
- ✓ So sánh REST, GraphQL và gRPC: khi nào chọn cái nào? Mid
- ✓ WebSocket, Server-Sent Events và long polling: khác nhau và chọn thế nào? Mid
- ✓ XSS và CSRF khác nhau thế nào? Cách phòng chống? Mid
- ✓ Bundler (Webpack/Vite), tree-shaking và code splitting hoạt động thế nào? Senior
- ✓ Content Security Policy (CSP) là gì? Các security header quan trọng khác? Senior
- ✓ Critical rendering path và Core Web Vitals (LCP, INP, CLS): cách cải thiện? Senior
- ✓ HTTP/1.1, HTTP/2 và HTTP/3 khác nhau thế nào? Senior
- ✓ Service Worker và PWA hoạt động thế nào? Các chiến lược cache? Senior
🔁 Ôn nhanh 5 câu nền tảng (đã học ở level thấp hơn)
- ✓ Các HTTP method phổ biến và nhóm status code cần nhớ? Junior
- ✓ Cookie, localStorage và sessionStorage khác nhau thế nào? Junior
- ✓ Điều gì xảy ra khi gõ một URL vào trình duyệt và nhấn Enter? Junior
- ✓ DNS phân giải tên miền như thế nào? Các loại record và TTL? Junior
- ✓ HTTPS và TLS handshake hoạt động cơ bản như thế nào? Junior
9 SD
System Design
Bắt buộc 11 câuĐã thuộc0/11 · 0%
- ✓ Message queue dùng để làm gì? Khi nào nên dùng? Mid
- ✓ Monolith hay microservices: đánh đổi là gì? Mid
- ✓ Observability: log, metrics và tracing Mid
- ✓ Rate limiting: token bucket và các thuật toán khác Mid
- ✓ Xác thực: session, JWT, OAuth2 và SSO khác nhau thế nào? Mid
- ✓ Caching: các chiến lược và vấn đề cần lưu ý? Senior
- ✓ CAP theorem là gì? Senior
- ✓ Circuit breaker, retry và exponential backoff Senior
- ✓ Database replication, sharding và consistent hashing Senior
- ✓ Idempotency key, eventual consistency và saga Senior
- ✓ Thiết kế dịch vụ rút gọn URL (URL shortener) Senior
🔁 Ôn nhanh 4 câu nền tảng (đã học ở level thấp hơn)
10 HR
Kỹ năng mềm & HR
Bắt buộc 20 câuĐã thuộc0/20 · 0%
- ✓ Bạn giải thích vấn đề kỹ thuật cho người không chuyên (PM, khách hàng) thế nào? Mid
- ✓ Bạn giao tiếp hiệu quả thế nào khi làm việc từ xa hoặc bất đồng bộ (async)? Mid
- ✓ Bạn phản ứng thế nào khi nhận góp ý trong code review? Mid
- ✓ Bạn ước lượng thời gian làm một task như thế nào? Mid
- ✓ Bạn xử lý thế nào khi bất đồng ý kiến với đồng nghiệp? Mid
- ✓ Bạn xử lý thế nào khi deadline gấp? Mid
- ✓ Bạn xử lý thế nào khi yêu cầu (requirement) chưa rõ ràng? Mid
- ✓ Kể về một lần bạn gây lỗi (ví dụ lỗi production) và cách xử lý Mid
- ✓ Khi bị kẹt, bạn nhờ giúp đỡ vào lúc nào và bằng cách nào? Mid
- ✓ Khi có nhiều việc cùng lúc, bạn sắp xếp thứ tự ưu tiên thế nào? Mid
- ✓ Bạn đã cải thiện quy trình làm việc của team như thế nào? Senior
- ✓ Bạn dẫn dắt team thế nào khi có sự cố production (incident)? Senior
- ✓ Bạn góp ý thế nào cho đồng nghiệp làm việc chưa tốt? Senior
- ✓ Bạn hướng dẫn (mentor) người mới như thế nào? Senior
- ✓ Bạn phỏng vấn và tuyển lập trình viên như thế nào? Bạn giữ team khỏi burnout ra sao? Senior
- ✓ Bạn ra quyết định kỹ thuật và giải thích sự đánh đổi (trade-off) như thế nào? Senior
- ✓ Bạn thuyết phục công ty dành thời gian trả nợ kỹ thuật (tech debt) như thế nào? Senior
- ✓ Bạn từ chối thêm tính năng hoặc xử lý scope creep một cách khéo léo thế nào? Senior
- ✓ Bạn xử lý thế nào khi hai thành viên trong team xung đột với nhau? Senior
- ✓ Bạn xử lý thế nào khi không đồng ý với quyết định của quản lý? Senior
🔁 Ôn nhanh 10 câu nền tảng (đã học ở level thấp hơn)
- ✓ Bạn có câu hỏi nào cho chúng tôi không? Junior
- ✓ Bạn học công nghệ mới như thế nào? Junior
- ✓ Điểm mạnh của bạn là gì? Junior
- ✓ Điểm yếu của bạn là gì? Junior
- ✓ Hãy giới thiệu về bản thân bạn Junior
- ✓ Kể về một dự án mà bạn tự hào Junior
- ✓ Mức lương mong muốn của bạn là bao nhiêu? Junior
- ✓ Mục tiêu của bạn trong 5 năm tới là gì? Junior
- ✓ Vì sao bạn muốn vào công ty / vị trí này? Junior
- ✓ Vì sao bạn rời công ty cũ? Junior
11 Dk
Docker
Nên biết 3 câuĐã thuộc0/3 · 0%
- ✓ Các biện pháp bảo mật container quan trọng Senior
- ✓ Giới hạn CPU và memory cho container, OOMKilled là gì? Senior
- ✓ Kubernetes cơ bản: Pod, Deployment, Service Senior
🔁 Ôn nhanh 6 câu nền tảng (đã học ở level thấp hơn)
- ✓ COPY vs ADD và vai trò của .dockerignore Mid
- ✓ Docker Compose: healthcheck và depends_on hoạt động ra sao? Mid
- ✓ Docker volume dùng để làm gì? Các container giao tiếp với nhau ra sao? Mid
- ✓ Làm sao để Dockerfile build nhanh và image nhỏ? Mid
- ✓ Quản lý biến môi trường và secret trong Docker Mid
- ✓ Xem log và debug container đang lỗi như thế nào? Mid
12 Cs
HTML/CSS
Cộng điểm 6 câuĐã thuộc0/6 · 0%
- ✓ Các giá trị `position` hoạt động ra sao? `z-index` và stacking context là gì? Mid
- ✓ CSS Grid: `fr`, `minmax()` và `auto-fit` dùng thế nào để làm layout responsive? Mid
- ✓ CSS variables (custom properties) và cách làm dark mode với `prefers-color-scheme` Mid
- ✓ Flexbox: `justify-content`, `align-items` và `flex: 1` nghĩa là gì? Mid
- ✓ Responsive design: mobile-first, media query, `clamp()` và container query Mid
- ✓ Specificity và cascade trong CSS hoạt động thế nào? `!important` có nên dùng? Mid
13 Gt
Git
Cộng điểm 4 câuĐã thuộc0/4 · 0%