Продолжаем публикацию наших свежих образовательных курсов. За 14 лекций Технотрека вы получите необходимые навыки и опыт в области разработки на Java, узнаете синтаксис и основные библиотеки языка, начнете понимать объектно-ориентированный подход, сможете декомпозировать сложные задачи.

Курс ведут Рустам Кильдиев, 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)


  1. zirix
    01.11.2016 22:45

    Посмотрел про базы данных.

    Я понимаю что нужно знать базовые вещи типа JDBC (и SQL) и вполне правильно что этому посвятили урок. Но мне кажется стоило на этом уроке упомянуть такие вещи как Hibernate и JPA.
    Ну и то что работать с голым JDBC, без серьезной на то причины, очень плохо.

    Я с перемоткой смотрел видео, извините если об этом упоминалось и я не заметил.


    1. nile1
      02.11.2016 01:52

      Я согласен, что Hibernate/JPA полезно знать новичку (хотя там тоже хватает граблей и подводных камней).
      Но утверждение, что использовать JDBC напрямую «очень плохо», тоже слишком категорично.

      Ни в одном из последних проектов, где я работал, не использовался Hibernate. Использовали легковесные обертки над JDBC — Spring JdbcTemplate, myBatis, JDBI. В итоге имеем полную функциональность SQL и понимание что происходит «под капотом», но без лишнего гемора с многословным JDBC.


  1. n-name
    02.11.2016 09:48

    Достаточно ли рассмотренных в видеокурсе знаний и навыков (+имеющиеся базовые понятия в программировании) чтобы получить место джуниора?


    1. gkislin
      02.11.2016 13:56
      +1

      Зависит от позиии и конкурса на нее. Лучше всего рассматривать курс как основу к изучениею Enterprise.
      См. https://habrahabr.ru/post/308104/