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

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

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

Спрос на Java-программистов высокий и постоянно растет. Сейчас только на «HH» открыто более 10 000 вакансий в России.
Хорошие зарплатные перспективы. Зарплаты Java-разработчиков — одни из самых высоких в мире IT.
Язык используется для создания серверных приложений в сфере финансовых услуг, веб-приложений, встраиваемых систем, Android-программ.

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

01.

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

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

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

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

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

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

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

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

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

Что включено в курс“Java-разработчик за 12 месяцев”
Регулярные занятия с менторами —
опытными Java-разработчиками
2 раза в неделю проходят полуторачасовые онлайн-лекции, на которых разбирается новая теория и даются персональные рекомендации ученикам.
Интерактивный онлайн-тренажер
C первого занятия вы самостоятельно пишете программы: в браузере или профессиональной среде разработки.
Поддержка в чате
Java-эксперты оперативно ответят по будням на любые вопросы по теории Java и решению задач.
Помощь куратора
Делает ваше обучение комфортным, отвечает на организационные вопросы, делится дополнительными материалами и записями видео лекций, если вы их пропустили.
Помощь в трудоустройстве
Карьерный центр доведет до идеала ваше резюме, подготовит к поиску подходящих вакансий и прохождению интервью.
Большие проекты-курсовые
Вы получаете опыт работы с важными технологиями и учитесь создавать “живые” проекты, которые можно использовать, или добавить в свое портфолио.
Диплом об окончании курса-профессии
Завершенный курс — “знак качества” по мнению IT-рекрутеров.

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

МОДУЛЬ 1. Java Syntax
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. Исключения
нормальное выполнение кода и ошибки в рантайме
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 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. Итоговый проект
МОДУЛЬ 2. Java Core
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. Итоговый проект
МОДУЛЬ 3. Java professional
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 конкурс
МОДУЛЬ 4. Работа с базами данных. Hibernate.
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
МОДУЛЬ 5. Spring + Spring Boot
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 (генерация запроса по названию метода в рантайме)

Обучим Вас профессии
настоящего и будущего

Чертков Никита
Чертков Никита
+7 (950) 733-90-74
nikitachertkov@gmail.com

Стоимость

1 месяц обучения

7900 ₽

3 месяца обучения

25000 ₽

4 месяца обучения

32500 ₽

6 месяцев обучения

49900 ₽

12 месяцев обучения

75000 ₽

6 месяцев стажировки

49900 ₽

карта Т-Банка
карта mastercard
карта maestro
карта visa
карта мир

Оплачивайте в один клик

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