bg-header-blue.svg
logo-cg-full-white.svg

Профессия
Java-разработчик
за 12 месяцев

Освойте программирование на Java от уровня “новичок” до Junior-специалиста на курсе от команды JavaRush — главного эксперта по Java в Рунете.

Записаться на курс
hex-orange-empty.svg
Скидка35%до 1 декабря
student.webparrows-red.svgcheese.svgstripes-blue.svg
  • sword.svg

    Формат обучения

    Видеоуроки с менторами, практические домашние задания, написание проектов на Java.

  • case.svg

    Трудоустройство

    Мы поможем вам в обучении и трудоустройстве.

  • calendar.svg

    15 января 2022

    Наш курс длится 12 месяцев.

Java-программист — востребованная профессия настоящего и будущего

Более

10 000

вакансий наhh.svg

  • 1

    Спрос на Java-программистов высокий и постоянно растет. Сейчас только на «HH» открыто более 10 000 вакансий в России.

  • 2

    Хорошие зарплатные перспективы. Зарплаты Java-разработчиков — одни из самых высоких в мире IT.

  • 3

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

Карьерный путь Java-разработчика

  • $600-$1000

    Java Junior

    Начало

  • $1400-$3000

    Middle Java Developer

    От 1 года

  • $3000+

    Senior Java Developer

    От 2 лет и более

Курс подойдет вам, если вы:

  • newbies-university.svg

    Новичок в программировании

    Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.

  • graduate.svg

    Выпускник технических ВУЗов

    У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.

  • renewers.svg

    Хотите возобновить обучение

    Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.

  • it-specialist.svg

    Специалист в IТ, но не разработчик

    Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.

    it-specialist.svg

Что включено в курс “Java-разработчик за 12 месяцев”

  • classes.svg

    Регулярные занятия с менторами — Senior Java-разработчиками

    2 раза в неделю проходит 1.5-часовая онлайн-лекция, на которой разбирается новая теория и даются персональные рекомендации ученикам.

  • big-projects.svg

    Большие проекты-курсовые

    Вы получаете опыт работы с передовыми технологиями и учитесь создавать «живые» проекты, которые можно использовать, или добавить в свое портфолио.

  • online-training.svg

    Интерактивный онлайн-тренажер

    C первого занятия вы самостоятельно пишете программы: в браузере или профессиональной среде разработки.

  • case.svg

    Помощь в трудоустройстве

    Карьерный центр JavaRush доведет до идеала ваше резюме, подготовит к поиску подходящих вакансий и прохождению интервью.

  • chat.svg

    Ежедневная поддержка в чате

    Java-эксперты оперативно ответят на любые вопросы по теории Java и решению задач.

  • certificate.svg

    Диплом об окончании курса-профессии

    Завершенный курс JavaRush — «знак качества» по мнению IT-рекрутеров.

  • lifesaver.svg

    Помощь куратора

    Делает ваше обучением комфортным: отвечает на организационные вопросы, делится дополнительными материалами и записями видеолекций, если вы их пропустили.

  • stripes-yellow.svg

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

Для вашего удобства мы тщательно прорабатываем каждый шаг обучения.

Модуль 1. Java Syntax

Модуль 2. Java Core

Модуль 3. Java professional

Модуль 4. Работа с базами данных. Hibernate.

