Курс с нуля до трудоустройства за 12 месяцев
Получи профессию «Java-разработчик»
Обучайся с ментором, освой разработку на Java — от основ до технологий, которые нужны для сильного резюме, и создай 10 крутых проектов для своего портфолио.
Java IDE online
Привет, Андрей, какой метод
нужно использовать здесь?
Привет, Кристина!
12 месяцев
практика с первого занятия
помощь со стартом карьеры
5 модулей
10 крутых проектов в портфолио
Java IDE online
Привет, Андрей, какой метод
нужно использовать здесь?
Привет, Кристина!
 
Онлайн-занятия с менторами
Видеолекции с разбором новых тем два раза в неделю, видеозаписи предоставляются.
От «базы» до продвинутых технологий
5 модулей обучения: лекции, задачи, практические проекты. Продолжительность курса –⁠ год.
Диплом JavaRush, подтверждающий знания
Сертификат об окончании курса, который можно добавить к резюме.
Усиленная подготовка к первой работе в IT
Консультация с HR-экспертом касаемо резюме, видеолекции о подготовке к собеседованиям.

3 причины, почему тебе стоит выбрать Java для старта карьеры разработчика

Java Developer
01
Выход на глобальный IT‑рынок
Спрос на Java-программистов высокий, и эти специалисты не ограничены локальным рынком — они могут выбирать из множества вакансий во всем мире. А зарплаты джавистов на проектах, например, в США — до $150 тысяч в год.
02
Работа в больших компаниях
Java – один самых популярных современных языков программирования. С его помощью можно писать сложные программы и приложения. Google, Facebook, Netflix, Amazon, Microsoft и ряд других компаний-гигантов сделали ставку на Java для бекенда.
03
Java — везде
Этот язык используется для разработки под Android, в облачных проектах, виртуальной реальности, для создания инструментов разработки, работы с Big Data, беспилотными транспортными средствами, роботизированными медицинскими устройствами, в разработке игр, создании спецэффектов для киноиндустрии, космических разработках и так далее. Все технологии будущего будут написаны «с участием» языка Java.

Твои карьерные перспективы в качестве Java‑разработчика

Со знанием программирования на Java ты можешь выбрать любую специализацию:
Java Full Stack Developer
Technologist emoji
Java Backend Developer
Smiling Face with Sunglasses emoji
Big Data Engineer
File Cabinet emoji
Java Mobile Developer
Mobile Phone emoji
QA Automation Engineer
Beetle emoji
Senior Java Developer Salary
$4000+
Senior Java Developer
от 3 лет
$1400-$3000
Middle Java Developer
от 1 года
$700-$1000
Junior Java Developer
начало карьеры

Как будет проходить твое обучение на Java‑курсе

Хочешь попробовать прямо сейчас?
Записаться на курс

На курсе ты с нуля изучишь множество важных технологий для разработчика

