Bütün yazılar

Junior Developer Müsahibə Sualları: Frontend və Backend

Event loop, 401 vs 403, SQL JOIN... Junior frontend və backend müsahibələrində ən çox verilən sualları nümunə cavablarla topladıq.

Fərid Mustafayev6 dəq oxu

Texniki müsahibədə ağ lövhədə kod izah edən junior developer

CV-nizdə React, Next.js, Node.js, PostgreSQL, Docker, TypeScript yazılıb. Amma texniki müsahibədə soruşurlar: "Event loop necə işləyir?", "401 ilə 403-ün fərqi nədir?", "Bu kodu niyə belə yazmısınız?" — və birdən hər şey çətinləşir. Junior müsahibələri çox vaxt framework-lərə yox, fundamental biliklərə qayıdır. Bu yazıda ən çox verilən junior developer müsahibə suallarını frontend və backend üzrə, nümunə cavablarla toplamışıq — üstəlik texniki rəhbərin GitHub profilinizə necə baxdığını da göstəririk.

Qısa cavab: Junior frontend müsahibəsində adətən HTML/CSS əsasları (box model, Flexbox, responsive), JavaScript fundamentalları (closure, event loop, promise, this) və framework anlayışları soruşulur. Junior backend-də HTTP metodları və status kodları, REST API dizaynı, SQL və JOIN, autentifikasiya ilə avtorizasiya fərqi önə çıxır. Hər iki halda əzbər cavab yox, məntiqin izahı və öz layihələrinizi danışmaq bacarığı qiymətləndirilir.

Şirkət junior-dan əslində nə gözləyir?

Junior-dan senior səviyyəsində arxitektura gözlənilmir. Gözlənilən budur:

  1. Fundamental bilik — istifadə etdiyiniz texnologiyanın əsaslarını başa düşmək
  2. Problem həlli — problemi kiçik hissələrə bölmək
  3. Öyrənmə qabiliyyəti — bilmədiyini araşdırıb öyrənə bilmək
  4. Mühəndislik intizamı — Git, kod strukturu, sənədləşmə, debugging
  5. Real layihə təcrübəsi — tutorial təkrarı yox, öz qərarları olan işlər
  6. Ünsiyyət — kodunu və qərarlarını izah etmək

Əsas sual "neçə texnologiya bilir?" yox, "bu texnologiyalarla real problemi həll edə bilirmi?" sualıdır. Açıq yol xəritələri — roadmap.sh frontend və roadmap.sh backend — da məhz fundamental mövzuları təməl kimi göstərir.

Junior frontend müsahibə sualları

1. CSS box model nədir?

Hər element dörd qatdan ibarətdir: content → padding → border → margin. Güclü cavab box-sizing: border-box ilə content-box fərqini də izah edir: birincidə eni padding və border daxil hesablanır, ikincidə yox.

2. Flexbox ilə Grid arasında fərq nədir?

Flexbox bir istiqamətli (sətir və ya sütun) düzülüş üçün, Grid isə iki ölçülü (sətir və sütun birlikdə) layout üçündür. Yaxşı cavab nümunə ilə gəlir: "naviqasiya menyusu üçün Flexbox, dashboard layout-u üçün Grid seçərdim."

3. Closure nədir?

Funksiyanın yaradıldığı mühitdəki dəyişənlərə, o mühit bitdikdən sonra da çıxışını saxlamasıdır. İstifadə nümunələri: gizli vəziyyət (private state), callback-lər, factory funksiyalar.

4. Event loop necə işləyir?

"JavaScript single-threaded-dir" demək kifayət deyil. Güclü cavab call stack, Web API-lər, task queue və microtask queue arasındakı əlaqəni izah edir və nümunə verir: Promise.then callback-i setTimeout(..., 0)-dan əvvəl icra olunur, çünki microtask-lar üstündür.

5. async/await nədir və xətaları necə idarə edirsiniz?

Promise-lər üzərində sintaktik rahatlıqdır; asinxron kodu ardıcıl kimi oxumağa imkan verir. Xətalar try/catch ilə tutulur. Güclü cavab API sorğusunda yüklənmə, uğur və xəta vəziyyətlərinin interfeysdə necə göstərildiyini də əlavə edir.

