Əsas məzmuna keç
DevScallix
← Java Backend Career TrackMüraciət açıqdır

Java Backend Career Track: Tam tədris planı — 24 həftə

İlk proqramdan müdafiə olunan backend layihəyə qədər altı mərhələ. Hər həftənin konkret laboratoriya işi və praktik tapşırığı var, tapşırıqların çoxu Pull Request kimi təhvil verilir.

Bu, ilk qrup üçün planlaşdırılan tədris planıdır. Ardıcıllıq və dərinlik qrupun səviyyəsinə görə qrupdan əvvəl və qrup zamanı dəyişdirilə bilər. Həftəlik saatlar və cədvəl qrupla birlikdə elan olunur.

01 · 1–4-cü həftələr

Əsaslar

Mərhələnin məqsədi: Kiçik Java proqramları yazmaq, onları debug etmək və Git-dən istifadə etmək.

  1. Həftə 1

    Proqramlar necə işləyir

    • JDK, JVM və IDE
    • Proqramın kompilyasiyası və işə salınması
    • Dəyişənlər, tiplər və operatorlar
    • Kompilyator xətalarını oxumaq
    • İlk Git commit-ləri

    Laboratoriya: JDK, IntelliJ IDEA və Git-i qurun, sonra kiçik konsol kalkulyatoru yazın və onu mənalı addımlarla commit edin.

    Tapşırıq: Vahid çeviricisi (məsələn, temperatur və uzunluq), səliqəli commit tarixçəsi ilə GitHub repozitoriyasına yüklənmiş.

  2. Həftə 2

    İdarəetmə axını, metodlar və debugging

    • Şərtlər və dövrlər
    • Metodlar və parametrlər
    • Breakpoint ilə debugging
    • Məsələni addımlara bölmək

    Laboratoriya: Ədəd tapmaq oyununu kiçik metodlara bölərək yazın və əvvəlcədən qoyulmuş xətanı debugger ilə tapın.

    Tapşırıq: Mətn menyulu proqram (məsələn, yaddaşda işləyən sadə xərc izləyicisi) və məsələni addımlara necə böldüyünüz barədə qısa qeyd.

  3. Həftə 3

    Massivlər, sətirlər və sadə alqoritmlər

    • Massivlər və sətirlər
    • Xətti və ikili axtarış
    • Çeşidləmə intuisiyası
    • Xərc haqqında düşünmək (Big-O intuisiyası)

    Laboratoriya: Axtarışı və sadə çeşidləməni əl ilə yazın, sonra böyüyən giriş verilənlərində hər birinin neçə addım atdığını müqayisə edin.

    Tapşırıq: Mətn üçün söz statistikası aləti (söz sayı, ən çox işlənən sözlər) və iki yanaşmanın yazılı müqayisəsi.

  4. Həftə 4

    OOP I və ilk Pull Request

    • Siniflər və obyektlər
    • Encapsulation
    • Konstruktorlar
    • Git branch-ləri
    • İlk Pull Request

    Laboratoriya: Kiçik domeni (məsələn, bank hesabı və ya kitabxana kitabı) siniflərlə modelləşdirin və feature branch-dən Pull Request kimi təqdim edin.

    Tapşırıq: Mərhələ ərzindəki konsol tətbiqini siniflərlə yenidən yazın, Pull Request kimi təhvil verin və review qeydlərini nəzərə alın.

Yoxlama nöqtəsi: Pull Request kimi təhvil verilmiş, review olunmuş və rəydən sonra təkmilləşdirilmiş konsol tətbiqi.

02 · 5–9-cü həftələr

Java Core

Mərhələnin məqsədi: Domeni təmiz və testlənmiş Java kodu ilə modelləşdirmək.

  1. Həftə 5

    OOP II və ilk SOLID prinsipləri

    • İnterfeyslər və polimorfizm
    • Inheritance və composition
    • Single responsibility və open/closed
    • Dəyişikliyə uyğun dizayn

    Laboratoriya: Kiçik bildiriş və ya ödəniş nümunəsini inheritance-dən interfeys və composition-a refaktor edin.

    Tapşırıq: Kiçik domeni (məsələn, bir neçə endirim qaydası ilə sifariş qiymətləndirilməsi) interfeyslər arxasında dizayn edin, Pull Request kimi təhvil verin.

  2. Həftə 6

    Collections və generics

    • List, Set, Map və Deque
    • Kolleksiyanı giriş nümunəsinə görə seçmək
    • Generics və tip təhlükəsizliyi
    • Comparator ilə iterasiya və çeşidləmə

    Laboratoriya: Eyni məsələni (məsələn, müştəriyə görə sifarişlərin axtarışı) müxtəlif kolleksiyalarla həll edin və hansının daha uyğun olduğunu izah edin.

    Tapşırıq: Axtarış, qruplaşdırma və çeşidləmə ilə yaddaşda işləyən kataloq və hər kolleksiyanı niyə seçdiyiniz barədə qısa qeyd.

  3. Həftə 7

    Exceptions, bərabərlik, record və enum

    • Checked və unchecked exception-lar
    • equals və hashCode
    • Record və enum
    • Immutability
    • Xəta idarəsinin dizaynı

    Laboratoriya: Əvvəlki layihədəki xəta kodlarını mənalı exception-larla əvəz edin və dəyər obyektlərini record-a çevirin.

    Tapşırıq: Domen modelinə validasiya, xüsusi exception-lar və dəyişməz dəyər obyektləri əlavə edin, Pull Request kimi təhvil verin.

  4. Həftə 8

    Lambda, stream və clean code

    • Lambda və funksional interfeyslər
    • Stream: map, filter, collect
    • Optional
    • Adlandırma və kiçik funksiyalar
    • Oxunaqlı şərtlər

    Laboratoriya: Dövrlə dolu kodu oxunaqlığa kömək etdiyi yerdə stream ilə yenidən yazın və bir uzun metodu kiçik adlı metodlara bölün.

    Tapşırıq: Domeninizdə stream ilə hesabat funksiyası (məsələn, müştəri üzrə cəmlər) və oxunaqlıq üzrə özünü-review.

  5. Həftə 9

    Testing, Maven və concurrency əsasları

    • JUnit 5 və AssertJ ilə unit testlər
    • Maven build və asılılıqlar (Gradle-ın fərqi)
    • Test dizaynı: arrange, act, assert
    • Thread-lər və ExecutorService
    • Paylaşılan vəziyyət niyə çətindir

    Laboratoriya: Domen layihəsini Maven-ə keçirin, əsas qaydalar üçün unit testlər yazın və ExecutorService ilə kiçik tapşırıq işə salın.

    Tapşırıq: Domenin testlərini mənalı davranış üzrə artırın, race condition nümayiş etdirin və onu aradan qaldırmağın bir yolunu göstərin.

Yoxlama nöqtəsi: Testlənmiş domen kitabxanası (məsələn, kitabxana və ya sifariş domeni), code review və dizayn qərarlarının qısa müdafiəsi.

03 · 10–12-cü həftələr

Verilənlər

Mərhələnin məqsədi: Relyasiya modelini dizayn etmək, ondan sorğu yazmaq və Java-dan istifadə etmək.

  1. Həftə 10

    PostgreSQL ilə SQL əsasları

    • Docker-də PostgreSQL
    • SELECT və filtrləmə
    • Join-lər
    • Aqreqasiya və qruplaşdırma

    Laboratoriya: PostgreSQL-i Docker-də işə salın, kiçik nümunə verilənləri yükləyin və biznes suallarına sorğularla cavab verin.

    Tapşırıq: Verilmiş sxem üzərində SQL sorğuları toplusu, hər birinin bir sətirlik izahı ilə, Pull Request kimi təhvil verilir.

  2. Həftə 11

    Verilənlərin modelləşdirilməsi və transaction-lar

    • Primary və foreign key-lər
    • Normallaşdırma
    • Constraint-lər
    • İlk index-lər və sorğu planını oxumaq
    • Transaction və ACID

    Laboratoriya: Sifariş domeni üçün sxem dizayn edin, constraint və index əlavə edin, sorğu planını əvvəl və sonra müqayisə edin.

    Tapşırıq: Öz kiçik domeniniz üçün ER diaqramı və SQL sxemi, həmçinin hansı constraint-in hansı qaydanı qoruduğu barədə qeyd.

  3. Həftə 12

    JDBC-dən JPA/Hibernate-ə

    • JDBC əsasları
    • Entity-lər və əlaqələr
    • Repository-lər
    • N+1 problemi
    • Flyway migration-ları

    Laboratoriya: Əvvəlcə sadə JDBC ilə məlumat oxuyun, sonra JPA ilə map edin, N+1 sorğusunu yaradın və düzəldin.

    Tapşırıq: Domeninizi JPA və Flyway migration-ları ilə saxlayın; migration skriptləri daxil olmaqla Pull Request kimi təhvil verin.

Yoxlama nöqtəsi: Verilənlər modelinin review-su: ER diaqramı, migration-lar və izah olunmuş sorğular.

04 · 13–17-cü həftələr

Spring və REST API

