Групове навчання
Відеоуроки з менторами, практичні домашні завдання, написання проектів на Java.
Диплом JavaRush
Навчимо Java-розробці, підтвердимо ваші знання дипломом, допоможемо підготуватися до співбесід.
Програма курсу
Навчання складається із 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 років і більше
Курс підійде вам, якщо ви:
Новачок у програмуванні
Ви тільки починаєте пробувати свої сили у розробці. Покрокове навчання із досвідченим ментором, з щотижневими “маленькими перемогами” допоможе вам відстежувати результат навчання та стати впевненим спеціалістом.
Випускник технічних ВНЗ
У вас є основа, але мало практичного досвіду. На курсі ви отримаєте багато практики та самі напишете справжні проекти. Ми зробимо з вас спеціаліста, який потрібен ІТ-ринку.
Бажаєте відновити навчання
Ви вже навчалися на онлайн-курсі JavaRush або опановували Java-розробку деінде, але не довели справу до кінця. Системне навчання з чіткою датою досягнення мети допоможе зберегти мотивацію.
Фахівець у ІТ,але не розробник
Ви знайомі з вимогами у цій сфері, але знань та досвіду у програмуванні не маєте. Ми допоможемо розвинути навички для реальної роботи та підготуємо до кар'єрного ривку.
Що включено до курсу “Java-розробник за 12 місяців”
Регулярні заняття з менторами - досвідченими Java-розробниками
2 рази на тиждень проходять півторагодинні онлайн-лекції, на яких розбирається нова теорія та даються персональні рекомендації учням.
Великі проєкти-курсові
Ви отримуєте досвід роботи з важливими технологіями та вчитеся створювати “живі” проекти, які можна використати, або додати до свого портфоліо.
Інтерактивний онлайн-тренажер
З першого заняття ви самостійно пишете програми: у браузері чи професійному середовищі розробки.
Допомога у працевлаштуванні
Кар'єрний центр JavaRush доведе до ідеалу ваше резюме, підготує до пошуку відповідних вакансій та проходження інтерв'ю.
Підтримка у чаті
Java-експерти оперативно дадуть відповідь у будні на будь-які питання з теорії Java та вирішення завдань.
Диплом про закінчення курсу-професії
Завершений курс JavaRush – «знак якості» на думку IT-рекрутерів.
Допомога куратора
Робить ваше навчання комфортним: відповідає на організаційні питання, ділиться додатковими матеріалами та записами відеолекцій, якщо ви їх пропустили.
Детальна програма навчання
Включає 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 (генерація запиту за назвою методу в рантаймі).
Наші викладачі і підтримка
- Куратор менторівВасиль МалікTeam lead команди програмістів JavaRush. Експерт з backend-розробки та роботи з базами даних.
- ВикладачАнтон КашніковJava-програміст JavaRush, Java-ментор. Працює над розробкою технологічних рішень для онлайн-навчання.
- ВикладачРоман ПрищепаJava-розробник, що імплементує нові фічі у продукт, покращує контент курсу.
- ПідтримкаПавло ПлінькоJava-розробник. Займається покращенням навчального контенту JavaRush.
- ПідтримкаДмитро СемененкоJava-розробник, автор завдань та практичних проектів у курсі JavaRush.
Ваше резюме
Резюме, яке ви зможете показати IT-рекрутерам після завершення курсу

Посада
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

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

Локація
Київ

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


успішно завершив(ла) навчання за професією
Java-розробник
Курс включає
5
модулів

Василь Малік
Куратор курсу
