company_banner

Лекции Технотрека. 1 семестр. Разработка на Java (весна 2016)

    Продолжаем публикацию наших свежих образовательных курсов. За 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-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.
    • +32
    • 32,6k
    • 7

    Mail.Ru Group

    903,00

    Строим Интернет

    Поделиться публикацией

    Похожие публикации

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

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

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

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

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

            0
            зависит от того, где вы хотите получить место джуонира. в некоторых компаниях есть еще «стажер», поэтому точно вам скажут требования в вакансии или HR. А в общем случае еще нужно попрактиковаться на 1-2х домашних проектах, чтобы собез не завалить, когда нюансы начнут спрашивать (проверять глубину вашей базы)
            0
            В рамках стажировки в компании знаний будет недостаточно. Обязательно знание веб-разработки (лекции можно посмотреть тут или изучить курсы на степике), С++, тестированию, безопасности.
              0
              Хочу сказать персональное спасибо лектору Дмитрию Архангельскому за прекрасную подачу материала!

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое