Java developer
12 months ago

Learn Java programming from beginner to junior expert with a course from the JavaRush team - the world's top Java expert.
Discount 50%
Group training
Video tutorials with mentors, practical homework, writing projects in Java.
JavaRush Diploma
We will teach Java development, confirm your knowledge with a diploma, and help you prepare for interviews.
Course program
The training consists of 5 modules + writing a group project, the course is designed for a year.

Java programmer is
a sought-after profession
of the present and future

10 000
vacancies for
  • The demand for Java programmers is high and constantly growing. Now only on "HH" there are more than 10,000 vacancies in Russia.
  • Good salary prospects. Java developers' salaries are among the highest in the IT world.
  • As a Java programmer, there are plenty to choose from. This language is used to create server-side applications in financial services, web applications, embedded systems, big data, Android applications, and scientific applications.

Java developer career path

Java Junior
Middle Java Developer
From 1 year
Senior Java Developer
From 2 years and more

The course is right for you if you:

New to programming
You are just starting to try your hand at development. Step-by-step training with an experienced mentor, with weekly “little wins” will help you track the progress of your training and become a confident specialist.
Graduate of technical universities
You have a base, but little practical experience. On the course, you will get a lot of practice and write real projects yourself. We will make you a specialist that the IT market needs.
Do you want to resume learning ?
You have already taken a JavaRush online course or mastered Java development somewhere, but did not finish the job. Systematic training with a clear target date will help you stay motivated.
IT specialist, not a developer
You are familiar with the requirements in this area, but there is no knowledge and experience in programming. We will help you develop skills for real work and prepare you for a career breakthrough.

What's Included in the
12 Month Java Developer Course

Regular classes with mentors -
experienced Java developers
2 times a week, one and a half hour online lectures are held, where a new theory is analyzed and personal recommendations are given to students.
Large projects-terms
You gain experience with important technologies and learn how to create "live" projects that you can use or add to your portfolio.
Interactive online simulator
From the first lesson, you write programs yourself: in a browser or a professional development environment.
Help in finding a job
The JavaRush Career Center will perfect your resume, prepare you to search for suitable vacancies and pass the interview.
Chat Support
Java experts will promptly answer any questions on Java theory and problem solving on weekdays.
Diploma of completion of the course-profession
A completed JavaRush course is a “quality mark” according to IT recruiters.
Help curator
Makes your learning comfortable, answers organizational questions, shares additional materials and recordings of video lectures if you missed them.

Detailed training program

Includes 5 modules with lectures, practice and final projects: from beginner to junior developer level.

1. Introductory lesson. Commands and the first Java program

  • about java advantages, scope
  • about JavaRush and Java University
  • program structure, main method
  • south
  • a story about the site and WebIDE

2. Working with variables like int and String

  • saving text to a variable, its output to the console
  • declaring and initializing String variables
  • comments in code
  • elementary mathematical operations with variables of type int
  • increment, decrement
  • concatenation
  • Integer.parseInt(), String.valueOf()

3. Acquaintance with types and input from the keyboard. Introduction to IDEA

  • storing primitive variables in memory
  • storing String variables in memory
  • byte, short, char, long, float, double
  •, Scanner
  • Scanner methods
  • IDEA installation, project download, JDK download (version 11)
  • installation of the plugin, a story about its functionality

4. Conditional operator

  • if, if-else, if-else-if
  • instruction blocks
  • nested command blocks (nested ifs)
  • type boolean
  • comparison operators, incl. double
  • logical AND, OR, NOT
  • ternary operator
  • comparison of primitives and String

5. Optional

  • Pulling up newcomers
  • We tell experienced people about IDEA chips, etc.
  • compiling a class into bytecode from the console, running the program

6. Cycles

  • problems on the example of the task of doing something many times
  • while
  • break, continue
  • for
  • do-while
  • comparison of different cycles, identifying which one is better to use

7. Arrays

  • creating and populating arrays
  • array traversal
  • storing arrays in memory

8. Two-dimensional arrays

  • two-dimensional arrays
  • jagged arrays
  • n-dimensional arrays

9. Функции

  • объявление и вызов методов
  • параметры
  • возвращаемое значение, void
  • модификаторы доступа
  • локальные переменные метода
  • модификаторы методов, метод main

10. Работа со строками и продолжение предыдущей темы

  • константы
  • сокрытие переменных (shadowing)
  • экранирование символов
  • основные методы класса String

11. Факультатив

  • литералы
  • кодировки
  • вспомогательные классы для работы со строками: StringBuilder, String.format
  • утилитный класс Arrays

12. Типы данных. Знакомство с ООП

  • примитивные типы
  • приведение типов данных
  • ссылочные типы
  • объекты
  • null
  • знакомство с ООП
  • наследование

13. Объекты

  • создание объектов (new)
  • конструктор, конструктор по умолчанию
  • конструктор с параметрами
  • порядок вызова конструкторов при наследовании
  • доступ к полям объекта (геттер, сеттер)
  • hashCode, equals

14. Классы и static

  • статические переменные
  • сравнение статических и нестатических переменных
  • статические методы
  • порядок инициализации при использовании конструкторов и статических блоков
  • внутренние классы

15. Факультатив

  • жизненный цикл объекта
  • загрузка класса

16. Списки и Generics

  • классы обертки
  • ArrayList
  • Array VS ArrayList
  • типизация ArrayList (дженерики)

17. Коллекции

  • иерархия коллекций
  • Set, HashSet
  • iterator, for-each

18. Коллекции

  • Map, HashMap
  • для каких задач лучше использовать какие коллекции
  • Collections

19. Факультатив

  • LinkedList
  • ArrayList VS LinkedList
  • Queue
  • SortedMap, TreeMap

20. Singleton, Enum, switch

  • зачем нужны перечисления
  • объявления Enum
  • Enum — лучший синглтон
  • switch

21. Исключения

  • нормальное выполнение кода и ошибки в рантайме
  • try-catch
  • иерархия исключений
  • multicatch
  • throw
  • checked и unchecked исключения
  • throws

22. Исключения

  • finally
  • создание своих исключений
  • Throwable
  • stack trace
  • try with resources
  • AutoCloseable

23. Факультатив

  • Оборачивание исключения
  • Error

24. Потоки ввода-вывода

  • InputStream
  • Reader
  • BufferedReader
  • OutputStream
  • Writer
  • BufferedWriter

25. Потоки ввода-вывода. Pattern Decorator

  • ByteArrayInputStream
  • ByteArrayOutputStream
  • комбинирование потоков

26. Потоки ввода-вывода. java.nio

  • io VS nio
  • FileChannel
  • Selector
  • Path
  • Paths
  • Files

27. Работа со временем и датой

  • Date
  • DateFormat
  • Calendar
  • LocalDate, LocalTime, LocalDateTime
  • Instant
  • ZonedDateTime
  • DateTimeFormatter

28. Git. Итоговый проект. (Крипто-анализатор)

1. OOP: encapsulation, polymorphism. Interfaces

  • encapsulation
  • polymorphism
  • cast
  • this, super
  • interfaces

2. OOP: Overloading, Overriding, Abstract Classes

  • abstract class
  • implementation of abstract ancestor methods
  • method overload — same names
  • overriding methods

3. Stream API

  • anonymous inner class
  • implementation of abstract ancestor methods
  • lambda expressions
  • functional interfaces
  • method reference
  • Stream
  • Stream’s intermediate and terminal methods
  • map-reduce

4. OOP: composition, aggregation, inheritance

  • association: composition and aggregation
  • inheritance

5. Interfaces: comparison with an abstract class, multiple inheritance

  • behavior declaration
  • default methods
  • implementation of multiple interfaces
  • «rhombus» problem
  • comparison of abstract classes and interfaces

6. Type casting, instanceof switch-expression

  • instanceof
  • type casting (expansion and narrowing)
  • switch-expression, Enum

7. Features of calling constructors. static block

  • the process of creating an object
  • constructor call order
  • variable initialization order

8. Device Object: equals, hashCode, clone, toString(). immutable objects

  • class Object
  • Object class methods
  • mutable & immutable objects

9. Recursion

  • recursion

10. Introduction to threads: Thread, Runnable, start, sleep

  • Thread
  • runnable
  • start
  • sleep
  • interrupt

11. Introduction to threads: synchronized, volatile, wait, notify.DeadLock

  • synchronized
  • volatile
  • join
  • wait, notify
  • deadlock problem


  • ExecutorService
  • factory method pattern
  • adding tasks to the service
  • callable
  • get result: Future
  • stop ExecutorService
  • FixedThreadPool
  • CachedThreadPool
  • ScheduledExecutorService

13. ThreadLocal, Callable, Future

  • ThreadLocal context
  • ThreadLocalRandom

14. Inner/Nested classes, examples: Map.Entry

  • nested classes
  • inner classes
  • inner static classes
  • inner anonymous classes
  • examples of different types of classes from the JDK

15. JSON/XML/YAML serialization

  • java serialization
  • data formats xml, json, yaml
  • jackson ObjectMapper

16. Reflection API

  • why you need the Reflection API
  • getting data: class, method, constructor, field
  • object creation
  • changing the internal state of an object
  • proxy
  • RMI

17. Annotations in Java

  • declarative and imperative coding approach
  • popular annotations: @Deprecated, @Override, @Nullable, …
  • creating annotations
  • annotation processing at runtime

18. Optional

  • working with Swing


  • Socket
  • ServerSocket
  • live coding: writing a primitive group chat

20. Final project

1. Garbage collection and reference types in Java

  • JVM memory: stack and heap
  • CG: Serial, Parallel, CMS, G1, Shenandoah, ZGC
  • cache
  • WeakReference, SoftReference, PhantomReference

2. Design patterns

  • behavioral: chain of responsibility, team, iterator, interpreter, mediator, keeper, observer, state, strategy, visitor, template method
  • generative: prototype, builder, singleton, abstract factory, factory method
  • decorator, linker, facade, adjuster, proxy

3. Development methodologies

  • waterfall
  • v-model
  • incremental
  • RAD model
  • agile
  • iterative
  • spiral

4. The basics of Maven. Installing Maven, dependency management, types of Maven repositories, building a Java project

  • downloading, prescribing environment variables
  • creating a maven project
  • dependencies
  • plugins
  • phases (lifecycle)
  • profiles
  • artifact build

5. Experience with Guava, Apache Commons Collections

  • Multimap, BiMap
  • multiset
  • immutable collections
  • Objects: hashCode, equals
  • Throwables
  • CollectionUtils
  • StringUtils


  • why testing is needed
  • types of testing
  • @Test
  • @Before, @After
  • @BeforeClass, @AfterClass
  • parameterized tests

7. Mockito

  • moki
  • mock and spy
  • when and thenReturn
  • verify
  • any, once, times

8. Logging

  • why do I need logs
  • logging levels
  • slf4j
  • implementations: log4j, JUL, logback, common-loggins
  • appendices

9. Network device. Network model

  • network topology
  • OSI model
  • DNS

10. Software architecture. Client-server architecture and its components, three-level architecture, architectural patterns

  • client-server architecture
  • three-level architecture (client-server-DB)
  • criteria for a good architecture: efficiency, flexibility, extensibility, scalability, ease of testing, readable and understandable code
  • modular architecture. decomposition

11. HTTP/HTTPS protocols. Data transfer protocol, HTTP requests and responses, differences between HTTP and HTTPS. Cookies, Session

  • network data transfer protocols
  • http methods (GET, POST, PUT, …)
  • query parameters
  • request body
  • headers
  • response codes
  • http VS https
  • http sessions
  • cookies
  • http/2

12. HttpClient

  • AJAX
  • java http client
  • synchronous and asynchronous requests
  • task to get data from net, for example weather

13. Servlets, Java servlet API. Writing a simple web application

  • what is a servlet
  • life cycle
  • Tomcat servlet container
  • doGet, doPost
  • redirect VS forward
  • filters

1. Introduction to databases. Database Setup (MySQL). ddl, dml

  • why the necessary databases
  • relevant and irrelevant databases
  • relational model
  • COVER theorem
  • MySQL developer registration
  • SQL groups (ddl, dml, dcl, tcl)

2. Data types. Creating a table. Instruction to insert, select, update, delete

  • creating a theme
  • creating a table
  • changing the table structure
  • insert
  • select
  • update
  • delete

3. Data fetcher

  • select with
  • list of selected data
  • additional selection
  • connection: left, right, internal, transverse
  • grouping by tag links
  • index

4. Redirecting the database

  • conjugated ACID (atomicity, consistency, insulation, durability)
  • transportation management
  • data isolation level x

5. Projecting the data base x

  • primary norm
  • the second norm
  • triple norm
  • keys (foreign key)
  • deletion: from one to…, from many to…

6. JDBC 1

  • why do I need
  • information technology
  • getting data in the application from the database
  • familiarization and deletion of data in the application from the database

7. JDBC 2

  • transportation
  • isolation level
  • error correction check

8. ORM. Switch to sleep mode

  • inconsistencies of the objective and relevant data model
  • ORM (sleep mode), JPA
  • architecture goes into sleep mode
  • conjugation, explanatory work
  • getting data in the application from the database
  • updating and deleting data in the application from the database
  • Sleep Mode VS JDBC

9. Wintering. One…, many…

  • alienation (working with teams)

10. Object assignment for ORM

  • one table for each class
  • one tablet for each class with ancestors
  • a single pill for all Iraqi clans
  • one table for each class using joins (join)

11. Final project

  • hash for passwords

