📚 118 câu cần học 🔁 15 câu ôn nhanh ⏱ ~8 giờ 🧭 10 chủ đề
Tiến độ lộ trình0/118 · 0%
🎯 Ở level Mid, bạn cần ổn những điều này
- ✓ Nắm vòng đời request trong NestJS: guard, interceptor, pipe, filter
- ✓ Thiết kế API đúng chuẩn: validation, pagination, idempotency, lỗi nhất quán
- ✓ Tối ưu truy vấn: index, EXPLAIN, N+1, transaction và isolation level
- ✓ Đóng gói và chạy dịch vụ bằng Docker/Compose, quản lý config và secret
- ✓ Test được service/controller (Jest, Supertest) và logging có request id
1 TS
TypeScript
Bắt buộc 12 câuĐã thuộc0/12 · 0%
- ✓ 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
- ✓ `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
2 No
Node.js
Bắt buộc 18 câuĐã thuộc0/18 · 0%
- ✓ 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
- ✓ 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
3 Ne
NestJS
Bắt buộc 20 câuĐã thuộc0/20 · 0%
- ✓ Ẩ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
- ✓ 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
4 DB
SQL
Bắt buộc 12 câuĐã thuộc0/12 · 0%
- ✓ DELETE, TRUNCATE và DROP khác nhau thế nào? Junior
- ✓ INNER, LEFT, RIGHT, FULL JOIN khác nhau thế nào? Junior
- ✓ NULL trong SQL gây những cạm bẫy nào? Junior
- ✓ Thứ tự thực thi logic của một câu SELECT là gì? Junior
- ✓ WHERE và HAVING khác nhau thế nào? Junior
- ✓ 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
5 Wb
Web & Trình duyệt
Bắt buộc 11 câuĐã thuộc0/11 · 0%
- ✓ 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
- ✓ 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
6 Dk
Docker
Bắt buộc 10 câuĐã thuộc0/10 · 0%
- ✓ Các lệnh Docker cơ bản cần nắm Junior
- ✓ CMD và ENTRYPOINT khác nhau thế nào? Junior
- ✓ Container khác máy ảo (VM) ở điểm nào? Junior
- ✓ Image và container khác nhau thế nào? Junior
- ✓ 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
7 HR
Kỹ năng mềm & HR
Bắt buộc 20 câuĐã thuộc0/20 · 0%
- ✓ 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
- ✓ 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
8 JS
JavaScript
Nên biết 6 câuĐã thuộc0/6 · 0%
- ✓ call, apply, bind khác nhau thế nào? Tự viết bind Mid
- ✓ ES Modules khác CommonJS thế nào? Live binding và tree shaking 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
🔁 Ôn nhanh 6 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
- ✓ 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
9 Gt
Git
Nên biết 4 câuĐã thuộc0/4 · 0%
- ✓ git reflog cứu commit bị mất như thế nào? Mid
- ✓ GitFlow và trunk-based development: chọn cái nào? Mid
- ✓ Interactive rebase để squash và dọn lịch sử commit Mid
- ✓ Khi nào dùng git stash và cherry-pick? Mid
🔁 Ôn nhanh 5 câu nền tảng (đã học ở level thấp hơn)
10 SD
System Design
Nên biết 5 câuĐã thuộc0/5 · 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