Тільки до
-65%
Привіт, Андрію, який метод я маю використати тут? Є думки щодо цього?
Привіт, Наталко!
Групове навчання
Відеоуроки з менторами (записи надаються), практичні домашні завдання, написання проєктів на Java.
Диплом JavaRush
Навчимо розробці на Java, підтвердимо ваші знання дипломом, допоможемо підготуватися до співбесід.
Програма курсу
Навчання складається з п’яти модулів та написання групового проєкту.
Тривалість курсу – рік.
Java-програміст – популярна професія, яка відкриває для вас міжнародний ринок праці
Попит на Java-програмістів високий, і ці спеціалісти не обмежені локальним ринком: вони можуть обирати з безлічі вакансій по всьому світу.
Чудові зарплатні перспективи. Зарплатня Java-розробників – одна з найвищих в IT індустрії.
Java-програмісту є з чого обирати. Ця мова використовується для створення серверних додатків у сфері фінансових послуг, вебзастосунків, вбудованих систем, Big data, для написання Android-програм та наукових додатків.
Кар’єрний шлях Java‑розробника
Початок
Junior
Java Developer
$700-$1000
Від 1 року
Middle
Java Developer
$1400-$3000
Від 3 років
Senior
Java Developer
$4000+
Курс підійде вам, якщо ви:
Програмістами
не народжуються –
ними стають!
Новачок у програмуванні
Ви лише починаєте свій шлях у вивченні розробки. Заняття з досвідченим ментором та щотижневими “маленькими перемогами” допоможуть вам відстежувати результат навчання та стати впевненим спеціалістом.
Випускник технічних ВНЗ
У вас є база, але бракує практичного досвіду. На курсі ви отримаєте багато практики та напишете справжні проєкти. Завдяки курсу ви станете спеціалістом, який потрібен сучасному IT-ринку.
Хочете відновити навчання
Ви вже навчалися на онлайн-курсі JavaRush або опановували Java-розробку деінде, але не довели справу до кінця. Системне навчання з чіткою датою досягнення мети допоможе вам зберегти мотивацію.
Спеціаліст в IT, але не розробник
Ви знаєте вимоги в цій сфері, але у вас нема знань та досвіду в програмуванні. Ми допоможемо вам розвинути навички для реальної роботи та підготуємо до кар’єрного стрибка.
Тренуйтеся писати код у розумному симуляторі
Усі завдання перевіряються автоматично. Напишіть своє рішення, отримайте миттєвий відгук із перевіркою кожного етапу та пропозиціями щодо того, як ви можете покращити свій код.
Що входить до курсу “Java‑розробник за 12 місяців”
Регулярні заняття з менторами – досвідченими Java-розробниками
Два рази на тиждень проходять півторагодинні онлайн-лекції, протягом яких ментор пояснює нову теорію та дає персональні рекомендації учням.
Підтримка в чаті
Java-експерти нададуть вам оперативну відповідь в робочі дні на будь-які питання щодо теорії Java та вирішення задач у курсі.
Інтерактивний онлайн-тренажер
З першого заняття ви самостійно пишете програми: в браузері або професійному середовищі для розробки.
Допомога куратора
Робить ваше навчання комфортним, відповідає на організаційні питання, ділиться додатковими матеріалами та записами відеолекцій, якщо ви їх пропустили.
Допомога у працевлаштуванні
Кар’єрний центр JavaRush допоможе вам удосконалити резюме, підготує до пошуку релевантних вакансій та проходження співбесід.
Великі курсові проєкти
Ви отримуєте досвід роботи з важливими технологіями та вчитеся створювати “живі” проєкти, які можна використовувати або додати до свого портфоліо.
Диплом про закінчення курсу-професії
Завершений курс JavaRush (особливо – з поглибленою програмою з менторингом) – “знак якості” на думку IT-рекрутерів.
Детальна програма навчання
Включає в себе 5 модулів з лекціями, практикою та підсумковими проєктами – від новачка до рівня Junior-розробника – а також фінальний груповий проєкт.
Java Syntax

Вступне заняття. Команди та перша програма на 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. Підсумковий проєкт (криптоаналізатор)

Java Core

ООП: інкапсуляція, поліморфізм. Інтерфейси

  • інкапсуляція
  • поліморфізм
  • приведення типів
  • 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 professional

