Professional training
Backend Development
in Java: From Zero to PRO
You will master all key aspects of Java, including the basics of the language and prepare yourself to tackle complex backend development tasks.
Start now
Access to the
course 24/7
Practical
assignments
Experienced tutors
Certificate of Professional
Development
Why learn backend
development in Java?
Backend development is responsible for processing data, performing operations and interacting with the user through the frontend.

Java, being a popular language for backend development, offers powerful tools like Spring for building robust applications. With the help of Java, developers create efficient and secure server-side solutions, making them sought-after professionals in the market.
This course is suitable for you if you:
Never programmed before
Systematize your knowledge, resume your Java programming practice, improve your knowledge of the language technologies, accelerate your professional development.
Studied Java on your own.
Systematize your knowledge, resume your Java programming practice, improve your knowledge of the language technologies, accelerate your professional development.
Know another programming language
Learn a new language, expand your competences and decide if specialization is suitable for you.
In the course you will learn the basic tools and concepts of backend development in Java: command line, git, Java core, Maven and Spring DI.
Experts and Mentors
You will be taught by experts with extensive industry experience who are well versed in the skills and tools needed for a junior developer.
Alexander Vorona
Lead developer at Future Technologies, specializing in microservice architecture and RESTful API design.
Denis Mikhalchuk
Software Architect at Innovations, has over 10 years of Java development experience and is actively exploring new technologies such as Spring and Hibernate.
Maria Gur
Software engineer at a fintech startup, expert in application security and performance optimization of Java programs.
Savely Ignatiev
Tech Lead in an international IT-company, coordinates development team and mentors junior developers, sharing experience of working with Java and modern tools.
Ekaterina Fedorova
SDET certified software testing specialist with experience in automating Java application testing and implementing CI/CD processes.
Course Program
Module 1: Introduction
  • Greetings
  • Detailed overview of the course content
  • Course update information
  • Join the community
Module 2: Command Line Basics (Beginner Level)
  • Installing Git on Windows
  • Why learn about Unix Shell and working through the terminal
  • Get familiar with the terminology. Terminal, Shell, Bash, CLI
  • Navigation. Commands pwd, cd, clear
  • The ls command - view directory contents
  • Navigation task using pwd, cd and ls commands
  • Setting up a shortcut to open the terminal
  • Help, using arguments, ls command arguments
  • Creating directories using the mkdir command
  • Shortcuts to use the argument from the last command
  • Creating files with the touch command
  • Which characters should not be used when creating files
  • List of characters not recommended for use when creating files and directories.
  • The echo command. Viewing the contents of variables, outputting text to the console
  • PATH environment variable, viewing its contents with echo
  • Writing to a file with echo, viewing file contents (cat command)
  • Adding a line to a file (> operator), viewing files with tail
  • Deleting files and directories. Commands rm, rm -r, rmdir
  • Moving and renaming files - mv command
  • Copying - cp command, wildcards, cp -r to copy directories with files
  • Text editor vim. Creating and saving files
  • Vim. Additional features
  • grep - search by pattern
Module 3: Git Fundamentals (Beginner Level) - Part 1
  • Introduction. Creating a repository, git init
  • Setting a name and email
  • git status, creating a .gitignore file
  • Creating commits, git add, git commit, git log commands.
  • What you can do with commits (brief overview)
  • Rollback to previous commit - git reset
  • Working with branches (git branch, git switch)
  • Registering on GitHub, creating a remote repository
  • Create access token and git push
  • Getting changes from remote repository - git pull
  • Create and measure the first pull request on GitHub
  • The git clone command, local and remote branches
Module 4: Java Express Course. What is Java and basic environment setup
  • IntelliJ IDEA. Selecting and installing a development environment
  • What are JDK, JRE and JVM?
  • Creating a Java project in IntelliJ IDEA, downloading the JDK
  • Setting environment variables
  • Enabling Java version 21 preview features
