Нам часто задают вопросы про программу обучения: почему мы предлагаем именно такую программу и почему считаем, что именно специалисты, изучившие темы, которые мы рассматриваем на курсе, будут востребованы на рынке.

При подготовке программы курса “Java — разработчик” мы, в первую очередь, отталкивались от требований работодателей на вакантные позиции уровня middle, начало senior на рынке. Мы сотрудничаем с большим количеством крупных IT-компаний: систематизация их требований к специалистам вместе с собственным опытом собеседований Java SE разработчиков позволили нам составить максимально объективную картину потребностей рынка труда и заключить соглашения с компаниями-партнерами о собеседовании лучших студентов на вакантные позиции.

Уложить в рамки пятимесячного курса все требования рынка практически невозможно, поэтому было принято решение очертить необходимую базу знаний и выделить ключевые навыки необходимые для повышения квалификации.

Мы пришли к выводу, что кроме core-java нужно обязательно учитывать специальности:

• специалист по веб серверам на java:
• специалист по работе с базами из java приложений;
• специалист по сетевому взаимодействию java приложений и т.д.

В результате у нас получилась таблица уровней знаний java и специальностей: колонки таблицы отражают специальности: core java, DB, web/net, devops; столбцы таблицы: уровни сложности. Программа курса «Разработчик Java» в Otus.ru основана на этой таблице.



Таким образом мы предполагаем, что к началу курса студенты уже знакомы с большей частью нижней-левой ячейки. Именно поэтому наших студентов ждет вступительное тестирование: для освоения тем курса необходимы уверенные базовые знания предмета. Времени для обучения азам не будет — программа очень плотная.

Программу обучения на первом месяце мы начинаем с настройки окружения и особенностей настройки в различных ОС, обзора работы систем сборки и управления зависимостями, а также с запуска приложений и параметров запуска. Эта тема крайне важна если вы собираетесь создавать приложения с нуля, скажем для своего стартапа. Впрочем, присоединившимся к существующему проекту тоже не помешает навык настройки среды и проекта. Некоторые темы из core java базового уровня мы все же включили в программу и рассматриваем их глубже, чем обычно принято в курсах по Java: мы рассматриваем содержимое jar файлов — метаданные и байткод, подробно разбираем загрузку классов на старте приложения и виды класслоадеров, внутреннее устройство контейнеров и эффективность их алгоритмов. Мы считаем, что глубокое понимание принципов работы JVM, работы с памятью и типами данных важно для специалиста, который претендует на позицию уровня middle, начало senior. На позициях такого уровня специалист должен применять самое эффективное решение из возможных, а для этого необходимо понимать какое решение наиболее эффективно.

Несколько раз в течение курса мы рассматриваем работу сборщиков мусора, организацию памяти и алгоритмы GC. GC это все, что у вас есть для освобождения памяти. Если вы не хотите гадать от чего у вас на сервере раз в час stop-the-world паузы по 5 минут — вы должны понимать какие GC использовать и как их настроить.

От настроек среды разработки и разбора базовых принципов мы переходим к настройкам запуска приложений и вопросам их тестирования. Мы разбираем популярные тестовые фреймворки, принципы их работы и способы использования. Может ли приложение без тестов работать правильно? Может, но только до первой правки. Мы подробно разбираем аннотации, создание своих аннотаций и обработку аннотаций в runtime, на стадии компиляции и при загрузке классов. Аннотации — очень важный элемент работы многих фреймворков: тестовых, для сервлетов и вебсокетов, для работы с базой. Даже инструмент для обработки аннотаций на стадии компиляции понимает настройку аннотациями.

После подробного разбора особенностей языка и платформы Java мы переходим к принципам проектирования приложений и паттернам — разбираем их как в ключе использования в Java, так и независимо от языка. Знание принципов проектирования и паттернов очень важно для разработчика, и, как бы странно это ни звучало, даже не столько для того, чтобы проектировать. Эти знания необходимы для повышения эффективности диалога между разработчиками — если оба знают паттерны, разговор об архитектуре будет проходить на одном языке.

Следующий блок тем курса посвящен взаимодействию с окружением: работе с файлами при помощи IO и NIO, работе с базами при помощи JDBC и ORM фреймворков и работе с особым типом клиента – веб браузером. К теме про файлы мы добавили сокеты, к теме про реляционные базы – NoSQL и кэширование, к теме про веб серверы – то как запуститься в контейнере и как встроить веб сервер к себе в приложение. Само по себе java-приложение (особенно сервер) мало интересно пользователю. Важно чтобы приложение могло отвечать на запросы и взаимодействовать с окружением. В этой теме мы разбираем наиболее распространенные решения задачи взаимодействия с наиболее востребованными системами и серверами.

Последними, и наиболее сложными темами курса, являются темы многопоточности, межпоточного и межпроцессного взаимодействия. Мы разбираем как создавать потоки, как управлять их жизненными циклом, как безопасно организовать взаимодействие потоков при помощи библиотеки и средствами JMM. Современные Java-приложения обычно распределены по серверам в сети и содержат в себе несколько десятков потоков, без понимания принципов работы многопоточных и распределенных систем невозможно сделать их надежными и безопасными.
Курс не включает темы Java EE. Почему? Потому что Java EE мы планируем рассказывать в отдельном курсе :)

Помимо теоретических знаний в программу включена практическая часть по каждому разделу. Для максимизации эффективности обучения студентам предлагается выполнять домашние задания (с подробным разбором и обсуждением). Именно практическая часть и работа над общим проектом хорошо закрепляют полученные во время лекций теоретические знания. Именно работу над проектом в дальнейшем можно будет предложить потенциальному работодателю в качестве портфолио.