Mərhələnin məqsədi: Qorunan, validasiya olunan və testlənmiş REST API qurmaq.

  1. Həftə 13

    Spring Core

    • Inversion of Control
    • Dependency injection və bean-lər
    • Konfiqurasiya və properties
    • Profile-lar

    Laboratoriya: Kiçik servisi əl ilə bağlayın, sonra Spring-ə bağlatdırın və iki profile arasında davranışı dəyişin.

    Tapşırıq: Konfiqurasiya olunan komponent (məsələn, mühitə görə parametrləri dəyişən qiymət kalkulyatoru), Pull Request kimi təhvil verilir.

  2. Həftə 14

    Spring Boot REST

    • Controller-lər və DTO-lar
    • HTTP metodları və semantika
    • Resurs dizaynı və status kodları
    • Pagination və filtrləmə
    • HTTP client ilə işləmək

    Laboratoriya: Domeninizi yaratma, oxuma, yeniləmə və silmə əməliyyatları ilə REST API kimi açın və HTTP client ilə yoxlayın.

    Tapşırıq: Bir resurs üçün düzgün status kodları və pagination ilə endpoint-ləri dizayn edin və yazın, qısa API dizayn qeydi ilə.

  3. Həftə 15

    Validasiya, xətalar və service qatı

    • Bean Validation
    • Ardıcıl xəta cavabları (Problem Details)
    • Service qatı
    • @Transactional və onun sərhədləri

    Laboratoriya: Validasiya və Problem Details qaytaran qlobal exception handler əlavə edin, biznes qaydalarını service-ə köçürün.

    Tapşırıq: API yanlış girişi ardıcıl şəkildə rədd etsin və hər biznes əməliyyatı bir transaction-da qalsın; Pull Request kimi təhvil verin.

  4. Həftə 16

    Spring Security

    • Authentication və authorization
    • Parolun hash-lənməsi
    • Rollar və qorunan endpoint-lər
    • Session və JWT (əsas səviyyə)
    • Qarşısı alınmalı tipik səhvlər

    Laboratoriya: Qeydiyyat və giriş əlavə edin, parolları hash-ləyin və endpoint-ləri rola görə qoruyun.

    Tapşırıq: API-ni elə qoruyun ki, istifadəçilər yalnız icazəsi olanı görsün, və dizaynın nəyi əhatə etmədiyini göstərən qısa təhlükə qeydi əlavə edin.

  5. Həftə 17

    Spring tətbiqlərinin testi və API sənədləşməsi

    • Slice testlər
    • Testcontainers ilə integration testlər
    • Uyğun yerdə Mockito ilə mock
    • OpenAPI sənədləşməsi

    Laboratoriya: Controller slice testi və Testcontainers-də PostgreSQL ilə repository integration testi yazın, OpenAPI sənədini yaradın.

    Tapşırıq: API-nin əsas axınlarını testlərlə əhatə edin və OpenAPI təsvirini dərc edin; Pull Request kimi təhvil verin.

Yoxlama nöqtəsi: Pull Request-lər kimi review olunmuş və müdafiə edilmiş qorunan REST API.

05 · 18–21-cü həftələr

Çatdırılma və sistemlər

Mərhələnin məqsədi: Servisi komandanın etdiyi kimi işə salmaq və sistemlərin növbəti qatını anlamaq.

  1. Həftə 18

    Docker və konfiqurasiya

    • Image və container-lər
    • API üçün Dockerfile
    • API və verilənlər bazası üçün docker compose
    • Konfiqurasiya və secret əsasları

    Laboratoriya: API-ni container-ə salın və docker compose ilə PostgreSQL ilə birlikdə işə salın, konfiqurasiyanı mühitdən alın.

    Tapşırıq: Təkrarlana bilən lokal mühit: bir əmrlə API və verilənlər bazası qalxır, README-də sənədləşdirilib, Pull Request kimi təhvil verilir.

  2. Həftə 19

    CI/CD və müşahidəlilik əsasları

    • Build, test və paketləmə edən pipeline
    • GitHub Actions
    • Strukturlu log-lar
    • Actuator ilə health check və metrikalar
    • Problemi tapmaq üçün log oxumaq

    Laboratoriya: Layihəni build və test edən, image yaradan GitHub Actions workflow-u yazın, health və metrika endpoint-lərini açın.

    Tapşırıq: Layihəyə pipeline və Actuator endpoint-lərini əlavə edin və qəsdən pozulmuş build-i düzəldin; Pull Request kimi təhvil verin.

  3. Həftə 20

    Redis, messaging və Kafka əsasları

    • Redis və TTL ilə caching
    • Nəyi cache etməmək
    • Asinxron messaging niyə lazımdır
    • Kafka topic-ləri, producer və consumer
    • Hər alət üçün bir praktik məşq

    Laboratoriya: Çox oxunan bir endpoint-i Redis-də cache edin, sonra lokal Kafka-ya event göndərin və ikinci kiçik tətbiqdə qəbul edin.

    Tapşırıq: Caching və messaging-in layihənizdə harada kömək edəcəyi və harada etməyəcəyi barədə qısa yazı və işləyən məşqlər.

  4. Həftə 21

    Mikroservislər və cloud əsasları

    • Servis sərhədləri
    • Sistemi nə vaxt bölməmək
    • Region-lar və idarə olunan verilənlər bazaları
    • Cloud-da container işə salmaq

    Laboratoriya: Layihənizin necə bölünə biləcəyini çəkin, bölünməməsinin əleyhinə arqument yazın və container-in cloud mühitində işə salınmasını addım-addım keçin.

    Tapşırıq: Layihəniz üçün vahid tətbiqi və bölünmüş dizaynı müqayisə edən, tövsiyəniz olan bir səhifəlik arxitektura qeydi.