Результат твоего обучения — не только знания и навыки, но и 10 готовых проектов в твоем портфолио
Результат твоего обучения — не только знания и навыки, но и 10 готовых проектов в твоем портфолио
Результат твоего обучения — не только знания и навыки, но и 10 готовых проектов в твоем портфолио
Криптоанализатор
Криптоанализатор
Ты напишешь программу, которая работает с шифром Цезаря. В основе криптографического алфавита — все буквы английского алфавита, но можно добавить кодировку текста кириллицей, а также улучшить алгоритм работы твоего криптоанализатора. Задание «со звездочкой» — разработать графический интерфейс для твоей программы.
Необитаемый остров
Необитаемый остров
Твое задание — создать модель острова с изменяемыми параметрами, которая состоит из массива локаций. Локации будут заполнены растениями и животными, и животные будут выполнять определенные действия. Этот проект поможет тебе как следует попрактиковаться с концептами объектно-ориентированного программирования.
Десктопная 2D-игра
Десктопная 2D-игра
Ты напишешь свою игру на JavaFX с помощью игрового движка от JavaRush, которую «запакуешь» в исполняемый JAR‑файл — чтобы ее можно было запустить и поиграть.
Админпанель для управления MMO‑игрой
Админпанель для управления MMO‑игрой
Ты поработаешь над созданием пользовательского интерфейса (UI) для CRUD бекенда проекта. Во время работы ты будешь использовать такие технологии как HTML, CSS, JS, jQuery.
Игра «Крестики-нолики»
Игра «Крестики-нолики»
Проект, который ты напишешь с использованием сервлетов и JSP.
Текстовый квест
Текстовый квест
Это Maven проект, в котором ты будешь работать с сервлетами, JSP, jstl, а также Tomcat.
Проект на Hibernate
Проект на Hibernate
Ты напишешь альтернативную реализацию слоя репозитория с использованием Hibernate.
Проект по работе с базами данных + Hibernate
Проект по работе с базами данных + Hibernate
Ты поработаешь с разными технологиями (MySQL, Hibernate, Redis, Docker) в рамках проекта по оптимизации работы с запросами к реляционной БД MySQL.
“To-do list”
“To-do list”
Ты создашь программу — список заданий, в котором можно просматривать задачи, добавлять новые, редактировать и удалять те, которые уже существуют. В этом проекте используются Maven, MySQL, Hibernate, Spring, Spring MVC, Thymeleaf.docker.
“JiraRush” — доска задач
“JiraRush” — доска задач
Это финальный проект по разработке доски задач по типу Jira или Trello. Готовый продукт поможет отслеживать любую активность — от ведения проекта до передачи списка покупок.
Java coder
Хочешь попробовать прямо сейчас?
Оставь заявку: менеджер свяжется с тобой и ответит на все вопросы

Подробная программа обучения

Обучение на Java‑разработчика включает в себя 5 модулей с лекциями, практикой и итоговыми проектами (от новичка до уровня Junior-разработчика), а также финальный групповой проект.
Вводное занятие. Команды и первая программа на Java
  • о преимуществах Java и его сферах применения
  • о JavaRush и Java‑университете
  • структура программы, метод main
  • sout
  • знакомство с сайтом и WebIDE
Работа с переменными, типы int и String
  • сохранение текста к переменной, вывод ее в консоли
  • объявление и инициализация переменных String
  • комментарии в коде
  • элементарные математические операции с переменными типа int
  • инкремент, декремент
  • конкатенация
  • Integer.parseInt(), String.valueOf()
Знакомство с типами и ввод с клавиатуры. Знакомство с IDEA
  • хранение примитивных переменных в памяти
  • хранения String переменных в памяти
  • byte, short, char, long, float, double
  • System.in, Scanner
  • методы Scanner
  • установка IDEA, скачивание проекта, скачивание JDK (версия 11)
  • установка плагина, рассказ о его функционале
Условный оператор
  • if, if-else, if-else-if
  • блоки команд
  • вложенные блоки команд (вложенные if-ы))
  • тип boolean
  • операторы сравнения, в т.ч. double
  • логические AND, OR, NOT, XOR
  • тернарний оператор
  • сравнение примитивов и String
Факультатив
  • подтягиваем новичков
  • опытным рассказываем про фишки IDEA и т.п.
  • компиляция класса в байт-код из консоли, запуск программы
Циклы
  • проблематика на примере задачи сделать что-то много раз
  • while
  • break, continue
  • for
  • do-while
  • сравнение разных циклов, выявление где какой лучше использовать
Массивы
  • создание и заполнение массивов
  • обход массива
  • хранение массивов в памяти
Двумерные массивы
  • двумерные массивы
  • зубчатые массивы
  • n-мерные массивы
Функции
  • объявление и вызов методов
  • параметры
  • возвращаемое значение, void
  • модификаторы доступа
  • локальные переменные метода
  • модификаторы методов, метод main
Работа со строками и продолжение предыдущей темы
  • константы
  • сокрытие переменных (shadowing)
  • экранирование символов
  • основные методы класса String
Факультатив
  • литералы
  • кодировки
  • вспомогательные классы для работы со строками: StringBuilder, String.format
  • утилитный класс Arrays
Типы данных. Знакомство с ООП
  • примитивные типы
  • приведение типов данных
  • ссылочные типы
  • объекты
  • null
  • знакомство с ООП
  • наследование
Объекты
  • создание объектов (new)
  • конструктор, конструктор по умолчанию
  • конструктор с параметрами
  • порядок вызова конструкторов при наследовании
  • доступ к полям объекта (геттер, сеттер)
  • hashCode, equals