Заинтересовались? Приходите к нам учиться. Новая группа Java начинает обучение уже 3 июня!
Поделиться с друзьями
-->

Комментарии (18)


  1. izzholtik
    25.05.2017 17:24

    Сайт абсолютно неинформативен.
    Сколько длится занятие? Какова стоимость месяца/курса? Каков формат обучения, просмотр записи лекции за денежку и отправка Д/З на мылко, или будет какая-то интерактивность? Есть ли примеры курсов, чтобы оценить качество материала?


    1. izzholtik
      25.05.2017 17:32
      +1

      Хотя, пожалуй, я передумал. Вёрстка на странице тестирования кривая настолько, что часть вопросов оказывается за границами экрана, и скроллбаров нет.


      1. Dmitry21
        26.05.2017 08:40
        +1

        скоро выкатим новый сайт. старый, факт, не очень.


  1. MaximusWork
    26.05.2017 12:50
    +1

    Даже шрифты глаз режут. Да и стоимость космос. Для крупных городов видимо. Сделайте 10000 за весь курс и будет всем хорошо.


    1. Dmitry21
      26.05.2017 12:51

      со шрифтами поиграем (с)
      а что касается стоимости, то как Вы себе видите себестоимость курса с живыми преподами? Конечно, мы можем пригласить каких-нибудь долдонов, которые вам начитают книжку по Java. А нормальному разрабу, который практикует, надо нормально и платить. Такие дела


      1. MaximusWork
        26.05.2017 13:25

        Ну ок, сделайте что-нибудь вроде распродажи. Пусть будет в половину стоимости. Думаю что «профит» финальный будет выше в разы.


        1. Dmitry21
          26.05.2017 13:41

          мы разыгрываем на каждую группу 4 бесплатных места. по поводу распродажи — нельзя делать большую группу, резко снижается качество обучения. поэтому здесь вопрос в балансе стоимости и размера группы, но мы еще ищем его. пока кажется, что 9500 в месяц — не много, скорее надо поднимать еще выше


      1. izzholtik
        26.05.2017 14:22

        Ну не знаю, тестирование было именно что для долдонов. Серьёзно, какой нормальный человек будет в одном выражении складывать числа в разных системах счисления и именовать переменные aB, bA, cD?


        1. Dmitry21
          26.05.2017 14:23
          -1

          вы не поверите )


    1. bitec
      01.06.2017 13:31
      +1

      Стоимость космос? 700 евро за 5 месяцев: Вы шутите? Вы посмотрите, сколько возьмут за такой курс за рубежом — будете приятно удивлены. Для примера — я преподаю в Ирландии курс java для новичков — за 52 часа (~2+ месяца) стоимость составляет 1200 евро. Причем курс был не фонтан, мне пришлось многое менять и добавлять, чтобы сделать его ближе к реальному рынку. Этот курс же охватывает все актуальные технологии и фреймворки, очень даже симпатично


      1. Dmitry21
        01.06.2017 13:39

        Я правильно понял, что Вы призываете поднять средний чек?


        1. bitec
          01.06.2017 13:43

          Никак нет, так как я не знаю глубину курса, его качество и т.д. Список технологий очень хороший и актуальный. Из Европы цена выглядит смешной, но равняться нужно на местный рынок.
          А еще у нас в России любят критиковать много, в Европе люди намного мягче. Вот и уважаемый Lany нашел недочеты. Я же помню, сколько я усилий потратил, чтобы привести древний курс в более-менее достойный и актуальный вид, это адский труд. Поэтому поддерживаю вас в ваших начинаниях :)


          1. Dmitry21
            01.06.2017 13:55

            большое спасибо. весьма неожиданно и приятно


  1. lany
    27.05.2017 11:53
    +2

    А что у вас в табличке всё как попало написано? Язык программирования Java пишется с большой буквы. CSV, XML — только большими буквами. Или JUnit, или по крайней мере junit, но никак не Junit. Правильно — IntelliJ IDEA, а не Intellij Idea. Я уж молчу про javasist вместо javassist. Понимаете, это не просто придирки. Если человек со всем этим каждый день работает, у него написание этих слов в подкорке отложилось, неправильный регистр ему сразу бьёт в глаза. Профессионал бы не сделал такую табличку. А так складывается ощущение, что как раз не нормальный разраб будет, а «долдон начитает книжку по Java».


    Кстати, javassist же устарел морально. Почему не ByteBuddy, например?


  1. coursar
    27.05.2017 12:47

    Замечательно прошёл день открытых дверей )) по присланным на почту ссылкам ни докладчик, ни кто-либо из организаторов так и не удосужился появиться. Саппорт молчит как партизаны )).


    1. Dmitry21
      27.05.2017 12:48

      ДОД идет сейчас, я его смотрю. Скиньте мне в личку ссылку, по которой вы пытаетесь зайти, пожалуйста


  1. webmascon
    04.06.2017 04:36

    Пройдите наши курсы за 700 евро и вы станете зарабатывать миллион баксов в месяц! Не упускайте шанс разбогатеть заплатив всего 700 евро. Уровень ваших доходов зависит толтко от вас! Становитесь нашим платиновым партнером и с каждого затащенного на наши курсы получайте процент!


  1. Pilat
    04.06.2017 05:37
    -1

    С чем я столкнулся при использоавнии java-кодеров.
    1) не понимают что такое транзакции и sequence. Это наследие mysql скорее всего.
    2) не пишут тесты, например не умеют ускорять таймер.
    3) не владеют jenkins.
    4) В линуксе не разбираются.
    5) В восторге от ORM.
    6) не пользуются swagger'ом


    В Вашем курсе это каким-то боком упомянуто, кроме, кажется, тестирования, но наверно в рамках общего ознакомления.