Що нового?

Придбаний Профессия Java-разработчик за 12 месяцев [Javarush]

Інформація про покупку
Тип покупки: Складчина
Ціна: 40000 ГРН
Учасників: 0 з 9
Організатор: Відсутній
Статус: Набір учасників
Внесок: 4622.2 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
Профессия Java-разработчик за 12 месяцев от JavaRush.
Освойте программирование на Java от уровня “новичок” до Junior-специалиста на курсе от команды JavaRush — главного эксперта по Java в мире.



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


  • Новичок в программировании. Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
  • Выпускник технических ВУЗов. У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
  • Хотите возобновить обучение. Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
  • Специалист в IТ, но не разработчик.Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.
  • Новичок в программировании. Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
  • Выпускник технических ВУЗов. У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
  • Хотите возобновить обучение. Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
  • Специалист в IТ, но не разработчик.Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.
  • Новичок в программировании. Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
  • Выпускник технических ВУЗов. У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
  • Хотите возобновить обучение. Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
  • Специалист в IТ, но не разработчик.Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.
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,
  • @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 (генерация запроса по названию метода в рантайме)
  • Новичок в программировании. Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
  • Выпускник технических ВУЗов. У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
  • Хотите возобновить обучение. Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
  • Специалист в IТ, но не разработчик.Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.
  • Новичок в программировании. Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
  • Выпускник технических ВУЗов. У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
  • Хотите возобновить обучение. Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
  • Специалист в IТ, но не разработчик.Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.
  • Новичок в программировании. Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
  • Выпускник технических ВУЗов. У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
  • Хотите возобновить обучение. Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
  • Специалист в IТ, но не разработчик.Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.
  • Новичок в программировании. Вы только начинаете попробовать свои силы в разработке. Пошаговое обучение с опытным ментором, с еженедельными “маленькими победами” поможет вам отслеживать результат обучения и стать уверенным специалистом.
  • Выпускник технических ВУЗов. У вас есть база, но мало практического опыта. На курсе вы получите много практики и сами напишете настоящие проекты. Мы сделаем из вас специалиста, который нужен IТ-рынку.
  • Хотите возобновить обучение. Вы уже обучались на онлайн-курсе JavaRush или осваивали Java-разработку где-либо, но не довели дело до конца. Системное обучение с четкой датой достижения цели поможет вам сохранить мотивацию.
  • Специалист в IТ, но не разработчик.Вы знакомы с требованиями в этой сфере, но знаний и опыта в программировании нет. Мы поможем развить навыки для реальной работы и подготовим к карьерному рывку.

 
Угорі