Классы и static
  • статические переменные
  • сравнение статических и нестатических переменных
  • статические методы
  • порядок инициализации при использовании конструкторов и статических блоков
  • внутренние классы
Факультатив
  • жизненный цикл объекта
  • загрузка класса
Списки и Generics
  • классы обертки
  • ArrayList
  • Array VS ArrayList
  • типизация ArrayList (дженерики)
Коллекции
  • иерархия коллекций
  • Set, HashSet
  • iterator, for-each
Коллекции
  • Map, HashMap
  • для каких задач лучше использовать какие коллекции
  • Collections
Факультатив
  • LinkedList
  • ArrayList VS LinkedList
  • Queue
  • SortedMap, TreeMap
Singleton, Enum, switch
  • зачем нужны перечисления
  • объявления Enum
  • Enum – лучший синглтон
  • switch
Исключения
  • нормальное выполнение кода и ошибки в рантайме
  • try-catch
  • иерархия исключений
  • multicatch
  • throw
  • checked и unchecked исключения
  • throws
Исключения
  • finally
  • создание своих исключений
  • Throwable
  • stack trace
  • try-with-resources
  • AutoCloseable
Факультатив
  • Оборачивание исключения
  • Error
Потоки ввода-вывода
  • InputStream
  • Reader
  • BufferedReader
  • OutputStream
  • Writer
  • BufferedWriter
Потоки ввода-вывода. Pattern Decorator
  • ByteArrayInputStream
  • ByteArrayOutputStream
  • комбинирование потоков
Потоки ввода-вывода. java.nio
  • io VS nio
  • FileChannel
  • Selector
  • Path
  • Paths
  • Files
Работа со временем и датой
  • Date
  • DateFormat
  • Calendar
  • LocalDate, LocalTime, LocalDateTime
  • Instant
  • ZonedDateTime
  • DateTimeFormatter
Git. Итоговый проект. (Крипто-анализатор)
ООП: инкапсуляция, полиморфизм. Интерфейсы
  • инкапсуляция
  • полиморфизм
  • приведение типов
  • this, super
  • интерфейсы
ООП: Перегрузка, переопределение, абстрактные классы
  • абстрактный класс
  • реализация абстрактных методов предка
  • перегрузка (overload) методов - одинаковые названия
  • переопределение (override) методов
Stream API
  • анонимный внутренний класс
  • реализация абстрактных методов предка
  • лямбда выражения
  • функциональные интерфейсы
  • method reference
  • Stream
  • промежуточные и терминальные методы Stream
  • map-reduce
ООП: композиция, агрегация, наследование
  • ассоциация: композиция и агрегация
  • наследование
Интерфейсы: сравнение с абстрактным классом, множественное наследование
  • объявление поведения
  • дефолтные методы
  • реализация нескольких интерфейсов
  • проблема “ромба”
  • сравнение абстрактных классов и интерфейсов
Приведение типов, instanceof switch-expression
  • instanceof
  • приведение типов (расширение и сужение)
  • switch expression, Enum
Особенности вызова конструкторов. Блок static
  • процесс создание объекта
  • порядок вызова конструкторов
  • порядок инициализации переменных
Устройство Object: equals, hashCode, clone, toString(). Immutable objects
  • класс Object
  • методы класса Object
  • mutable та immutable objects
Рекурсия
Знакомство с нитями: Thread, Runnable, start, sleep
  • Thread
  • Runnable
  • start
  • sleep
  • interrupt
Знакомство с нитями: synchronized, volatile, wait, notify.DeadLock
  • synchronized
  • volatile
  • join
  • wait, notify
  • проблема DeadLock
Executors
  • ExecutorService
  • патерн (шаблон) “фабричний метод”
  • добавление задач в сервис
  • Callable
  • получение результата: Future
  • остановка ExecutorService
  • FixedThreadPool
  • CachedThreadPool
  • ScheduledExecutorService
ThreadLocal, Callable, Future
  • ThreadLocal контекст
  • ThreadLocalRandom
Внутренние/вложенные классы, примеры: Map.Entry
  • вложенные классы
  • внутренние классы
  • внутренние статические классы
  • внутренние анонимные классы
  • примеры разных типов классов из JDK
