Продолжаем публикацию наших свежих образовательных курсов. За 14 лекций Технотрека вы получите необходимые навыки и опыт в области разработки на Java, узнаете синтаксис и основные библиотеки языка, начнете понимать объектно-ориентированный подход, сможете декомпозировать сложные задачи.
Курс ведут Рустам Кильдиев, Java/Scala-разработчик мобильного ПО, и Дмитрий Архангельский, инженер-разработчик в Одноклассниках.
Вводное занятие, на котором кратко дается описание всего курса. Основная задача курса — не просто научить синтаксису, а дать практические навыки и понимание основ. Курс выстроен так, чтобы, выполняя небольшие задачи, написать проект «Бэкенд к мессенджеру».
На втором занятии объясняются типы данных, операции над примитивами, ссылочные типы, пул строк и строковые литералы, массивы и другие конструкции языка.
Говорим о том, что такое класс и объект. Разбираемся в основах объектно-ориентированного подхода. Наследование и композиция. Рассматриваем, как я для чего используется инкапсуляция. Подробно разбираем раннее и позднее связывание (полиморфизм). В конце занятия рассмотрим основные принципы дизайна архитектуры приложения (SOLID).
Рассказывается про обработку ошибок в Java, исключения (сущность, которая хранит информацию об ошибке). Даются основы Reflection API, возможности пакета java.lang.reflect, рассматривается пример получения информации о классе в рантайме.
Типы коллекций, итератор, реализации списка, стек, интерфейс Map, ковариантность и контравариантность типов, выбор структуры данных, подходящей для задачи.
Лекция о многопоточности: зачем она нужна, где используется и почему она зачастую является источником ошибок.
Лекция посвящена нововведениям в Java 8, которые упрощают разработку. Появилось три ключевые особенности: lambda-функции, стримы (дают возможность писать в функциональном стиле) и optinal (специальная обертка над объектом, призванная устранить головную боль всех джавистов, под названием NullPointerException). Дается и объяснение поведения специфичных классов (анонимных, локальных и внутренних).
Мессенджер (который мы и должны разработать в итоге) сам по себе является прослойкой бизнес-логики. Весь смысл мессенджера в сообщениях, хранении истории, хранении юзер-листов, логинов и паролей. В лекции объясняется, как получить доступ к различным БД из Java-приложений.
Разговариваем про сокеты и сетевое взаимодействие. Рассматривается простой клиент-сервер, показана работа с кодом клиентской и серверной частей сокета.
Библиотека JUnit, подключение, примеры использования. Основы юнит-тестирования.
Продолжение шестой лекции. Блокировки потоков, схема условного ожидания, Java Memory Model (когда запись, сделанная одним потоком, будет видна другому потоку).
NIO — new input-output API. Лекция про API для работы с сетью, со стримами и файлами. Получение событий из канала, источники событий для селектора, селектор и буфер, отличия NIO от IO.
Говорим о качестве ПО, совокупности мероприятий для обеспечения уровня качества продукта, проверки соответствия между реальным и ожидаемым поведением программы.
Заключительная лекция, в которой коснемся темы устройства CPU, скорости работы с памятью, синхронизации данных между процессорами и кешами процессоров, объектов, описанных спецификацией Memory model.
Рекомендуемая литература и сайты:
Плейлист всех лекций находится по ссылке. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.
Курс ведут Рустам Кильдиев, Java/Scala-разработчик мобильного ПО, и Дмитрий Архангельский, инженер-разработчик в Одноклассниках.
Лекция 1. «Знакомство с платформой Java»
Вводное занятие, на котором кратко дается описание всего курса. Основная задача курса — не просто научить синтаксису, а дать практические навыки и понимание основ. Курс выстроен так, чтобы, выполняя небольшие задачи, написать проект «Бэкенд к мессенджеру».
Лекция 2. «Базовые конструкции языка»
На втором занятии объясняются типы данных, операции над примитивами, ссылочные типы, пул строк и строковые литералы, массивы и другие конструкции языка.
Лекция 3. «Объектно-ориентированное программирование в Java»
Говорим о том, что такое класс и объект. Разбираемся в основах объектно-ориентированного подхода. Наследование и композиция. Рассматриваем, как я для чего используется инкапсуляция. Подробно разбираем раннее и позднее связывание (полиморфизм). В конце занятия рассмотрим основные принципы дизайна архитектуры приложения (SOLID).
Лекция 4. «Исключения. Reflection API»
Рассказывается про обработку ошибок в Java, исключения (сущность, которая хранит информацию об ошибке). Даются основы Reflection API, возможности пакета java.lang.reflect, рассматривается пример получения информации о классе в рантайме.
Лекция 5. «Коллекции и параметризация»
Типы коллекций, итератор, реализации списка, стек, интерфейс Map, ковариантность и контравариантность типов, выбор структуры данных, подходящей для задачи.
Лекция 6. «Взаимодействие потоков»
Лекция о многопоточности: зачем она нужна, где используется и почему она зачастую является источником ошибок.
Лекция 7. «Внутренние и анонимные классы. Стримы и лямбда»
Лекция посвящена нововведениям в Java 8, которые упрощают разработку. Появилось три ключевые особенности: lambda-функции, стримы (дают возможность писать в функциональном стиле) и optinal (специальная обертка над объектом, призванная устранить головную боль всех джавистов, под названием NullPointerException). Дается и объяснение поведения специфичных классов (анонимных, локальных и внутренних).
Лекция 8. «Работа с базой данных»
Мессенджер (который мы и должны разработать в итоге) сам по себе является прослойкой бизнес-логики. Весь смысл мессенджера в сообщениях, хранении истории, хранении юзер-листов, логинов и паролей. В лекции объясняется, как получить доступ к различным БД из Java-приложений.
Лекция 9. «Сокеты, разбор задачи «Мессенджер»»
Разговариваем про сокеты и сетевое взаимодействие. Рассматривается простой клиент-сервер, показана работа с кодом клиентской и серверной частей сокета.
Лекция 10. «Основы тестирования»
Библиотека JUnit, подключение, примеры использования. Основы юнит-тестирования.
Лекция 11. «Потоки»
Продолжение шестой лекции. Блокировки потоков, схема условного ожидания, Java Memory Model (когда запись, сделанная одним потоком, будет видна другому потоку).
Лекция 12. «NIO»
NIO — new input-output API. Лекция про API для работы с сетью, со стримами и файлами. Получение событий из канала, источники событий для селектора, селектор и буфер, отличия NIO от IO.
Лекция 13. «Интеграционное тестирование»
Говорим о качестве ПО, совокупности мероприятий для обеспечения уровня качества продукта, проверки соответствия между реальным и ожидаемым поведением программы.
Лекция 14. «Memory model»
Заключительная лекция, в которой коснемся темы устройства CPU, скорости работы с памятью, синхронизации данных между процессорами и кешами процессоров, объектов, описанных спецификацией Memory model.
Рекомендуемая литература и сайты:
- Брюс Эккель — Философия Java (4th edition)
- Кей С. Хорстманн, Гари Корнелл, «Java. Библиотека профессионала, Том 1. Основы»,
- Кей С. Хорстманн, Гари Корнелл, «Java. Библиотека профессионала. Том 2. Расширенные средства программирования
- Joshua Bloch — Effective Java (2nd Edition) 2nd Edition
- skipy.ru
- ibm.com/developerworks/ru/java/
- habrahabr.ru/hub/java/
Плейлист всех лекций находится по ссылке. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.
Поделиться с друзьями
Комментарии (4)
n-name
02.11.2016 09:48Достаточно ли рассмотренных в видеокурсе знаний и навыков (+имеющиеся базовые понятия в программировании) чтобы получить место джуниора?
gkislin
02.11.2016 13:56+1Зависит от позиии и конкурса на нее. Лучше всего рассматривать курс как основу к изучениею Enterprise.
См. https://habrahabr.ru/post/308104/
zirix
Посмотрел про базы данных.
Я понимаю что нужно знать базовые вещи типа JDBC (и SQL) и вполне правильно что этому посвятили урок. Но мне кажется стоило на этом уроке упомянуть такие вещи как Hibernate и JPA.
Ну и то что работать с голым JDBC, без серьезной на то причины, очень плохо.
Я с перемоткой смотрел видео, извините если об этом упоминалось и я не заметил.
nile1
Я согласен, что Hibernate/JPA полезно знать новичку (хотя там тоже хватает граблей и подводных камней).
Но утверждение, что использовать JDBC напрямую «очень плохо», тоже слишком категорично.
Ни в одном из последних проектов, где я работал, не использовался Hibernate. Использовали легковесные обертки над JDBC — Spring JdbcTemplate, myBatis, JDBI. В итоге имеем полную функциональность SQL и понимание что происходит «под капотом», но без лишнего гемора с многословным JDBC.