Module 5: Java Express Course. Methods, variables, primitives, strings, operators
  • What are methods, Method main
  • Comments
  • HelloWorld, method main()
  • How Java works. Compilation, bytecode
  • What the simplified main method consists of (continued)
  • The terms statement and expression
  • Continued introduction to the main method
  • System.out.println() and System.out.print()
  • String literals
  • Method summaries, returning values from methods, throwing exceptions
  • Using the word return with void methods
  • Primitive data types
  • Byte, short, char - why you shouldn't use them. Expanding conversion
  • Wrapper classes
  • Primitive ranges, overflow
  • Casting - primitive data type casting
  • Overflow on the example of Valid Perfect Square problem
  • Static Typing
  • var - type inference
  • final with local variables
  • Arithmetic operators - part 1
  • Arithmetic operators - part 2
  • Mini-task - finding the mean
  • String concatenation
  • Comparison operators - part 1
  • Comparison operators - part 2
  • Operator !
  • Operator !=
  • Priority of operations
  • Introduction to the Math class
  • Introduction to BigInteger and BigDecimal classes
Module 6: Working with Git from IntelliJ IDEA, recommendations on using hotkeys
  • Getting to know the terminal and git integration in IntelliJ IDEA
  • Working with git in IntelliJ: adding remotes, push, update, creating branches
  • Using hotkeys in IntelliJ IDEA
Module 7: Java Express Course. Conditional operators (Control flow)
  • if-then statement
  • Abbreviated form of if-then-else
  • Task - find the largest of three numbers using if-then
  • Scope, connecting the Rainbow Brackets plugin
  • Ternary operator (?)
  • Switch (classic switch statement and updated switch expression)
Module 8: Java Express Course. Cycles (while, do while, for). Reloading methods
  • While loop
  • Cycle for
  • Method overloading
Module 9: Java Express Course. String class. Working with strings (elementary level)
  • How to use documentation, installation of plugin for documentation translation
  • How to compare strings, string pool
  • String.join() method
  • String immutability
  • Introduction to StringBuilder class (modifiable strings)
  • Returning values from methods, the word return
  • Escape sequences and string blocks
  • ReplaceAll() method, introduction to regular expressions
  • String templates (Java 21 preview feature - sent to JDK23 for revision)
  • Unicode, ASCII, UTF-16. How Java works with text
Module 10: Java Express Course. Arrays, Cycle for-each, continue, break
  • Arrays
  • Varargs (list of variable length arguments)
  • Iterating over an array with a for loop
  • For-each loop (improved for loop)
  • Array iteration using Stream API
  • IndexOutOfBoundsException
  • Two-dimensional arrays
  • ArrayList
  • Immutable lists
  • continue
  • break
  • The task "Counting characters in a string"
Module 11: Practical Assignments. Getting to know Leetcode
  • What Leetcode is and how to use it
  • Leetcode task 1295 - Find numbers with even number of digits
  • LeetCode task 9 - Palindrome number
  • LeetCode 66 task - Plus One
  • Task Leetcode 1480 Running Sum of 1d Array
Module 12: Java Express Course
  • Classes, access modifiers, HashMap, enum, records
  • Differences between primitive and reference data types
  • Meaning of null, NullPointerException
  • Getting acquainted with the Optional class
  • Why the word new is not always used when creating objects
  • Classes and Static methods
  • Classic main method
  • Fields and constructors
  • Keyword this. Passing values from constructor to fields
  • Object class and overriding toString() method
  • Access modifiers: private, package, and default
  • Differences between fields and local variables
  • equals and hash code
  • Introduction to generics (generalized types)
  • HashMap class: how it works, iterating over it
  • HashSet: how it works
  • Setters and immutable objects
  • Records and Enums
Module 13: Practical tasks
  • Task Leetcode 929 - Unique Email Addresses