1. IoC, DI. Spring. components. Beans

  • why Spring has become the de facto industry standard (benefits)
  • principles of IoC and DI
  • bin
  • context (ApplicationContext)
  • AOP

2. Spring modules general. Spring Web MVC

  • core (beans, core, context, SpEL)
  • data access
  • testing
  • web
  • integration
  • web mvc

3. Designing a REST API

  • operating with resources, not methods
  • http methods
  • http response codes
  • mistakes
  • collection request
  • querying the number of objects in the collection
  • collection object request
  • adding data to the collection
  • editing
  • removal
  • d.h. design a 2-rank REST API

4. App controller-service-dao

  • context hierarchy
  • servlet config
  • controller — receiving request
  • service — business logic
  • dao — state storage

5. Spring ORM @Transaction

  • abstraction “transaction”
  • declarative transactions
  • transaction propagation
  • advantages of ORM + Spring
  • setting hibernate SessionFactory
  • live coding example

6. Spring Test. AOP (logging)

  • unit testing
  • integration testing
  • основные аннотации
  • TestContext
  • live coding example (тестирование API-метода или пары методов)
  • spring commons logging bridge

7. Spring Security (memory, DB)

  • ключевые объекты контекста spring security: SecurityContextHolder, Authentication, UserDetails, GrantedAuthority
  • авторизация и аутентификация
  • OAuth2
  • сессии в памяти
  • сессии в БД

8. Spring Boot. Spring JPA

  • стартеры
  • автоконфигурация
  • встроенные tomcat
  • аннотации конфигурации
  • демонстрация spring data jpa (генерация запроса по названию метода в рантайме)

Our teachers and support

Benjamin Mitchell
Team lead of the JavaRush programming team. Backend development and database expert.
Samuel Anderson
Java programmer JavaRush, Java mentor. Engaged in the development of technological solutions for online learning.
Ethan Foster
Java developer, implements new features into the product, improves course content.
Isaac Sullivan
Java developer. Engaged in improving JavaRush learning content.
Nathan Walker
Java developer, author of tasks and practical projects in the JavaRush course.

Your CV

A resume that you can show to IT recruiters after completing the course
Java developer
Skills and technologies:
  • Java core
  • Multithreading
  • OOP
  • Патерны (GoF)
  • Maven
  • SQL (MySQL)
  • JDBC
  • Servlets, JSP
  • Tomcat
  • Hibernate
  • JUnit, Mockito
  • log4j
  • проектирование REST  API
  • Spring (MVC, Test, Security, JPA)
  • Spring Boot
  • Windows
  • Linux
  • IDEA
  • GitHub
  • scrum
  • HTML
  • CSS
