Admin
Administrator
- 52,885
- 12,234
[Skillbox] Профессия Java-разработчик (2021) (Михаил Овчинников, Даниил Пилипенко)
Научим программировать на самом востребованном языке.
В этом видео Java-разработчик и преподаватель курса Даниил Пилипенко расскажет, какими навыками вы овладеете в процессе обучения, а также приведёт примеры проектов, которые вы напишете на Java.
Для кого этот курс
Начинающих программистов
Возможно, вы уже имеете базовые навыки и представление о программировании и применяете эти знания в своих проектах. Наш курс даст вам углубленное знание универсального языка Java, и вы начнёте правильно структурировать код и соблюдать всеми «любимый» синтаксис для создания выдающихся проектов.
Новичков
Если вас привлекают современные технологии и высокая зарплата в сфере IT, то этот курс точно для вас. Вы научитесь писать код, узнаете, что легенда о том, что программист должен в совершенстве знать математику, — это выдумка, станете мыслить критически и сможете кодить на самом популярном языке в мире.
Что даёт профессия Java-разработчика
Интересная работа и хороший заработок.
В мире каждый день запускается множество сайтов, веб-разработчик зарабатывает от 90 000 рублей. На языке Java создаются самые разнообразные проекты. От современных технологий до научных проектов, от мобильных приложений до нейронных сетей.
Работа на самом востребованном языке.
Программы Java используются более 3 миллиардов устройств в мире. Вы сможете создавать код, который будут запускать по всей планете от Москвы до Кейптауна и Токио. Добро пожаловать в XXI век.
Свобода и мобильность.
Программист может работать удаленно. Всё, что ему нужно, это компьютер с подключением к интернету. Удалённая работа, свободной график - выбор многих, кто устал от офисной пятидневки. Вы можете работать в компаниях всего мира.
Программа
22 темы, разработанные на основе требований работодателей методологами-практиками программирования. Без «воды», только важная информация.
20 тематических модулей
240 онлайн-уроков
Основной блок
Вводный модуль
Какие бывают программы.
Где и для чего применяется Java.
Как выглядит программный код.
Установка среды разработки.
Исправляем готовое приложение.
Пишем консольное приложение.
Синтаксис языка
Что вообще бывает в коде.
Переменные в Java.
Boolean, операторы сравнения и условные операторы.
Циклы.
Разбираем сложный код.
Система контроля версий Git
Версии программного кода.
Установка Git.
Индекс и частичные коммиты.
Сравнение версий.
Отмена изменений и откат версий.
Репозитории и коллективная работа.
Ветки: создание и управление.
Слияние и разрешение конфликтов.
Полезные инструменты.
Правила работы с Git.
Объекты и классы
Понятие класса и объекта.
Метод, параметры, return.
Статические методы и переменные.
Константы и Enum.
Создание объектов и конструктор.
Инкапсуляция, геттеры и сеттеры.
Копирование объектов.
Внешние библиотеки классов.
Создание JAR-файлов.
Числа, строки, даты
Объекты и примитивы.
Зачем нужны объекты и примитивы.
Значения по умолчанию.
Boxing и unboxing.
Какие бывают числа.
Биты и байты.
Числа int и double.
Точность чисел с плавающей точкой.
Преобразование чисел разных типов.
Преобразование строки в число и обратно.
Какие бывают операции с числами.
Инкремент и декремент.
Класс Math.
Символы и кодировки.
Специальные символы.
Методы класса String.
Конкатенация строк.
Сравнение строк.
Регулярные выражения.
Календарь и метка времени.
Массивы и коллекции
Создание массивов.
Перебор элементов массивов.
Обход массивов в обратном порядке.
Массивы массивов.
Списки элементов.
Наборы уникальных элементов.
HashMap и TreeMap.
Поиск и сортировка.
Наследование и полиморфизм
Наследование классов Java.
Доступ к методам и переменным.
Абстрактные классы.
Интерфейсы.
Полиморфизм.
Интерфейс Comparable.
Интерфейс Comparator.
Краткая реализация интерфейсов.
Интерфейсы Map и Set.
Особенности ООП в Java
Лямбда-выражения.
Указатели на методы.
Метод forEach.
Способы получения Stream.
Sorted, max, min.
Map reduce.
Static- и default-методы в интерфейсах.
Generics.
Система сборки Maven.
Репозиторий Maven.
Аннотации и Lombok.
Исключения, отладка, тестирование и логирование
Возникновение исключений.
Отлов исключений.
Типы исключений.
Отладка приложений.
Виды тестирования ПО.
Модульное тестирование.
Логирование в консоли.
Логирование с помощью log4j2.
Работа с файлами и сетью
Класс File.
Чтение файлов с помощью FileInputStream.
Чтение файлов с помощью BufferedReader.
Чтение файлов с помощью класса Files.
Запись в файл.
Табличные файлы.
Структура XML и HTML-файлов.
Парсинг HTML-файлов.
Формат JSON и парсинг JSON-файлов.
Конфигурационные файлы.
Работа с MySQL в Java
Установка MySQL.
Подключение через JDBC.
Запросы без ResultSet.
Hibernate: подключение и настройка.
Hibernate: изменение данных в базе.
Связи ManyToOne и OneToMany.
Связь ManyToMany.
Hibernate query builder.
Ленивая загрузка данных.
Where и OrderBy.
HQL.
Многопоточность
Зачем нужна многопоточность.
Класс Thread.
Интерфейс Runnable.
Состояние гонки и критические секции.
Атомарные переменные.
Ключевое слово Volatile.
Synchronized-методы.
Synchronized-блоки.
Взаимодействие потоков — методы Wait и Notify.
Потокобезопасные классы.
Взаимная блокировка — Deadlock.
Интерфейс Callable.
Executors, Executor и ExecutorService.
Метод Shutdown.
ThreadPoolExecutor.
SheduledExecutorService.
Приостановка и прерывание потоков.
ForkJoinPool и RecursiveTask.
Разработка веб-приложений
Создание Maven-проекта.
Создание приложения на Spring Boot.
Создание первого контроллера.
Концепция MVC.
RESTful API и CRUD.
Создание контроллера.
Request, response и статусы ответов.
Подключение к БД и создание сущности.
Репозиторий и добавление элементов в БД.
Получение данных из БД.
Изменение и удаление данных в БД.
View и подключение шаблонов.
Параметры конфигурации.
Упаковка приложения в JAR-файл.
Нереляционные базы данных и очереди
Введение.
Основы Redis, простейшие команды.
Сложные структуры данных в Redis.
Сравнение Redis и MySQL.
Базовые возможности MongoDB.
Агрегация данных в MongoDB.
Производительность и оптимизация
Факторы производительности.
Преждевременная оптимизация.
Что нужно оптимизировать.
Длительность конкатенации строк.
Буферизация.
Два принципа оптимизации по времени.
Какую память нужно экономить.
Память можно не экономить.
Память и разные структуры данных.
Чем меньше запросов, тем лучше.
Multiinsert.
Утечка памяти.
Индексация и оптимизация запросов.
Кэширование запросов.
Хранение данных.
Распределённые хранилища и вычисления
Что такое большие данные.
Файловая система HDFS.
Практическая работа с HDFS.
Концепция MapReduce.
Фреймворк Apache Spark.
Установка Spark.
Запуск в Spark собственного приложения.
Запуск приложения обработки текста.
Модуль YARN.
Заключительный модуль
Desktop-приложения: создание интерфейса.
Desktop-приложения: события и их обработка.
Desktop-приложения: кастомизация интерфейса.
Android-приложения.
Язык программирования Scala.
Язык программирования Kotlin.
Реактивное программирование. RxJava.
Бонус-модуль. Паттерны проектирования
Что такое паттерны проектирования.
Паттерн Singleton.
Паттерн Factory.
Паттерн Abstract Factory.
Паттерн Decorator.
Паттерн Adapter.
Паттерн Bridge.
Паттерн Strategy.
Паттерн Observer.
Паттерн Iterator.
Другие паттерны.
Бонус-модуль. Введение в алгоритмы
Введение в алгоритмы
Зачем нужны алгоритмы
Рекурсивные алгоритмы
Временная сложность алгоритмов
Алгоритм бинарного поиска
Алгоритм сортировки пузырьком
Алгоритм сортировки QuickSort
Алгоритм сортировки MergeSort
Алгоритм поиска подстроки Рабина-Карпа
Алгоритм поиска подстроки Кнута-Морриса-Пратта
Алгоритм поиска подстроки Бойера-Мура
Бонус-модуль. Введение в структуры данных
Введение в структуры данных
Зачем нужны структуры данных
Хэш-таблицы
Очередь и стэк
Связные списки
Бинарное дерево
Суффиксное дерево
Графы
Бонус-модуль. Протокол HTTP
Протокол HTTP. Запрос и ответ
Методы HTTP-запросов GET и POST
Другие методы HTTP-запросов
Статус-коды HTTP-ответов
Адресация сетевых ресурсов
HTTP-заголовки
Версии протокола HTTP и HTTPS
Дополнительные модули
Универсальные знания программиста
Как стать первоклассным программистом
Вёрстка email-рассылок. Советы на реальных примерах
The state of soft skills
Как мы создавали карту развития для разработчиков
Как общаться по e-mail и эффективно работать с почтой?
Повышение своей эффективности
Спор о первом языке программирования
Саморазвитие: как я не усидел на двух стульях и нашел третий
Data-driven-подход к продуктивности - инсайты из данных миллиона людей
Протокол HTTP
Введение в алгоритмы
Английский для IT-специалистов
IT Resume and CV
Job interview: questions and answers
Teamwork
Workplace communication
Business letter
Software development
System concept development and SRS
Design
Development and Testing
Deployment and Maintenance
Скачать данный курс:
Войдите, чтобы увидеть контент