Збирання сміття та типи посилань у 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 (що завгодно як сервіс)

HTML-факультатив

  • що таке HTML
  • структура HTML-документа
  • теги та їхні атрибути
  • CSS, його синтаксис
  • класи та ідентифікатори
  • селектори

Підсумковий проєкт. Servlet-quest конкурс

  • Написати на сервлетах текстову покрокову гру-квест
Робота з базами даних. Hibernate

Вступ до баз даних. Встановлення СУБД (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
Spring + Spring Boot

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 (генерація запиту за назвою метода в рантаймі)
Як проходить навчання?
Ви можете зануритися в процес навчання та перевірити, як наставники діляться своїми знаннями
Ваші ментори та підтримка
Відгуки студентів
Ваше резюме
Резюме, яке ви зможете показати IT-рекрутерам після завершення курсу
посада
Java-розробник
Навички та технології
  • 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
 
Зарплатні очікування
$1000
Локація
Київ
Формат роботи
Віддалена робота
Диплом JavaRush
Підтвердить ваші глибокі знання в Java-розробці та буде вагомим аргументом при працевлаштуванні.

Питання та відповіді

Чим відрізняється класична підписка на курс JavaRush від Java-університету?

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

  • ви навчаєтеся під наглядом менторів
  • заняття проводяться у групах
  • студенти пишуть великі проєкти-курсові, отримують досвід роботи з провідними технологіями Java, які потім можна додати до резюме
  • є регулярна підтримка у slack-чаті, де Java-експерти оперативно відповідають на будь-які питання щодо теорії Java та вирішення задач
  • надається допомога у працевлаштуванні: кар’єрний центр JavaRush перевіряє ваше резюме, готує до пошуку релевантних вакансій та проходження інтерв’ю
  • за запитом від студентів організовуються додаткові факультативи та live-сесії для відповідей на різні питання
Які є вимоги до рівня знань студентів?
Курс розраховано як на людей з нульовими знаннями в програмуванні, так і на спеціалістів, які частково знають мову Java, хочуть удосконалити наявні навички або повторити матеріал.
Скільки годин на тиждень потрібно приділяти навчанню?
Ми рекомендуємо приділяти мінімум 10-12 годин в тиждень на навчання в Java-університеті. Чим більше, тим краще.
Чому курс триває 12 місяців?
12 місяців – оптимальний період для вивчення теорії та напрацювання навичок для позиції Junior Java Developer. Крок за кроком, ви пройдете всі необхідні рівні під наглядом досвідчених Java-розробників.
Чи потрібно знати англійську для навчання в Java-університеті?
Для навчання вам не потрібен вільний рівень володіння англійською, але мінімальні знання знадобляться, щоб написати код, знайти додаткову інформацію, а в майбутньому – навчитися користуватися програмами англійською.
Як саме ви допомагаєте з працевлаштуванням?
Після завершення курсу у вас будуть усі шанси влаштуватися на роботу як Junior Java Developer: ви отримаєте всі необхідні знання та навички для цієї позиції. Кар’єрний центр JavaRush допоможе правильно скласти резюме та підготує вас до проходження співбесіди.
Чи можна оплачувати навчання помісячно?
При оплаті частинами, вартість одного місяця навчання складає 2700 гривень.
На який рівень зарплати можна розраховувати після проходження курсу?
Середній рівень зарплатні на ринку праці для Java Junior складає до $1000, для Middle Java Developer – від $1400, а для Senior Java Developer – від $4000.
Чому мені варто обрати саме ваш курс?

JavaRush – головний експерт із вивчення Java в світі протягом 10 років. Java та підготовка IT-спеціалістів, які працюють з цією мовою, – наша ключова спеціалізація.

Програма Java-університету розроблена з урахуванням вимог до початківців у Java-розробці на сучасному ринку праці та досвіду тисяч випускників JavaRush. Ментори покроково знайомлять студентів із теоретичною частиною вивчення Java та регулярно взаємодіють з ними в чатах для вирішення будь-яких питань. Курс містить безліч варіацій застосування теорії Java на практиці, що допомагає закріпити новий матеріал. Це 1200 задач з автоматичною перевіркою рішення, міні-проєкти після завершення кожного модуля та фінальний груповий проєкт, який ви зможете додати в своє портфоліо.

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