Модуль 5. Spring + Spring Boot

  • 1. Вводное занятие. Команды и первая программа на Java
  • о java преимуществах, области применения
  • о JavaRush и Java-университете
  • структура программы, метод main
  • sout
  • рассказ о сайте и WebIDE
  • 2. Работа с переменными, типа int и String
  • сохранение текста в переменную, ее вывод в консоль
  • объявление и инициализация переменных String
  • комментарии в коде
  • элементарные математические операции с переменными типа int
  • инкремент, декремент
  • конкатенация
  • Integer.parseInt(), String.valueOf()
  • 3. Знакомство с типами и ввод с клавиатуры. Знакомство с IDEA
  • хранение примитивных переменных в памяти
  • хранения String переменных в памяти
  • byte, short, char, long, float, double
  • System.in, Scanner
  • методы Scanner
  • установка IDEA, скачивание проекта, скачивание JDK (версия 11)
  • установка плагина, рассказ о его функционале
  • 4. Условный оператор
  • if, if-else, if-else-if
  • блоки команд
  • вложенные блоки команд (вложенные if-ы)
  • Тип boolean
  • операторы сравнения, в т.ч. double
  • логические И, ИЛИ, НЕ
  • тернарний оператор
  • сравнение примитивов и String
  • 5. Факультатив
  • Подтягиваем новичков
  • Опытным рассказываем про фишки IDEA и т.п.
  • компиляция класса в байт-код из консоли, запуск программы
  • 6. Циклы
  • проблематика на примере задачи сделать что-то много раз
  • while
  • break, continue
  • for
  • do-while
  • сравнение разных циклов, выявление где какой лучше использовать
  • 7. Массивы
  • создание и заполнение массивов
  • обход массива
  • хранение массивов в памяти
  • 8. Двумерные массивы
  • двумерные массивы
  • зубчатые массивы
  • n-мерные массивы
  • 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, TreeMap
  • для каких задач лучше использовать какие коллекции
  • Collections
  • 19. Факультатив
  • LinkedList
  • ArrayList VS LinkedList
  • Queue
  • SortedMap
  • 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 Chain of responsibility
  • 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. ООП: инкапсуляция, полиморфизм. Интерфейсы
  • инкапсуляция
  • полиморфизм
  • приведение типов
  • this, super
  • интерфейсы
  • 2. ООП: Перегрузка, переопределение, Абстрактные классы
  • абстрактный класс
  • реализация абстрактных методов предка
  • перегрузка (overload) методов - одинаковые названия
  • переопределение (override) методов
  • 3. Stream API
  • анонимный внутренний класс
  • реализация абстрактных методов предка
  • лямбда выражения
  • функциональные интерфейсы
  • method reference
  • Stream
  • промежуточные и терминальные методы Stream-а
  • map-reduce
  • 4. ООП: композиция, агрегация, наследование
  • ассоциация: композиция и агрегация
  • наследование
  • 5. Интерфейсы: сравнение с абстрактным классом, множественное наследование
  • объявление поведения
  • дефолтные методы
  • реализация нескольких интерфейсов
  • проблема “ромба”
  • сравнение абстрактных классов и интерфейсов
  • 6. Приведение типов, instanceof switch-expression
  • instanceof
  • приведение типов (расширение и сужение)
  • switch-expression, Enum
  • 7. Особенности вызова конструкторов. Блок static
  • процесс создание объекта
  • порядок вызова конструкторов
  • порядок инициализации переменных
  • 8. Устройство Object: equals, hashCode, clone, toString(). Immutable objects
  • класс Object
  • методы класса Object
  • mutable & immutable objects
  • 9. Рекурсия
  • рекурсия
  • 10. Знакомство с нитями: Thread, Runnable, start, sleep
  • Thread
  • Runnable
  • start
  • sleep
  • interrupt
  • 11. Знакомство с нитями: synchronized, volatile, wait, notify.DeadLock
  • synchronized
  • volatile
  • join
  • wait, notify
  • проблема DeadLock
  • 12. Executors
  • ExecutorService
  • паттерн “фабричный метод”
  • добавление задач в сервис
  • Callable
  • получение результата: Future
  • остановка ExecutorService
  • FixedThreadPool
  • CachedThreadPool
  • ScheduledExecutorService
  • 13. ThreadLocal, Callable, Future
  • ThreadLocal контекст
  • ThreadLocalRandom
  • 14. Внутренние/Вложенные классы, примеры: Map.Entry
  • вложенные классы
  • внутренние классы
  • внутренние статические классы
  • внутренние анонимные классы
  • примеры разных типов классов из JDK
  • 15. Сериализация JSON/XML/YAML
  • java сериализация
  • форматы данных xml, json, yaml
  • jackson ObjectMapper
  • 16. Reflection API
  • зачем нужен Reflection API
  • получение данных: класса, метода, конструктора, поля
  • создание объекта
  • изменение внутреннего состояния объекта
  • прокси
  • RMI
  • 17. Аннотации в Java
  • декларативный и императивный подход написания кода
  • популярные аннотации: @Deprecated, @Override, @Nullable,...
  • создание аннотаций
  • обработка аннотаций в рантайме
  • 18. Факультатив
  • работа с Swing
  • 19. Sockets
  • Socket
  • ServerSocket
  • live coding: написание примитивного чата для группы
  • 20. Итоговый проект
  • 1. Сборка мусора и типы ссылок в Java
  • память JVM: stack и heap
  • CG: Serial, Parallel, CMS, G1, Shenandoah, ZGC
  • кеш
  • WeakReference, SoftReference, PhantomReference
  • 2. Паттерны проектирования
  • поведенческие: цепочка ответственности, команда, итератор, интерпретатор, посредник, хранитель, наблюдатель, состояние, стратегия, посетитель, шаблонный метод
  • порождающие: прототип, строитель, синглтон, абстрактная фабрика, фабричный метод
  • декоратор, компоновщик, фасад, приспособленец, прокси
  • 3. Методологии разработки
  • waterfall
  • v-model
  • incremental
  • RAD model
  • agile
  • iterative
  • spiral
  • 4. Основы Maven. Установка Maven, управление зависимостями, виды Maven-репозиториев, сборка Java-проекта
  • скачивание, прописывание переменных окружения
  • создание maven-проекта
  • зависимости
  • плагины
  • фазы (lifecycle)
  • профили
  • билд артефактов
  • 5. Опыт работы с Guava, Apache Commons Collections
  • Multimap, BiMap
  • Multiset
  • неизменяемые коллекции
  • Objects: hashCode, equals
  • Throwables
  • CollectionUtils
  • StringUtils
  • 6. JUnit
  • зачем нужно тестирование
  • типы тестирования
  • @Test
  • @Before, @After
  • @BeforeClass, @AfterClass
  • параметризованные тесты
  • 7. Mockito
  • моки
  • mock и spy
  • when и thenReturn
  • verify
  • any, once, times
  • 8. Логирование
  • зачем нужны логи
  • уровни логирования
  • slf4j
  • реализации: log4j, JUL, logback, common-loggins
  • аппендеры
  • 9. Устройство сети. Сетевая модель
  • топология сети
  • модель OSI
  • DNS
  • 10. Архитектура ПО. Клиент-серверная архитектура и ее составляющие, трехуровневая архитектура, архитектурные шаблоны
  • клиент-серверная архитектура
  • трехуровневая архитектура (клиент-сервер-БД)
  • критерии хорошей архитектуры: эффективность, гибкость, расширяемость, масштабируемость, удобство тестирования, читаемый и понятный код
  • модульная архитектура. декомпозиция
  • 11. Протоколы HTTP/HTTPS. Протокол передачи данных, HTTP-запросы и ответы, отличия HTTP и HTTPS. Cookies, Session
  • протоколы передачи данных в сети
  • http методы (GET, POST, PUT, …)
  • параметры запросов
  • тело запроса
  • хедеры
  • коды ответов
  • http VS https
  • http сессии
  • куки
  • http/2
  • 12. HttpClient
  • AJAX
  • java http client
  • синхронные и асинхронные запросы
  • задача на получение данных с нета, например погода
  • 13. Сервлеты, Java servlet API. Пишем простое веб-приложение
  • что такое сервлет
  • жизненный цикл
  • сервлет-контейнер Tomcat
  • doGet, doPost
  • redirect VS forward
  • фильтры
  • 14. Контейнеры сервлетов: Tomcat, развертывание приложения, настройка сервера
  • практика по предыдущей лекции
  • 15. Знакомство с MVC (Model-View-Controller). JSP
  • набор архитектурных принципов и идей MVC
  • схемы MVC
  • MVC в вебе
  • типичная ошибка: бизнес-логика в контроллере
  • MVC на примере задачи
  • JSP
  • 16. Веб-сервисы
  • что такое веб-сервис
  • протоколы http, jms, ftp,...
  • синхронные и асинхронные запросы
  • облачные сервисы: IaaS, PaaS, SaaS (что угодно as a service)
  • 17. HTML-факультатив
  • что такое html
  • структура html документа
  • теги и их атрибуты
  • css, его синтаксис
  • классы и идентификаторы
  • селекторы
  • 18. Итоговый проект. Servlet-quest конкурс
  • Написать на сервлетах текстовую пошаговую игру-квест
  • 1. Введение в базы данных. Установка СУБД (MySQL). ddl, dml
  • зачем нужны БД
  • реляционные и нереляционные БД
  • реляционная модель
  • CAP теорема
  • установка MySQL developer
  • группы SQL (ddl, dml, dcl, tcl)
  • 2. Типы данных. Создание таблицы. Написание insert, select, update, delete
  • создание схемы
  • создание таблиц
  • изменение структуры таблиц
  • insert
  • select
  • update
  • delete
  • 3. Выбор данных
  • select с условием
  • перечень выбираемых данных
  • subselect
  • join: left, right, inner, cross
  • group by и агрегатные функции
  • index
  • 4. Транзакции БД
  • концепции ACID (Atomicity, Consistency, Isolation, Durability)
  • управление транзакциями
  • уровни изоляции данных
  • 5. Проектирование баз данных
  • первая нормальная форма
  • вторая нормальная форма
  • третья нормальная форма
  • ключи (foreign key)
  • отношения: one to …, many to...
  • 6. JDBC 1
  • зачем нужен
  • основные интерфейсы
  • получение данных в приложении из БД
  • обновление и удаление данных в приложении из БДа
  • 7. JDBC 2
  • транзакции
  • уровни изоляции
  • обработка checker исключений
  • 8. ORM. Hibernate
  • нестыковки объектной и реляционной моделей данных
  • ORM (Hibernate), JPA
  • архитектура hibernate
  • конфигурация, основные аннотации
  • получение данных в приложении из БД
  • обновление и удаление данных в приложении из БД
  • Hibernate VS JDBC
  • 9. Hibernate. OneTo…, ManyTo..
  • отношения (работа с коллекциями)
  • 10. Наследование Entity for ORM
  • одна таблица для каждого класса
  • одна таблица для каждого класса с предками
  • единая таблица для всей иерархии классов
  • одна таблица для каждого класса с использованием соединений (join)
  • 11. Итоговый проект
  • hash for passwords
  • 1. IoC, DI. Spring. Components. Beans
  • почему Spring стал де-факто стандартом отрасли (преимущества)
  • принципы IoC и DI
  • бин
  • контекст (ApplicationContext)
  • AOP
  • 2. Spring modules general. Spring Web MVC
  • core (beans, core, context, SpEL)
  • data access
  • testing
  • web
  • integration
  • web mvc
  • 3. Проектирование REST API
  • оперирование ресурсами, а не методами
  • http методы
  • http коды ответов
  • ошибки
  • запрос коллекции
  • запрос количества объектов в коллекции
  • запрос объекта коллекции
  • добавление данных в коллекцию
  • редактирование
  • удаление
  • д.з. спроектировать 2-ранговый REST API
  • 4. App controller-service-dao
  • иерархия контекстов
  • servlet config
  • контроллер - прием запроса
  • сервис - бизнес логика
  • dao - хранение состояния
  • 5. Spring ORM. @Transaction
  • абстракция “транзакция”
  • декларативные транзакции
  • transaction propagation
  • преимущества ORM + Spring
  • настройка 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 (генерация запроса по названию метода в рантайме)
