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

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

Опануйте програмування на Java від рівня "новачок" до Junior-спеціаліста на курсі від команди JavaRush.

Записатися на курс
hex-orange-empty.svg
Знижка50%до 14 лютого
student.webparrows-red.svgcheese.svgstripes-blue.svg
  • sword.svg

    Групове навчання

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

  • certificate.svg

    Диплом JavaRush

    Навчимо Java-розробці, підтвердимо ваші знання дипломом, допоможемо підготуватися до співбесід.

  • calendar.svg

    14 лютого 2022

    Навчання складається із 5 модулів + написання групового проєкту, курс розрахований на рік.

Java-програміст – затребувана професія сьогодення та майбутнього

Більше

6 000

вакансій на DOU

  • 1

    Попит на Java-програмістів високий і невпинно зростає. Тільки на Dou за 2021 рік відкрито більше 6 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

    Випускник технічних ВНЗ

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

  • renewers.svg

    Бажаєте відновити навчання

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

  • it-specialist.svg

    Фахівець у ІТ,але не розробник

    Ви знайомі з вимогами у цій сфері, але знань та досвіду у програмуванні не маєте. Ми допоможемо розвинути навички для реальної роботи та підготуємо до кар'єрного ривку.

    it-specialist.svg

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

  • classes.svg

    Регулярні заняття з менторами - досвідченими Java-розробниками

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

  • big-projects.svg

    Великі проєкти-курсові

    Ви отримуєте досвід роботи з важливими технологіями та вчитеся створювати “живі” проекти, які можна використати, або додати до свого портфоліо.

  • online-training.svg

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

    З першого заняття ви самостійно пишете програми: у браузері чи професійному середовищі розробки.

  • case.svg

    Допомога у працевлаштуванні

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

  • chat.svg

    Підтримка у чаті

    Java-експерти оперативно дадуть відповідь у будні на будь-які питання з теорії Java та вирішення завдань.

  • certificate.svg

    Диплом про закінчення курсу-професії

    Завершений курс JavaRush – «знак якості» на думку IT-рекрутерів.

  • lifesaver.svg

    Допомога куратора

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

  • stripes-yellow.svg

Детальна програма навчання

Включає 5 модулів з лекціями, практикою та підсумковими проєктами: від новачка до рівня Junior-розробника.

Модуль 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;
  • для яких завдань краще використовувати певні колекції;
  • Collections.
  • 19. Факультатив
  • LinkedList;
  • ArrayList VS LinkedList;
  • Queue;
  • SortedMap, TreeMap.
  • 20. Singleton, Enum, switch
  • навіщо потрібні перерахування;
  • оголошення Enum;
  • Enum – найкращий синглтон;
  • switch.
  • 21. Винятки. Частина 1:
  • нормальне виконання коду та помилки в рантаймі;
  • try-catch;
  • ієрархія винятків;
  • multicatch;
  • throw;
  • checked та unchecked винятки;
  • throws.
  • 22. Винятки. Частина 2:
  • 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. ООП: інкапсуляція, поліморфізм. Інтерфейси:
  • інкапсуляція
  • поліморфізм;
  • приведення типів;
  • 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
  • Multithreading
  • OOP
  • SOLID
  • Патерни (GoF)
  • Maven SQL (MySQL)
  • JDBC
  • Servlets, JSP
  • Tomcat
  • Hibernate
  • JUnit, Mockito
  • log4j
  • Проектування REST API
  • Spring Boot

Інше:

  • Windows
  • Linux
  • IDEA
  • GitHub
  • scrum
  • HTML
  • CSS
wallet.svg

Очікування щодо з/п

від $1000

location.svg

Локація

Київ

schedule.svg

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

Віддалена робота

Диплом JavaRush

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

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

успішно завершив(ла) навчання за професією

Java-розробник

Курс включає

5

модулів

sign.svg

Василь Малік

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