Сериализация JSON/XML/YAML
  • java сериализация
  • форматы данных xml, json, yaml
  • jackson ObjectMapper
Reflection API
  • зачем нужен Reflection API
  • получение данных: класса, метода, конструктора, поля
  • создание объекта
  • изменение внутреннего состояния объекта
  • прокси
  • RMI
Аннотации в Java
  • декларативный и императивный подход написания кода
  • популярные аннотации: @Deprecated, @Override, @Nullable, …
  • создание аннотаций
  • обработка аннотаций в рантайме
Факультатив
  • работа с Swing
Sockets
  • Socket
  • ServerSocket
  • live coding: написание примитивного чата для группы
Итоговый проект
Сборка мусора и типы ссылок в Java
  • память JVM: stack и heap
  • CG: Serial, Parallel, CMS, G1, Shenandoah, ZGC
  • кеш
  • WeakReference, SoftReference, PhantomReference
Паттерны проектирования
  • поведенческие: цепочка ответственности, команда, итератор, интерпретатор, посредник, хранитель, наблюдатель, состояние, стратегия, посетитель, шаблонный метод
  • порождающие: прототип, строитель, синглтон, абстрактная фабрика, фабричный метод
  • структурные: декоратор, компоновщик, фасад, приспособленец, прокси
Методологии разработки
  • waterfall
  • v-model
  • incremental
  • RAD model
  • agile
  • iterative
  • spiral
Основы Maven. Установка Maven, управление зависимостями, виды Maven-репозиториев, сборка Java-проекта
  • скачивание, прописывание переменных окружения
  • создание maven-проекта
  • зависимости
  • плагины
  • фазы (lifecycle)
  • профили
  • билд артефактов
Опыт работы с Guava, Apache Commons Collections
  • Multimap, BiMap
  • Multiset
  • неизменяемые коллекции
  • Objects: hashCode, equals
  • Throwables
  • CollectionUtils
  • StringUtils
JUnit
  • зачем нужно тестирование
  • типы тестирования
  • @Test
  • @Before, @After
  • @BeforeClass, @AfterClass
  • параметризованные тесты
Mockito
  • моки
  • mock и spy
  • when и thenReturn
  • verify
  • any, once, times
Логирование
  • зачем нужны логи
  • уровни логирования
  • slf4j
  • реализации: log4j, JUL, logback, common-loggins
  • аппендеры
Устройство сети. Сетевая модель
  • топология сети
  • модель OSI
  • DNS
Архитектура ПО. Клиент-серверная архитектура и ее составляющие, трехуровневая архитектура, архитектурные шаблоны
  • клиент-серверная архитектура
  • трехуровневая архитектура (клиент-сервер-БД)
  • критерии хорошей архитектуры: эффективность, гибкость, расширяемость, масштабируемость, удобство тестирования, читаемый и понятный код
  • модульная архитектура. декомпозиция
Протоколы HTTP/HTTPS. Протокол передачи данных, HTTP-запросы и ответы, отличия HTTP и HTTPS. Cookies, Session
  • протоколы передачи данных в сети
  • http методы (GET, POST, PUT, …)
  • параметры запросов
  • тело запроса
  • хедеры
  • коды ответов
  • http VS https
  • http сессии
  • куки
  • http/2
HttpClient
  • AJAX
  • java http client
  • синхронные и асинхронные запросы
  • задача на получение данных с нета, например погода
Сервлеты, Java servlet API. Пишем простое веб-приложение
  • что такое сервлет
  • жизненный цикл
  • сервлет-контейнер Tomcat
  • doGet, doPost
  • redirect VS forward
  • фильтры
Контейнеры сервлетов: Tomcat, развертывание приложения, настройка сервера
  • практика по предыдущей лекции
Знакомство с MVC (Model-View-Controller). JSP
  • набор архитектурных принципов и идей MVC
  • схемы MVC
  • MVC в вебе
  • типичная ошибка: бизнес-логика в контроллере
  • MVC на примере задачи
  • JSP
Веб-сервисы
  • что такое веб-сервис
  • протоколы http, jms, ftp, …
  • синхронные и асинхронные запросы
  • облачные сервисы: IaaS, PaaS, SaaS (что угодно as a service))