Module 14: Java Express Course. Object-oriented programming
  • Abstract classes and methods
  • Final and sealed classes
  • Overview of all variants of using the word final
  • Getting acquainted with the instanceOf operator
  • Casting objects: Upcasting, Downcasting, instanceof expression
  • Creating custom exceptions using inheritance
  • Getting acquainted with interfaces
  • Variables in abstract classes and constants in interfaces
  • Differences in class inheritance and interface implementation
  • Abstract and default methods
  • Inheritance of interfaces
  • Overview of access modifiers (Parts 1-5)
  • Private methods in interfaces
  • Implementation of ratings in a Library application
  • Why was OOP created?
  • OOP principles: Encapsulation, Abstraction, Inheritance, Polymorphism
  • How classes are separated in Spring applications
  • Class separation in Spring Boot applications
Module 15: Java Express Course. Exception handling using HttpClient
  • Hierarchy of exceptions
  • General information about exceptions
  • Unchecked and checked exceptions
  • Creating a URI object
  • Creating HttpRequest, getting acquainted with HTTP
  • Creating HttpClient, exception handling
  • Handling multiple exceptions in one catch block
  • Using finally block, try-with-resources
Module 16: Java Express Course. Lambda Expressions and Stream API
  • Implementing the Function interface using an anonymous class
  • Realization of Function interface with the help of lambda expression
  • Method references
  • Getting acquainted with Stream API - using map() method
  • Getting acquainted with Consumer interface and forEach method
  • Overview of the most popular Stream API operations
Module 17: Interview Questions List Application - Part 1 (Pure Java)
  • Introduction
  • Functional requirements
  • Functional requirements (text version)
  • Scanner class - data input via terminal
  • Technical requirements
  • Technical requirements (text version)
  • The final code of this section
  • Parsing the final code part 1
  • Parsing the final code part 2
  • Parsing the final code part 3
  • Final Code Parsing Part 4
  • Parsing finished code part 5
  • Tips for saving a project to GitHub
  • Creating an executable JAR file
Module 18: Maven Basics. Preparing for Spring Boot
  • IMPORTANT: Use JDK 23 for this section
  • Introduction, creating a Spring Boot project
  • Structure of a Maven project, pom.xml, dependencies
  • Analyzing dependencies in Maven, Maven Helper plugin
  • Resolving dependency conflicts, exclusions
  • Working with different versions of Maven from IntelliJ, Spring Boot plugin
  • Creating a JAR file with mvn clean package
  • A brief overview of Maven life cycles and phases
Module 19: Spring Boot - Dependency Enforcement
  • Introduction. CommandLineRunner (console Spring Boot app)
  • @Component annotation, dependency injection via constructor
  • Dependency injection pattern, @ComponentScan annotation
  • Exploring ApplicationContext and beans
  • IoC (Inversion of Control), IoC Container and ApplicationContext
  • Creating beans using @Bean annotation
  • Java configuration of beans that depend on other beans
  • Bean scopes
  • Do not use @Autowired, field injection, and setter injection
  • Dependency injection for a collection of beans
  • Overview of other annotations for container configuration
Module 20: Interview Questions List Application - Part 2 (Spring DI)
  • Introduction
  • Adding Maven support
  • Updating the project structure
  • Adding Spring dependency injection
  • Tidying up the Git repository
  • Bean for data initialization, @PostConstruct annotation
  • Final section code
Module 21: Appendix - Interview Question List Part 3 (Adding Lombok)
  • IMPORTANT!!! IntelliJ IDEA version must be 2024.3.2.2 or higher
  • Lombok project overview and recommendations
  • Final section code
  • Configuring IntelliJ and Maven to support Lombok
  • Adding Lombok annotations to the code
Module 22: Bonus - Introduction to Web in Development
  • How computers communicate over a network (OSI model)
Select a tariff
Introductory
For independent familiarization with the course and the profession
  • Training program - 3 modules
  • Lecture materials
  • Practical assignments
  • Chat for students
  • No feedback
  • Access to the course - 1 month
  • Without certificate