Yoxlama nöqtəsi: İşləyən sistemin demosu (API, verilənlər bazası, container və pipeline) və qısa izah.

06 · 22–24-cü həftələr

Yekun layihə və karyera

Mərhələnin məqsədi: Tam backend layihəni təhvil vermək, müdafiə etmək və müsahibəyə hazırlaşmaq.

  1. Həftə 22

    Yekun layihənin planlaşdırılması və ilk artımlar

    • Tələblər
    • Domen modeli
    • API dizaynı
    • Qərar qeydləri (ADR)
    • Pull Request-lərlə qurmaq

    Laboratoriya: Yekun layihə üçün tələbləri, domen modelini və API cizgisini yazın, əsas qərarları ADR kimi qeyd edin və ilk Pull Request-ləri açın.

    Tapşırıq: Planlaşdırılmış və review olunmuş yekun layihə backlog-u və merge edilmiş ilk işləyən vertical slice.

  2. Həftə 23

    Yekun layihənin qurulması, review və müsahibəyə hazırlıq

    • Pull Request-lərlə qurmaq və review
    • Java, SQL və Spring müsahibə sualları
    • Öz layihənizi izah etmək
    • Həmkarın kodunu review etmək

    Laboratoriya: Əsas funksiyaları testlər və pipeline ilə tamamlayın və bir dizayn qərarını səsli izah etməyi məşq edin.

    Tapşırıq: README, testlər və pipeline-ı olan stabil yekun layihə branch-i və texniki suallar toplusuna yazılı cavablar.

  3. Həftə 24

    Yekun praktik qiymətləndirmə

    • Yekun layihənin müdafiəsi
    • Canlı code review tapşırığı
    • Müsahibə simulyasiyası
    • Şəxsi növbəti addım planı

    Laboratoriya: Yekun layihəni təqdim və nümayiş edin, tanış olmayan kodu canlı review edin və nümunə texniki müsahibədə iştirak edin.

    Tapşırıq: Qiymətləndirmə rəyinə əsaslanan şəxsi növbəti addım planı: güclü tərəflər, boşluqlar və növbəti məşq istiqaməti.

Yoxlama nöqtəsi: Yekun praktik qiymətləndirmə.

Öyrənmə necə qiymətləndirilir

  • Hər həftə Pull Request review-su: adlandırma, struktur, testlər və dizayn üzrə yazılı rəy.
  • Hər mərhələnin sonunda qərarlarınızın qısa müdafiəsi ilə checkpoint.
  • Əzbərləmə yox, praktik tapşırıqlar: özünüzün yazdığınız və izah edə bildiyiniz kod qiymətləndirilir.
  • Yekun layihə, canlı code review və müsahibə simulyasiyasını əhatə edən yekun praktik qiymətləndirmə.
  • Rəy növbəti addımlar üçün tövsiyədir; nəticə sizin öz işinizdən və ardıcıllığınızdan asılıdır.
  • Heç bir proqram işlə təminatı verə bilməz, bu proqram da vermir.

İstifadə edəcəyiniz alətlər

  • JDK 21
  • IntelliJ IDEA
  • Git və GitHub
  • Maven (Gradle icmalı ilə)
  • JUnit 5
  • AssertJ
  • Mockito
  • PostgreSQL
  • Flyway
  • Spring Boot 3
  • Spring Security
  • Testcontainers
  • Docker və docker compose
  • HTTP client (məsələn, Postman və ya IntelliJ HTTP Client)
  • GitHub Actions
  • Redis
  • Kafka (lokal)

Yük

Həftəlik saatlar və cədvəl qrupla birlikdə elan olunur. Canlı dərslərdən əlavə, hər həftə müntəzəm müstəqil praktika üçün vaxt ayırın: öyrənmənin böyük hissəsi laboratoriya işləri və tapşırıqlarda baş verir.

Müraciət etProqram səhifəsinə qayıtPlan haqqında sual ver