HTML-факультатив
  • что такое HTML
  • структура HTML документа
  • теги и их атрибуты
  • CSS, его синтаксис
  • классы и идентификаторы
  • селекторы
Итоговый проект. Servlet-quest конкурс
  • Написать на сервлетах текстовую пошаговую игру-квест
Введение в базы данных. Установка СУБД (MySQL). ddl, dml
  • зачем нужны БД
  • реляционные и нереляционные БД
  • реляционная модель
  • CAP теорема
  • установка MySQL developer
  • группы SQL (ddl, dml, dcl, tcl)
Типы данных. Создание таблицы. Написание insert, select, update, delete
  • создание схемы
  • создание таблиц
  • изменение структуры таблиц
  • insert
  • select
  • update
  • delete
Выбор данных
  • select с условием
  • перечень выбираемых данных
  • subselect
  • join: left, right, inner, cross
  • group by и агрегатные функции
  • index
Транзакции БД
  • концепции ACID (Atomicity, Consistency, Isolation, Durability)
  • управление транзакциями
  • уровни изоляции данных
Проектирование баз данных
  • первая нормальная форма
  • вторая нормальная форма
  • третья нормальная форма
  • ключи (foreign key)
  • отношения: one to …, many to …
JDBC 1
  • зачем нужен
  • основные интерфейсы
  • получение данных в приложении из БД
  • обновление и удаление данных в приложении из БД
JDBC 2
  • транзакции
  • уровни изоляции
  • обработка checker исключений
ORM. Hibernate
  • нестыковки объектной и реляционной моделей данных
  • ORM (Hibernate), JPA
  • архитектура Hibernate
  • конфигурация, основные аннотации
  • получение данных в приложении из БД
  • обновление и удаление данных в приложении из БД
  • Hibernate VS JDBC
Hibernate. OneTo…, ManyTo…
  • отношения (работа с коллекциями)
Наследование Entity for ORM
  • одна таблица для каждого класса
  • одна таблица для каждого класса с предками
  • единая таблица для всей иерархии классов
  • одна таблица для каждого класса с использованием соединений (join)
Итоговый проект
  • hash for passwords
IoC, DI. Spring. Components. Beans
  • почему Spring стал де-факто стандартом отрасли (преимущества)
  • принципы IoC и DI
  • бин
  • контекст (ApplicationContext)
  • AOP
Spring modules general. Spring Web MVC
  • core (beans, core, context, SpEL)
  • data access
  • testing
  • web
  • integration
  • web mvc
Проектирование REST API
  • оперирование ресурсами, а не методами
  • http методы
  • http коды ответов
  • ошибки
  • запрос коллекции
  • запрос количества объектов в коллекции
  • запрос объекта коллекции
  • добавление данных в коллекцию
  • редактирование
  • удаление
  • домашнее задание: спроектировать 2-ранговый REST API
App controller-service-dao
  • иерархия контекстов
  • servlet config
  • контроллер - прием запроса
  • сервис - бизнес логика
  • dao – хранение состояния
Spring ORM. @Transaction
  • абстракция “транзакция”
  • декларативные транзакции
  • transaction propagation
  • преимущества ORM + Spring
  • настройка hibernate SessionFactory
  • live coding example
Spring Test. AOP (logging)
  • unit testing
  • integration testing
  • основные аннотации
  • TestContext
  • live coding example (ттестирование API-метода или пары методов)
  • spring commons logging bridge
Spring Security (memory, DB)
  • ключевые объекты контекста spring security: SecurityContextHolder, Authentication, UserDetails, GrantedAuthority
  • авторизация и аутентификация
  • OAuth2
  • сессии в памяти
  • сессии в БД
Spring Boot. Spring JPA
  • стартеры
  • автоконфигурация
  • встроенные tomcat
  • аннотации конфигурации
  • демонстрация spring data jpa (генерация запроса по названию метода в рантайме)