$7
Basic
For self-study
  • Training program - 21 modules
  • Lecture materials
  • Practical assignments
  • Student chat
  • Independent study
  • No feedback
  • Access to the course - 3 months
  • Without certificate
$14
Standard
For those who care about support and results
  • Training program - 21 modules
  • Bonus module
  • Lecture materials
  • Practical assignments
  • Chat for students
  • Mentor feedback
  • Access to the course - 6 months
  • Certificate
$32
Standard Plus
For those who want to maximize their skills
  • Training program - 21 modules
  • Bonus module
  • Lecture materials
  • Practical assignments
  • Chat for students
  • Tutor feedback
  • Assignment check and recommendations
  • Access to the course - 12 months
  • Certificate
$49
Corporate
For corporate training for employees
  • Groups of 5-10 people
  • Training program - 21 modules
  • Bonus module
  • Participation in a corporate project
  • Mentor support
  • Access for 12 months
  • Add to group chat
  • Certificate
$400
More than 7,000 people have trained with us
One in four of our trainees came to us on recommendation
Maxim
The course is good! I started from absolute zero, not even understanding how variables work, but thanks to the structured presentation of the material and the support of the tutor, I was able to understand complex topics. I especially liked the practical tasks - they made me think and apply knowledge in practice. Now I am confident in writing code and even started working on my first project. Thank you for such a cool start in IT!
Alexey
This course is a real find for those who want to become a professional Java developer. I liked that the material is presented from simple to complex, and each module is reinforced with real cases. I learned how to optimize database queries and work with Spring Boot, which came in handy at my new job. If you want to learn Java and backend development, this course is the perfect choice!
Sergey
I have taken several Java courses, but this one is the best of them all! It really pays attention to details that are often missed in other programs. For example, I finally figured out how to properly work with collections and streams, as well as understand how to build application architecture. Practice takes 80% of the time, which is very cool - you can see the result of your efforts right away. After the course, I was able to pass the interview and get a job as a junior developer. I recommend it to anyone who wants to get serious about backend development!
Nikita
I liked the course! Besides the basics of the language, there is a lot of attention to modern tools and frameworks such as Spring. Also, a separate plus is the feedback from the tutors. They are always ready to help, explain difficult points, and give advice on how to improve the code. Thanks to the course, I not only mastered Java, but also learned how to write clean and maintainable code. Very happy with the result!
Vladlen
If you want to become a PRO in Java development, this course is a must-have! I came with basic knowledge, but even for me, there was a lot of new things. I would like to emphasize the practical assignments - thanks to them, I felt more confident and ready for real tasks. Thank you to the course team for such a valuable experience!
We will refund your money in
full if the course is not suitable
Money can be returned at any time. During the first three lessons, we will refund you the full amount, and starting from the fourth, we will calculate the refund amount or help you choose another course instead.
FAQ
Do I need prior programming knowledge to study Java?
No, you don't need to have extensive programming experience to learn Java. Although having some programming background can be beneficial, this course caters to individuals with varying levels of experience. You'll start with the essential concepts and learn how to use Java through hands-on examples.
How many hours should I dedicate to the course each week?
Typically, you should expect to invest around 10 hours weekly in the course, which includes watching lectures and completing practical tasks.
Can I manage the course alongside work or other studies?
Absolutely! The course is structured to accommodate your busy lifestyle. All lectures are pre-recorded, and you can complete assignments at your own pace, making it easy to balance the course with work or other educational commitments.
When can I expect to start earning after finishing the course?
That largely depends on how quickly you learn and practice the material. Many students begin developing their initial projects during the course or immediately after completing it. The key is to actively utilize what you have learned!
What should I do if I find that the course isn’t right for me?
If the course isn't what you expected, we offer a money-back guarantee. You can request a full refund after the first three lessons, and from the fourth lesson onward, we’ll calculate the refund amount or assist you in selecting another course.