Salary expectations
from $1000
Distant work
Cost of education
Price today
84 $/month
Price without discount
168 $/month
* Prices are inclusive of payment for the entire period of study
Discount 50%
Sign up for a course




    Want to know more?

    You can leave a request, the manager will contact  you and answer any questions you may have.

    Frequently Asked Questions

    What is the difference between a classic subscription to a JavaRush course and JavaRush University

    At JavaRush University:

    • training is led by mentors
    • classes are held in small groups
    • students write large term paper projects, gain experience with advanced Java technologies, which can then be added to the portfolio
    • there is regular support in the slack chat, where Java experts promptly answer any questions about Java theory and problem solving
    • employment assistance is provided: the JavaRush career center checks your resume, prepares you for searching for suitable vacancies and passing interviews
    • At the request of students, additional electives and live sessions are organized to answer questions and more

    What are the student level requirements?

    JavaRush is designed for both people with zero knowledge in programming, and for specialists who partially know the Java language, but want to improve their skills or repeat the material.

    How many hours a week do you need to devote to studying?

    We recommend devoting at least 10-12 hours per week to studying at the university. The bigger, the better.

    Why is the course 12 months long?

    12 months is the optimal period of time to study theory and develop skills for the position of Junior Java Developer. You will go step by step through all the required levels under the guidance of current Java developers.

    Do I need to know English to study at Java University?

    The training does not require fluency in English, but minimal knowledge is required to write code, find additional information, or learn how to use programs in English in the future.

    How do you help with employment?

    After completing the course, you will have every chance to get a job as a Junior Java Developer, as you will receive all the necessary knowledge and skills for this position. The JavaRush Career Center will help you write a resume and prepare future professionals for an interview.

    Can I pay for the program monthly?

    It is possible to pay monthly tuition. The cost will be 7900 rubles / 105 USD / 92 euros / 2950 UAH per month.

    What salary can I expect after passing JavaRush University?

    The average salary in the labor market for Java Junior is up to $1000, for Middle Java Developer — from $1400, and for Senior Java Developer — from $3000.

    Why should I choose your course?

    JavaRush has been the world’s leading Java learning expert for 9 years. Java and the training of IT specialists working with this language is our key specialization.

    The program of our University is designed taking into account the requirements for novice Java developers in the labor market and the experience of thousands of JavaRush graduates.

    Mentors step by step introduce students to the theoretical part of learning Java and interact regularly in chats to resolve questions and misunderstandings.

    The course is filled with many variations of the application of Java theory in practice to consolidate the material covered and use it in future projects. These are 1200 tasks with automatic solution checking, mini-projects for passing each module and the final group project that you can add to your portfolio.

    Payment for tuition can be made monthly, which is convenient for planning your budget.


    Victor Sheff

    I was asked here at work "how is your Java?". He answered that, they say, I pass exceptions, wrap, throw out, try-with-resources and all that. In response to this, I received the task: "dachshund question - you get an int[] array as input. Return only even numbers from the array and return it as a List"

    Andrey Pazyuk

    Now we have started learning about Spring. The course is good, though rarely in places it is written terribly lazily and difficult. But in general, I did not regret that I studied on it. After 2 months, the end of the course and job search. I highly recommend it to anyone thinking of doing it. There really is a meaning. There is enough information even to become a middle, not like a junior. The main thing is to be persistent and not give up half way. Beaver everyone!


    In November 2021, I thought about programming, before that I had no experience, from the word at all. The only thing at school was 5ki in kyubesik-everything.
    I set a deadline of a week to decide on the language and the direction of the back or front. Having studied the vacancies, I decided to study Java. And then it began: schools, courses, etc. so much so that advertising then climbed from everywhere, after he began to go to everyone and study the training program.
    Since he himself could not choose, "expensive mistake price" == time from 6 to 12 months + a bundle of money. I began to look for acquaintances who are in the "subject".
    Thanks to the "eychar" wife, we found a colleague from an IT company, which recommended JavaRush.
    From many hours of conversation, I heard something important for me: "The most prepared Juners come to social services."

    About study.
    Those who are from 0 have to work hard ... I just happen to be “plugged” for a day (and sometimes more) I can’t understand what’s going on, I start asking mentors, the community, videos, additional study materials and then bam, it came / cut through and went further, solve problems and pass lectures until you reach the next "barrier". There are topics that I do not fully perceive and I try to run them in practice.

    In short, I believe that the walker will pass the road. I did not notice how 2.5 months have passed - the mood is without options - TO BECOME A PROGRAMMER. All good.

    P.S. when you buy books, see what version of Java is in this publication, there is such a "junk", and pay 1.5-2.5k :)


    This course is very different from the usual. I tried the regular one in August, but then a lot of work appeared: I overworked and could not start.

    When I signed up for this course, many problems also arose: there was no time for studying. But the fact that there is a certain pace with which the group goes makes me catch up with the material and find the time.

    And in general, the material is presented in a different way: all topics are in order, very thoughtfully, there are mentors who not only lecture the material, but always prompt. And the fact that I have the support of classmates who are ready to help, call, explain is worth a lot.

    So far I have not come across topics that I cannot master, but I worry that this can happen, and the understanding that I have support, people who are trying to help me not be left alone with the problem, is very inspiring.


    I'm delighted, great presentation, interesting. Lectures are watched in one breath. The teachers are great, the presentation is fun. For half of the 15th lecture, the mentor explained the intricacies of the internal classes to the student - he told everything wonderfully, right in all the details. Perfectly explains everything, on the fingers. Thanks again! I didn't notice how two hours flew by!


    Quite a rich program, a lot of material. Especially for me, who was not previously familiar with programming, the lectures are very helpful in advancing.


    Now it is assumed (as I understand it) that training will take place from the first module to the last.
    Perhaps, in the future, consider the option of switching from an independent form of study with you to the current course? (with offset of the passed material according to the test results).
    Thank you.

    Alexey Kurenkov

    Tell me... with the tasks I plan to finish Java Multitrading + Java Collection on my own - all quests where there are tasks... So far, from the fully completed syntax and core...
    Is it possible to go on a course at Java University not from the beginning, not for a year, but for how long it takes without re-passing the first two courses or 4x?
    In general, you need to dive into Spring-Boot, but I understand that not everything can work out without the previous base ... I tried to read without tasks - somehow it’s hard to get into the terms and purposes of the bean, how to use them, how to configure.


    I wanted to clarify whether it is possible to enroll in a course not from the first lecture, but for example from 12 and how to do this if I have already bought a year of the usual premium?


    When is the next intake for Java University?