Твои менторы
Подготовься к первой работе разработчиком вместе с карьерным центром JavaRush
01
Онлайн-консультация с HR-экспертом касаемо улучшения твоего резюме
02
Видеолекции о том, как устроен рынок труда, как создавать резюме на LinkedIn и портфолио на GitHub, где искать IT‑вакансии
03
Разбор разных этапов собеседования. Как подготовиться и чего ожидать от intro-звонка с HR, тестового задания или live-кодинга, team culture интервью, интервью с менеджером, оффера
04
Разбор «практики» интервью в топ-компаниях
05
Чеклист подготовки к собеседованиям
Ольга Жукова
Ольга Жукова
Head of HR в JavaRush
Андрей Латышев
Андрей Латышев
Ментор, Java Software Engineer с огромным опытом в разработке и менторингу по Java и карьерным вопросам
JavaRush — это: Emoji Fire
30К+
выпускников Graduated students
95%
нашли работу в IT Employed students
Где ты сможешь работать после завершения курса? В лучших компаниях. Так же, как и наши выпускники:
…и еще 700+ компаний во многих странах мира
Твое резюме после завершения курса:
Java‑разработчик
Должность
Java‑разработчик
Зарплата
$1000
Формат работы
Удаленно
Навыки и технологии
  • Java core
  • Multithreading
  • OOP, SOLID
  • Паттерни (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
Диплом JavaRush
Подтвердит твои глубокие знания в Java-разработке и будет веским аргументом при трудоустройстве.
Диплом JavaRush
Что говорят об обучении студенты и выпускники
Стоимость обучения
 
Цена сегодня
 
 
 
* Цены указаны с учетом суммы оплаты за весь период обучения
Хотите узнать больше? Оставьте заявку: менеджер свяжется с вами и ответит на все вопросы.
Вопросы и ответы

В Java-университете:

  • обучение проходит под руководством менторов
  • занятия проводятся в небольших группах
  • студенты пишут большие проекты-курсовые, получают опыт работы с передовыми технологиями Java, которые потом можно добавить в портфолио
  • есть регулярная поддержка в slack-чате, где Java-эксперты оперативно отвечают на любые вопросы по теории Java и решению задач
  • предоставляется помощь в трудоустройстве: карьерный центр JavaRush проверяет ваше резюме, подготавливает к поиску подходящих вакансий и прохождению интервью
  • По запросам студентов организовываются дополнительные факультативы и live-сессии для ответов на вопросы и прочее
JavaRush рассчитан как на людей с нулевыми знаниями в программировании, так и на специалистов, которые частично знают язык Java, но хотят усовершенствовать свои навыки или повторить материал.
Мы рекомендуем уделять минимум 10-12 часов в неделю для обучения в университете. Чем больше, тем лучше.
12 месяцев – оптимальный период времени изучения теории и наработки навыков для позиции Junior Java Developer. Вы шаг за шагом пройдете все необходимые уровни под руководством действующих разработчиков Java.
Обучение не требует свободного владения английским языком, но минимальные знания понадобятся, чтобы написать код, найти дополнительную информацию или в будущем научиться пользоваться программами на английском языке.
После прохождения курса у вас будут все шансы устроиться на работу в качестве Junior Java Developer, так как вы получите все необходимые знания и навыки для этой позиции. Карьерный центр JavaRush поможет правильно составить резюме и подготовит будущих специалистов к прохождению собеседования.
У нас есть возможность оплачивать курс частями. Сумму можно разбить на 6, 12 или 18 платежей.
Средние показатели зарплаты на рынке труда для Java Junior составляют до $1000, для Middle Java Developer – от $1400, а для Senior Java Developer – от $3000.

JavaRush — главный эксперт по изучению Java в мире на протяжении 9 лет. Java и подготовка IT‑специалистов, работающих с этим языком — наша ключевая специализация.

Программа нашего Университета разработана с учетом требований к начинающим Java-разработчикам на рынке труда и опыта тысяч выпускников JavaRush.

Менторы пошагово знакомят студентов с теоретической частью изучения Java и регулярно взаимодействуют в чатах для разрешения вопросов и недопонимания.

Курс наполнен множеством вариаций применения теории Java на практике для закрепления пройденного материала и использования в будущих проектах. Это 1200 задач с автоматической проверкой решения, мини-проекты по прохождению каждого модуля и финальный групповой проект, который можно добавить в свое портфолио.

Оплата за обучение может производится помесячно, что удобно для планирования своего бюджета.