Skip to content

Zero to Dev · Interactive courses

Learn programming. One interactive lesson at a time.

Courses in Azerbaijani and English. You run the code and commands yourself, answer checkpoint questions after every part and check your homework against the expected output.

  • First lessons are free, no sign-in.
  • In Azerbaijani and English
  • Every example has actually been run
  • Your progress shows on all your devices
Main.javaStep through code
for (int i = 1; i <= 5; i++) {
    System.out.println(i + " squared = " + i * i);
}

Variables

int i
6
i <= 5
false
iterations
5

Console

$ java Main1 squared = 12 squared = 43 squared = 94 squared = 165 squared = 25

From the Java courseWatch variables change line by line, like a debugger, and see exactly what Java does.

Courses

Choose your course.

Each course is a set of short interactive lessons grouped into modules. Open a module to see its lessons; lessons marked Open work without signing in.

Beginner

Java Backend Course

From your first Java program to a deployed Spring Boot service: Java, SQL, Git, Spring, JPA, Security, testing and Docker.

See the course · Java Backend Course

Course syllabus

    1. 01Introduction to JavaOpen
    2. 02Primitive Data Types and VariablesOpen
    3. 03Operators and ExpressionsOpen
    4. 04Control Flow StatementsOpen
    5. 05Loops and Iteration · For students of the course
    6. 06Arrays and Array Manipulation · For students of the course
    7. 07String Handling · For students of the course
    8. 08OOP Basics: Classes, Objects and Records · For students of the course
    9. 09Methods, Constructors and Initialization · For students of the course
    10. 10Inheritance and Polymorphism · For students of the course
    11. 11Abstract and Sealed Classes · For students of the course
    12. 12Encapsulation and Access Control · For students of the course
    13. 13Interfaces · For students of the course
    14. 14Exception Handling: try, catch, finally · For students of the course
    15. 15Custom Exceptions and try-with-resources · For students of the course
    16. 16Generics: Basics and Type Parameters · For students of the course
    17. 17Advanced Generics · For students of the course
    18. 18Collections: Lists and Sets · For students of the course
    19. 19Collections: Maps and Ordering · For students of the course
    20. 20Collections UtilitiesComing soon
    21. 21Multithreading FundamentalsComing soon
    22. 22File I/O: BasicsComing soon
    23. 23File I/O: Streams and Advanced HandlingComing soon
    24. 24Functional Programming with LambdasComing soon
    25. 25Streams API: FoundationsComing soon
    26. 26Advanced Streams and Parallel ProcessingComing soon
    1. 27Introduction to PostgreSQL and Basic SQLComing soon
    2. 28Joins and AggregationComing soon
    3. 29Database Design and OptimizationComing soon
    4. 30JDBC: Connecting Java to PostgreSQLComing soon
    1. 31Git Fundamentals and Local WorkflowComing soon
    2. 32Team Collaboration with GitComing soon
    1. 33Spring Core: IoC, DI and AnnotationsComing soon
    2. 34Spring Configuration and ProfilesComing soon
    3. 35Bean Lifecycle and ScopesComing soon
    4. 36Spring AOP BasicsComing soon
    1. 37How the Web WorksComing soon
    1. 38Spring Boot FundamentalsComing soon
    2. 39REST APIs with Validation and a DatabaseComing soon
    3. 40Consuming APIs with RestTemplateComing soon
    4. 41Declarative REST Clients with FeignComing soon
    1. 42JPA Entities and MappingComing soon
    2. 43Repositories and Query MethodsComing soon
    3. 44Custom QueriesComing soon
    4. 45Entity RelationshipsComing soon
    5. 46Transactions and OptimizationsComing soon
    1. 47Authentication and Authorization BasicsComing soon
    2. 48JWT IntegrationComing soon
    3. 49Securing REST APIsComing soon
    1. 50Unit Testing Basics with JUnit 5Coming soon
    2. 51Advanced Unit Testing and CoverageComing soon
    1. 52Docker FundamentalsComing soon
    2. 53Docker Compose and NetworkingComing soon
    1. 54Deploying to the CloudComing soon
    1. 55Final Project: Setup and Core FeaturesComing soon
    2. 56Final Project: Deployment and DemoComing soon

Beginner

Docker Fundamentals

Learn containers from zero: from your first docker run to an app running with its database.

See the course · Docker Fundamentals

Course syllabus

    1. 01Why containers?Open
    2. 02Installing Docker and your first containerComing soon
    3. 03Images and containersOpen
    4. 04Container lifecycle: run, stop, remove · For students of the course
    1. 05Ports: reaching an app in a container · For students of the course
    2. 06Environment variables and configuration · For students of the course
    3. 07Logs and exec: looking inside · For students of the course
    4. 08Volumes and bind mounts: keeping dataComing soon
    1. 09Your first DockerfileComing soon
    2. 10Layers and the build cacheComing soon
    3. 11Packaging a Java app (multi-stage build)Coming soon
    4. 12Small images: base images, .dockerignore and tagsComing soon
    5. 13Registries: push and pullComing soon
    1. 14Networks: containers talking to each otherComing soon
    2. 15Docker Compose basicsComing soon
    3. 16An app with PostgreSQL in ComposeComing soon
    4. 17Restarts and start orderComing soon
    1. 18Debugging a broken containerComing soon
    2. 19Limits and clean-up: memory, CPU and disk spaceComing soon
    3. 20Final project: ship a Spring Boot app with a databaseComing soon

More courses are on the way.

How it works

Three steps to start.

The course opens with a coupon or a class code.

In a class? Enter the class code

On your own? Request a coupon

  1. Sign in with Google

    Sign in with your Google account. In a class? Use the one you use for Google Classroom. No passwords to remember.

  2. Enter your class code

    Your teacher gives the class a code. Enter it once and the course opens.

  3. Learn and check yourself

    Work through the lessons, pass the checkpoints and quizzes. Your progress shows on all your devices.

Inside every lesson

Not videos to watch. Lessons you work through.

Every lesson is an interactive page. The pieces below are taken from the lessons themselves.

From lesson 1

Break it on purpose

Real compiler errors and their fixes, so the red text in IntelliJ stops being scary.

Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!")
    }
}
$ javac Main.java
Main.java:3: error: ';' expected
        System.out.println("Hello, World!")
                                           ^
1 error

FixAdd ; after the closing parenthesis.

From lesson 5

A checkpoint after every part

Short quizzes tell you right away whether you understood, with an explanation for every answer.

How many times does the body run?

for (int i = 1; i <= 64; i *= 2) {
    System.out.println(i);
}

Pick an answer to see the explanation.

From lesson 5

Homework in three levels

Warm-up, core and challenge tasks, each with the expected output so you can check yourself.

  1. Warm-up
  2. Core
  3. Challenge

Sum and averageExpected output

With n = 10:

Sum: 55
Average: 5.5

With n = 7:

Sum: 28
Average: 4.0

Azerbaijani and English

Every lesson exists in Azerbaijani and English, and you can switch between them at any moment.

Real results

Every output in a lesson comes from a real run: program output, command results, quiz answers.

Quizzes and exams

Checked by the server.

Progress on all devices

Your progress shows on all your devices.

Next step

Ready to start?

Pick a course, try the open lessons, then sign in and enter your class code.