Записаться на курс

Наши преподаватели и поддержка

  • malik.webp
    Преподаватель
    Василий Малик
    Team lead команды программистов JavaRush. Эксперт backend-разработки и работы с базами данных.
  • kashnikov.webp
    Преподаватель
    Антон Кашников
    Java-программист JavaRush, Java-ментор. Занимается разработкой технологических решений для онлайн-обучения.
  • prishchepa.webp
    Поддержка
    Роман Прищепа
    Java-разработчик, имплементирует новые фичи в продукт, улучшает контент курса.
  • plynko.webp
    Поддержка
    Павел Плинько
    Java-разработчик. Занимается улучшением обучающего контента JavaRush.
  • semenenko.webp
    Поддержка
    Дмитрий Семененко
    Java-разработчик, автор задач и практических проектов в курсе JavaRush.

Ваше резюме

Резюме, которое вы сможете показать IT-рекрутерам после завершения курса

cv.webp

Должность

Java-разработчик

Профессиональные навыки

  • Java core
  • Java Streams
  • OOP, SOLID
  • Патерны (basic)
  • SQL (MySQL)
  • Spring
  • Hibernate
  • git/GitHub
  • Maven
  • REST API
  • Tomcat
  • Spring Boot
  • Интеграции
  • Алгоритмы
  • IDEA
  • JUnit
  • xml, json, yaml
  • Apach HTTP Client

Дополнительные навыки

  • MongoDB
  • HTML, CSS, JS (basic)
  • English (intermediate)
  • Docker
  • ELK
  • Jenkins
wallet.svg

Ожидания по з/п

от $1000

location.svg

Локация

Киев

schedule.svg

График работы

Удаленная работа

Диплом JavaRush

Подтвердит ваши глубокие знания Java-разработки и станет веским аргументом при трудоустройстве.

violet-angle.svg
Диплом
violet-x.svg
ты

успешно завершил(а) обучение по профессии

Java-разработчик

Курс включает

5

модулей

sign.svg

Антон Кашников

Куратор курса