6. DOM və Virtual DOM arasında fərq nədir?

DOM — brauzerin HTML sənədini təmsil edən obyekt modelidir. Virtual DOM — React kimi kitabxanaların dəyişiklikləri əvvəlcə yaddaşda hesablayıb real DOM-u minimal yeniləmək üçün istifadə etdiyi abstraksiyadır. Məqsəd terminləri yox, "niyə belə dizayn edilib" sualını başa düşməkdir.

7. Responsive dizaynı necə qurursunuz?

Media query-lər, nisbi ölçülər (rem, %), Flexbox/Grid və mobil-öncəlikli (mobile-first) yanaşma. Öz layihənizdən nümunə gətirin.

Junior backend müsahibə sualları

1. HTTP 200 ilə 201 arasında fərq nədir?

200 OK — sorğu uğurla emal olunub. 201 Created — yeni resurs yaradılıb; məsələn, POST /users yeni istifadəçi yaradanda.

2. 400, 401 və 403 nə deməkdir?

  • 400 Bad Request — sorğu düzgün deyil, məsələn validasiya xətası
  • 401 Unauthorized — istifadəçi autentifikasiya olunmayıb və ya tokeni etibarsızdır
  • 403 Forbidden — istifadəçi tanınır, amma bu əməliyyata icazəsi yoxdur

Bu fərqləri qarışdırmaq HTTP əsaslarının zəif olduğunu göstərir.

3. Autentifikasiya ilə avtorizasiya arasında fərq nədir?

Autentifikasiya: "Bu istifadəçi kimdir?" Avtorizasiya: "Bu istifadəçinin nə etməyə icazəsi var?" Nümunə: istifadəçi daxil olub (autentifikasiya), amma admin panelinə girə bilərmi (avtorizasiya)? JWT, sessiya və OAuth-un əsas məntiqini bilmək üstünlükdür.

4. SQL JOIN nədir?

İki və ya daha çox cədvəli əlaqəli sütuna görə birləşdirir — məsələn, users və orders cədvəllərini istifadəçinin sifarişlərini görmək üçün. INNER və LEFT JOIN fərqini izah edə bilmək gözlənilir: ikincisi sifarişi olmayan istifadəçiləri də qaytarır.

5. REST API-ni necə dizayn edərdiniz?

Resurs əsaslı URL-lər (GET /users, GET /users/:id, POST /users, PATCH /users/:id, DELETE /users/:id), düzgün HTTP metodları və status kodları, validasiya, vahid xəta formatı, pagination. Güclü cavab bunları öz layihənizdə necə etdiyinizlə bağlayır.

6. İndeks nədir və nə vaxt lazımdır?

Axtarışı sürətləndirən məlumat strukturudur — kitabın sonundakı mövzu göstəricisi kimi. Tez-tez axtarılan və ya JOIN-də istifadə olunan sütunlarda faydalıdır; amma hər indeks yazma əməliyyatlarını bir az yavaşladır.

7. Tranzaksiya nədir?

Bir neçə əməliyyatın ya hamısının, ya da heç birinin icra olunmasıdır. Klassik nümunə: pul köçürməsi — bir hesabdan çıxıb digərinə daxil olmayan məbləğ olmamalıdır.

Hər müsahibədə gələn sual: "Layihənizdən danışın"

Bu sual texniki sualdan da vacib ola bilər. Hər layihə üçün 2 dəqiqəlik cavab hazırlayın:

  1. Problem nə idi və kim üçün?
  2. Nə qurdunuz, hansı texnologiyalarla?
  3. Ən çətin qərar hansı idi və niyə belə seçdiniz?
  4. Yenidən etsəydiniz, nəyi dəyişərdiniz?

Layihələri necə seçib quracağınızı developer portfolio qurmaq bələdçimizdə göstərmişik.

Texniki rəhbər GitHub-unuza necə baxır?

CV-dəki link texniki rəhbəri GitHub-a aparır. Orada baxdığı əsas şeylər:

README

Layihə nə edir, niyə yaradılıb, hansı texnologiyalar, necə işə salınır, mühit dəyişənləri, demo. README-siz repository anlaşılmır.

Commit tarixçəsi

Bir "Initial commit" iş prosesi haqqında heç nə demir. Məntiqli commit-lər prosesi göstərir:

feat: add user authentication
feat: implement product filtering
fix: handle invalid login credentials
refactor: extract database service
docs: update API documentation

Kod təmizliyi

"Başqa developer bunu oxuya bilərmi?" Aydın adlar, kiçik funksiyalar, məntiqli qovluq strukturu, xəta idarəsi, linter/formatter, repository-də .env faylının olmaması.

Layihənin özü

25 repository güclü portfolio demək deyil. 3–4 yaxşı qurulmuş layihə daha güclü siqnaldır: frontend üçün autentifikasiya, API inteqrasiyası, state, responsive UI, yüklənmə/xəta vəziyyətləri; backend üçün REST API, verilənlər bazası, avtorizasiya, validasiya, pagination, deploy.

Standart junior vs işə hazır junior

Standart juniorİşə hazır junior
"React bilirəm"React ilə real layihə qurub
10+ texnologiya sadalanıbAz, amma real istifadə olunmuş texnologiyalar
Tutorial layihələriÖz qərarları olan layihələr
Yalnız "Initial commit"Məntiqli commit tarixçəsi
README yoxdurQuraşdırma və istifadə sənədi var
Müsahibə suallarını əzbərləyibCavabın məntiqini izah edir
Problemdə dərhal kömək gözləyirAraşdırır, debug edir, həlli əsaslandırır
Tək işləməyə öyrəşibGit iş axını və komanda proseslərini bilir

Komanda prosesləri haqqında ətraflı: komandada developer kimi işləmək.

Müsahibəyə necə hazırlaşmalı?

Ən böyük səhv "əvvəl hər şeyi öyrənim, sonra layihə quraram" yanaşmasıdır. Daha effektiv dövrə: öyrən → tətbiq et → səhv et → debug et → GitHub-a yerləşdir → rəy al → yenidən qur. Bu dövrəni Devlab komandası sizin üçün qura bilər: Devlab-ın təcrübə proqramlarında hər həftə real tapşırıq, hər tapşırıq üzrə mentor code review-u, sahədə çalışan mütəxəssislərlə texniki müsahibə məşqləri və CV/LinkedIn dəstəyi var.

Nəticə

Junior developer müsahibə sualları əsasən fundamentallar ətrafında fırlanır: frontend-də CSS və JavaScript əsasları, backend-də HTTP, REST, SQL və təhlükəsizlik anlayışları. Əzbər cavab yox, məntiqin izahı və öz layihələrinizi danışmaq qiymətləndirilir. GitHub isə CV-dəki iddiaların sübutudur — onu səliqəli saxlayın.

Real tapşırıqlar və müsahibə məşqləri ilə hazırlaşmaq istəyirsinizsə, pulsuz qeydiyyatdan keçin. Sualınız varsa, komandamızla əlaqə saxlayın.

Tez-tez verilən suallar

Junior müsahibəsində alqoritm sualları verilirmi?

Bəzi şirkətlərdə sadə alqoritm tapşırıqları olur (massivlər, sətirlər, axtarış). Amma junior vəzifələrinin çoxunda fundamental anlayışlar, praktiki tapşırıq və layihə müzakirəsi daha çox çəkiyə malikdir.

Müsahibədə cavabı bilmirəmsə nə etməliyəm?

Açıq deyin və necə düşünəcəyinizi göstərin: "Dəqiq bilmirəm, amma belə yanaşardım..." Uydurmaq etibarı daha çox sarsıdır. İşəgötürən öyrənmə qabiliyyətinizi görmək istəyir.

Neçə layihə ilə müsahibəyə getmək olar?

Yaxşı izah edə biləcəyiniz 2–4 güclü layihə kifayətdir. Hər biri üçün qısa hekayə hazırlayın: problem, həll, ən çətin qərar, nə öyrəndiniz.

Texniki müsahibəyə nə qədər əvvəl hazırlaşmağa başlamalı?

İdeal olaraq iş axtarışına başlamazdan bir-iki ay əvvəl. Fundamental suallar üzərində işləmək, layihələri izah etməyi məşq etmək və ən azı bir-iki mock müsahibə keçmək nəticəyə ciddi təsir edir.

Bu mövzuda təcrübə proqramı