Формат обучения
Видеоуроки с менторами, практические домашние задания, написание проектов на Java.
Трудоустройство
Мы поможем вам в обучении и трудоустройстве.
15 января 2022
Наш курс длится 12 месяцев.
Java-программист — востребованная профессия настоящего и будущего
Более
10 000
вакансий на
- 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 лет и более
Курс подойдет вам, если вы:
Новичок в программировании
Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
Выпускник технических ВУЗов
У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
Хотите возобновить обучение
Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
Специалист в IТ, но не разработчик
Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.
Что включено в курс “Java-разработчик за 12 месяцев”
Регулярные занятия с менторами — Senior Java-разработчиками
2 раза в неделю проходит 1.5-часовая онлайн-лекция, на которой разбирается новая теория и даются персональные рекомендации ученикам.
Большие проекты-курсовые
Вы получаете опыт работы с передовыми технологиями и учитесь создавать «живые» проекты, которые можно использовать, или добавить в свое портфолио.
Интерактивный онлайн-тренажер
C первого занятия вы самостоятельно пишете программы: в браузере или профессиональной среде разработки.
Помощь в трудоустройстве
Карьерный центр JavaRush доведет до идеала ваше резюме, подготовит к поиску подходящих вакансий и прохождению интервью.
Ежедневная поддержка в чате
Java-эксперты оперативно ответят на любые вопросы по теории Java и решению задач.
Диплом об окончании курса-профессии
Завершенный курс JavaRush — «знак качества» по мнению IT-рекрутеров.
Помощь куратора
Делает ваше обучением комфортным: отвечает на организационные вопросы, делится дополнительными материалами и записями видеолекций, если вы их пропустили.
Подробная программа обучения
Для вашего удобства мы тщательно прорабатываем каждый шаг обучения.
Модуль 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 (генерация запроса по названию метода в рантайме)
Наши преподаватели и поддержка
- ПреподавательВасилий МаликTeam lead команды программистов JavaRush. Эксперт backend-разработки и работы с базами данных.
- ПреподавательАнтон КашниковJava-программист JavaRush, Java-ментор. Занимается разработкой технологических решений для онлайн-обучения.
- ПоддержкаРоман ПрищепаJava-разработчик, имплементирует новые фичи в продукт, улучшает контент курса.
- ПоддержкаПавел ПлинькоJava-разработчик. Занимается улучшением обучающего контента JavaRush.
- ПоддержкаДмитрий СемененкоJava-разработчик, автор задач и практических проектов в курсе JavaRush.
Ваше резюме
Резюме, которое вы сможете показать IT-рекрутерам после завершения курса
Должность
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
Ожидания по з/п
от $1000
Локация
Киев
График работы
Удаленная работа
Диплом JavaRush
Подтвердит ваши глубокие знания Java-разработки и станет веским аргументом при трудоустройстве.
успешно завершил(а) обучение по профессии
Java-разработчик
Курс включает
5
модулей
Антон Кашников
Куратор курса