Курсы программирования на Java, онлайн курс по Java разработке, курсы по Java, курсы «Джава». Запишись на курсы программирования Java, пройди курсы Java и получи новые навыки! | OTUS

Курсы

Курсы в разработке Подготовительные курсы
Работа в компаниях Компаниям Блог +7 499 110-61-65

Разработчик Java

Перед вами первый курс OTUS. Он стартовал в апреле 2017 года. С тех пор идет с неизменным успехом и на настоящий момент насчитывает более 10 запусков.
Подойдет ли мне этот курс?

Длительность

6 месяцев

Начало

27 декабря

Общая стоимость

60 000 ₽

В месяц

12 500 ₽

В кредит:

12500 ₽ в месяц

Хочу дешевле
Общая стоимость
60 000 ₽
В месяц: 12 500 ₽
В кредит: 60000 ₽
в месяц
Продолжительность
6 месяцев, 4 академ. часа в неделю
Начало занятий
27 декабря
Что даст вам этот курс

Курс обеспечивает глубокое погружение в практику программирования на Java и за 5 месяцев позволяет прокачать свой уровень с Junior до Middle разработчика.

Цель курса

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

Кому адресован курс


  • Программисты на Java с опытом разработки от 1 года
  • Программисты на других языках с опытом работы от 3 лет (приветствуются любые языки ООП)

Чему научимся

  • Разработке серверных приложений на Java.
  • Пониманию библиотеки Java, особенностей языка и платформы Java.
  • Основным подходам программиста к проектированию приложений, работе с базами, файлами, веб-фронтендом.
  • Владению низкоуровневыми и высокоуровневыми подходами к созданию многопоточных и многопроцессных приложений.


Продвинутый курс по программированию на Java для Junior разработчиков

Изучаются такие темы как технологии JMH, ASM, classLoader, класс sun.misc.Unsafe

Большое количество практических заданий

Более 400 успешных выпускников курса

Создание web-сервисов на Java и Spring. День 1, 12 декабря в 20:00
- Узнаете что такое Spring и IoC
- Как создать простые приложения
- Как получить данные со стороннего сервиса
Ведет
Юрий
Дворжецкий
Предыдущий открытый вебинар
Создание web-сервисов на Java и Spring. День 2, 13 декабря в 20:00
- Поймете как использовать всю мощь Java
- Научитесь настраивать GC
- Изучите то, как сделать правильное логирование
Сергей
Петрелевич
Предыдущий открытый вебинар
"Написание хорошего кода — базовое умение грамотного разработчика. Но настоящего профессионала отличает желание узнавать новое, доводить решения до совершенства и делиться приобретенными знаниями с коллегами".
Виталий Чибриков
Преподаватель курса
"Написание хорошего кода — базовое умение грамотного разработчика. Но настоящего профессионала отличает желание узнавать новое, доводить решения до совершенства и делиться приобретенными знаниями с коллегами".
Виталий Чибриков
Преподаватель курса
Преподаватели
Вячеслав Лапин
Виталий Чибриков
Генеральный директор «OTUS. Онлайн-образование»
Вадим Тисов
Ведущий разработчик в QIWI
Виталий Куценко
Сергей Петрелевич
Raiffeisen Bank, Capital Markets
Павел Стрекалов
Lead Software Developer в компании "xCritical Software" в г. Санкт-Петербург. Образование: ВМиК МГУ, Горный институт.

Опыт работы в ведущих компаниях IT — Kaspersky Lab, 1C, Крок, AT-Consulting, Luxoft, «Ланит». Внедренец инноваций и лучших практик в «Кровавый Энтерпрайз» — исследует новые технологии и «продаёт» их на крупные IT-проекты, делая их более гибкими, надёжными, быстрыми и современными, не потеряв при этом в функциональности.

Более 12-ти лет в IT, более 3 лет опыта управления командами разработчиков.

Преподаватель
Выпускник МФТИ 2004-го года по специальности «Инженер-математик». Профессиональный опыт: 12 лет программирования на Java, C++, C#, JavaScript, PHP, Python. Участник проектов различных уровней сложности: от стартапов на 3 человека/полгода до бизнес-приложений на 200 человек/4 года. 8 лет разработки серверов для клиентских игр на Java. Эксперт в разработке облачных приложений, автоматизации процессов разработки и тестирования.

Разрабатывал и запускал проекты MMORMGs: «Allods Online» и «Skyforge».

Закончил магистратуру МФТИ факультет ФИВТ. Занимается разработкой нового платежного процессинга на основе микросервисной архитектуры на Kotlin, Spring Boot, Spring Cloud, Kubernetes.

Интересы:
разработка распределенных систем, DevOps

Компании:
Сбербанк-Технологии, Альфа-Лаборатория

Сертификаты:
Oracle Certified Professional, Professional Scrum Master level 1

Преподаватель
В 2004 году окончил химический факультет МГУ им М. В. Ломоносова, в 2005 — вечерний факультет МИФИ по специальности «Инженер-системотехник».

Программировать начал ещё в школе, а с 2003 года занимается этим профессионально. Сначала специализировался на Delphi, но в 2007 переключился на Java.

Участвовал в проектах разных размеров и нагрузки: от небольших на несколько рабочих мест одного предприятия до более значительных, связанных с обработкой потоков данных крупнейших банков мира. Работал в таких компаниях, как Diasoft, 1C, Luxoft, «Росгосстрах», «Сбербанк».

Адепт идеи о максимальной автоматизации процессов разработки, тестирования и сопровождения ПО. TeamLead по должности и по духу.

Преподаватель
В отрасли с 2003 года. Программировать начал со времен ZX-Spectrum. 8 лет в разработке банковских процессинговых систем пластиковых карт.

Занимался разработкой "коробочных" систем для внешних заказчиков, разработкой систем для внутренних заказчиков. В 2003 году с отличием закончил Магнитогорский Государственный Институт им. Носова, специальность — промышленная электроника.

Компании:
Магнитогорский Металлургический Комбинат, Компас+, Borlas, СМП Банк.

Интересы:
JavaScript, многопоточное программирование, сборщики мусора в Java.

Сдал экзамен Oracle по Java:
Oracle Certified Professional, Java SE 8 Programmer

Руководитель программы
Ведущий специалист в АО "Гринатом".
Более 10 лет опыта профессиональной разработки.
Основной стек: .NET / C#, Java, MS SQL Server.

Full stack разработка систем для внутренних и внешних заказчиков (от анализа требований до реализации, эксплуатации и технической поддержки).

Закончил в 2006 году Московский институт электронной техники (МИЭТ) по специальности "Вычислительные машины комплексы системы и сети".

Преподаватель
Вячеслав
Лапин
Виталий
Чибриков
Вадим
Тисов
Виталий
Куценко
Сергей
Петрелевич
Павел
Стрекалов
Преподаватели
Вячеслав Лапин
Lead Software Developer в компании "xCritical Software" в г. Санкт-Петербург. Образование: ВМиК МГУ, Горный институт.

Опыт работы в ведущих компаниях IT — Kaspersky Lab, 1C, Крок, AT-Consulting, Luxoft, «Ланит». Внедренец инноваций и лучших практик в «Кровавый Энтерпрайз» — исследует новые технологии и «продаёт» их на крупные IT-проекты, делая их более гибкими, надёжными, быстрыми и современными, не потеряв при этом в функциональности.

Более 12-ти лет в IT, более 3 лет опыта управления командами разработчиков.

Преподаватель
Виталий Чибриков
Генеральный директор «OTUS. Онлайн-образование»
Выпускник МФТИ 2004-го года по специальности «Инженер-математик». Профессиональный опыт: 12 лет программирования на Java, C++, C#, JavaScript, PHP, Python. Участник проектов различных уровней сложности: от стартапов на 3 человека/полгода до бизнес-приложений на 200 человек/4 года. 8 лет разработки серверов для клиентских игр на Java. Эксперт в разработке облачных приложений, автоматизации процессов разработки и тестирования.

Разрабатывал и запускал проекты MMORMGs: «Allods Online» и «Skyforge».

Вадим Тисов
Ведущий разработчик в QIWI
Закончил магистратуру МФТИ факультет ФИВТ. Занимается разработкой нового платежного процессинга на основе микросервисной архитектуры на Kotlin, Spring Boot, Spring Cloud, Kubernetes.

Интересы:
разработка распределенных систем, DevOps

Компании:
Сбербанк-Технологии, Альфа-Лаборатория

Сертификаты:
Oracle Certified Professional, Professional Scrum Master level 1

Преподаватель
Виталий Куценко
В 2004 году окончил химический факультет МГУ им М. В. Ломоносова, в 2005 — вечерний факультет МИФИ по специальности «Инженер-системотехник».

Программировать начал ещё в школе, а с 2003 года занимается этим профессионально. Сначала специализировался на Delphi, но в 2007 переключился на Java.

Участвовал в проектах разных размеров и нагрузки: от небольших на несколько рабочих мест одного предприятия до более значительных, связанных с обработкой потоков данных крупнейших банков мира. Работал в таких компаниях, как Diasoft, 1C, Luxoft, «Росгосстрах», «Сбербанк».

Адепт идеи о максимальной автоматизации процессов разработки, тестирования и сопровождения ПО. TeamLead по должности и по духу.

Преподаватель
Сергей Петрелевич
Raiffeisen Bank, Capital Markets
В отрасли с 2003 года. Программировать начал со времен ZX-Spectrum. 8 лет в разработке банковских процессинговых систем пластиковых карт.

Занимался разработкой "коробочных" систем для внешних заказчиков, разработкой систем для внутренних заказчиков. В 2003 году с отличием закончил Магнитогорский Государственный Институт им. Носова, специальность — промышленная электроника.

Компании:
Магнитогорский Металлургический Комбинат, Компас+, Borlas, СМП Банк.

Интересы:
JavaScript, многопоточное программирование, сборщики мусора в Java.

Сдал экзамен Oracle по Java:
Oracle Certified Professional, Java SE 8 Programmer

Руководитель программы
Павел Стрекалов
Ведущий специалист в АО "Гринатом".
Более 10 лет опыта профессиональной разработки.
Основной стек: .NET / C#, Java, MS SQL Server.

Full stack разработка систем для внутренних и внешних заказчиков (от анализа требований до реализации, эксплуатации и технической поддержки).

Закончил в 2006 году Московский институт электронной техники (МИЭТ) по специальности "Вычислительные машины комплексы системы и сети".

Преподаватель
Отзывы
16
Сергей
Торчиков
Для меня принять решение об обучении на курсе по языку Java было довольно просто, достаточно было посмотреть на преподавателя и структуру курса, также огромным плюсом было увидеть в партнерах Otus.ru компанию, в которой я хотел работать. Очень важно, что перед началом курса проводиться День открытых дверей, где можно лично задать вопросы по курсу и более подробно ознакомиться с программой. Я бы хотел по порядку разобрать основные составляющие курса.

Программа.

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

Преподаватель.

Не знаю, стоит ли указывать тут сторонние обучающие ресурсы, но скажем так с лекциями Виталия я знаком уже давно. Всегда нравилось, что Виталий приводит много примеров из жизни. Лично для меня это огромная проблема в программировании, я могу что-то выучить, понимать как это работает, но абсолютно не знать, где это применить Все объяснения доходчивы и понятны. Постоянно спрашивает, о чем бы хотели дополнительно послушать ученики. Примеры с кодом есть на каждую тему и мы даже несколько раз ставили эксперименты прямо на лекциях, пытаясь что-то сломать, было довольно интересно.

Команда OTUS

Тут много я не скажу, так как особо и не сталкивались. Но из личных наблюдений, все вопросы в общем чате для программистов решались и довольно в короткие сроки. Команда очень лояльна к ученикам и идет на встречу. Так что, если есть какие-то вопросы или сомнения всегда можно обращаться.

Минусы.

Те минусы, которые я могу отметь, насколько мне известно, уже исправлены. Например, платформа. Первые лекции были довольно не стабильны, но команда Otus.ru довольно быстро нашла аналог, который устроил всех. Все программисты относились к этому с пониманием, т.к. мы были первым набором, так сказать первопроходцами

Второй минус даже вовсе и не минус, а скорее неудобство – один преподаватель. Будущим группам повезло, у них, насколько я знаю, будет два преподавателя. В основном это относиться к проверке домашнего задания, на проверку уделялось 48 часов и, если есть замечания к решению, есть шанс не сдать в срок, т.к. исправленную версию вновь отправляешь на проверку. Хотя к этому относились также лояльно и никто не ругался, тут скорее проблема в моем перфекционизме, нужно все сдать в срок

Результат.

Через несколько дней я выхожу на работу в Москве именно в ту компанию, где хотел работать. Все интервью организовывали сотрудники Otus, так что результатом я конечно доволен На собеседованиях кстати пригодились те самые знания о сборщиках мусора, о которых я говорил ранее. Так что хотелось бы поблагодарить еще раз всю команду Otus.ru за профессионализм и работу, а также всех ребят с курса за интересные обсуждения и за то, что делились своими знаниями. Я продолжу следить за курсами и если будет что-то интересное для меня, обязательно приду снова!
Читать целиком
Николай
Добровольский
На курс записался в большей степени потому, что преподавателем был объявлен Виталий Чибриков. Знал преподавателя по другим курсам, плюс ранее прослушаны записи лекций в МГТУ им. Баумана в рамках проекта ТЕХНОПАРК (Москва). Поэтому сразу решил записаться в группу.

Курс очень понравился. Впечатление очень положительное. Был освящен достаточно большой список тем. Некоторые моменты до курса были не очень хорошо знакомы (например тема про GC - были теоретические знания, но без практических навыков).

Понравилась сама подача материала, затрагиваемые темы рассматривались без отрыва от реальной жизни, сопровождались конкретными примерами из реальных проектов. Множество интересных примеров от преподавателя.

Курс помог не только систематизировать уже имеющиеся знания, а также приобрести новые. Особенно понравились темы про GC, JVM, многопоточность в Java, межпроцессное взаимодействие в Java.
После окончания курса гарантированы приглашения на собеседования, так что это огромный плюс)
На мой взгляд было бы здорово в рамках курса более подробно рассмотреть Spring, но основным направлением курса изначально было заявлено Java Core, поэтому за этой темой возможно стоит записываться на курс по Java EE.
Читать целиком
Антон
Матвеев
Курс OTUS "Разработчик Java" был очень полезен для меня, не имевшего ранее опыта коммерческой Java-разработки. Именно он помог собрать воедино знания, полученные посредством самообучения и других курсов. В отличие от других курсов был упор на формирование понимания процесса: как работает та или иная технология и какие задачи решает, а не на общее описание ее возможностей. Домашние задания подобраны таким образом, что заставляют проявить творчество и перечитать немало полезной информации. Особенно интересными были задания: написать json сериализатор, упрощенный тестовый фреймворк, свою маленькую orm, сервер обмена сообщения между бд и фронтэндами. Хотя домашние задания, может быть за исключением первых, совсем не укладывались в заявленное время на домашнюю работу по 4 часа в неделю - для того чтобы успеть сделать последние 2 задания в курсе мне пришлось брать отпуск.

Конечно основную ценность курс представляет из-за преподавателя. Очень качественное объяснение: не помню, чтобы хоть какой-то заданный по теме вопрос остался без ответа, также очень приятно и полезно было получать от Виталия не только информацию о недоработках в ДЗ, но и предложения об их возможной доработке уже за рамками задания.

Ну и, конечно, очень важна возможность пройти собеседования в крупные компании. Каждое такое собеседование это очень интересный опыт сам по себе, независимо от результата. Лично я нашел себе работу и очень рад что не пожалел денег на обучение!
Читать целиком
Алексей
Маянов
До поступления на курс я программировал на Java от случаю к случаю. Для меня курс во многом стал отправной точкой в систематизации и расширении собственных, уже имеющихся знаний. С абсолютной уверенностью могу сказать: после окончания обучения мои навыки использования Java перешли на новый уровень, в первую очередь этим я благодарен авторам курса.

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

По моим ощущениям, проектный месяц получился достаточно скомканным: не удалось получить достаточной обратной связи по проекту. Думаю причина заключается в том, что у многих учеников скопились долги, и весь преподавательский ресурс ушёл на их проверку. Я считаю, что на последнем месяце преподавателям стоит отдавать приоритет работе с проектами, иначе получается, что ученики, которые сдали все задания вовремя и перешли к работе с проектами, стали заложниками долгов остальных учеников.

Отдельно хочу отметить, что вся серия пройденных интервью, на которые я попал, дала мне определенный положительный опыт.
Читать целиком
Павел
Стрекалов
В целом впечатление о курсе положительное, курс был очень полезен для меня.

Как недостаток (или особенность) хотел бы отметить то, что чувствовалась изолированность от группы. При выполнении заданий казалось, что ты один на один с преподавателем (чат в slack не очень спасал в этом плане). Мне кажется, что общение между студентами через code review дало бы хороший эффект. Сначала преподаватель проверяет задание, принимает его, а потом студент должен еще посмотреть, выдать комментарии/замечания по двум-трем выполненным и принятым работам.
Также Виталий упоминал, что хорошо бы делать "выставку интересных работ" - тоже, думаю, что стоит, но не понятно в каком формате, т.к. набираются долги за всё время курса и некоторые задания сдаются в конце.

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

О преподавателе хочется отметить - грамотная речь. Вроде незначительно и само собой разумеется, но в русскоязычном Java-мире есть технически грамотные личности, выступления которых порой невозможно слушать из-за обилия паразитических слов. А вебинары OTUS я мог спокойно смотреть, находясь с ребенком в одной комнате, и не боясь, что Виталий выругается или скажет какое-нибудь "крепкое" слово.
Читать целиком
Михаил
Пыльцин
Здравствуйте. Я уже много раз благодарил за курсы, но хочу это сделать еще раз - многие курсы, что сейчас есть в рунете, довольно поверхностны и дают только основы. Ваши курсы как раз дают более глубокие знания по программированию. Сам курс очень интересен, но мне не хватило домашних заданий - нет, сами задания интересны и их довольно много, особенно последнее, но, к сожалению, они не охватывают весь материал. Виталий - высококлассный специалист и преподаватель, думаю, ради него многие и записались на курсы. Честно, устроенные собеседования, хоть и были объявлены, стали сюрпризом, так как не верилось, что такое возможно. Часть собеседований и выполнение тестового задания сорвалось по личным обстоятельствам. Сейчас прохожу несколько финальных собеседований - есть маленький шанс получить первую работу в Москве в сфере программирования. Хотелось бы более углубленные темы по Spring/Spring MVC/Spring Boot/Hibernate/Сокеты/Обмен данных по сети или интернету/более больше данных по ConcurrentCollection. А так - буду советовать Ваши курсы. Очень хочется отдельный курс по тем темам, что написал выше + Java ee (в части, которая наиболее востребована сейчас работодателями).
Читать целиком
Daniil
Klipov
У меня курс оставил только положительные впечатления, он позволил структурировать и углубить знания, почерпнутые из различных статей и пособий для начинающих, а так же задать направление дальнейшего развития. Из положительных сторон хочется отметить, достаточно сложные домашние задания, интересную подачу и качество подбора материала преподавателями. К отличительным особенностям курса можно отнести наличие входного порога и высокую интенсивность занятий. Могу порекомендовать его тем, кто уже овладел основами языка, но не знает в каком направлении продолжать движение.
Читать целиком
Сергей
Новожилов
Давно искал подобный курс, рассчитанный не на новичков. Было очень интересно и полезно. Особенно хочу отметить преподавателей. Не каждый, кто даже очень хорошо знает предмет может доступно рассказать и объяснить. У Виталия и Дмитрия это хорошо получается. Еще большой плюс - это разбор домашних заданий преподавателем, очень полезно получить комментарии, рекомендации. Вообщем, 5 баллов из 5.
Читать целиком
Вадим
Бубликов
Проходил курс в Отус. По качеству норм. По формату удобно, что были записи лекций и можно было смотреть в оффлайн, это выручало. Нужна предварительная подготовка, как они и пишут. Учеба довольно напряжённая, много домашних заданий.
Читать целиком
Ольга
Штыка
В целом курс очень понравился. Нетривиальные домашние задания, понятные и доступные лекции преподавателей. Сами темы занятий актуальные, порой не задумываешься о их значении в текущей разработке, но при обсуждении становится понятна степень необходимости их понимания. Домашние задания проверяют относительно быстро, я сдавала на проверку в выходные и в течение недели их проверяли с подробными комментариями. Единственный минус - это щекотливая ситуация с оплатой. Я платила отдельно за каждый месяц. Все домашние сдала вовремя. На проект, сразу понимала, что физически не хватает времени, поэтому отказалась от его выполнения. И получается, что оплата последнего месяца (в котором нет домашек) предполагает лишь выдачу сертификата. 10000 за сертификат? Не комильфо.
Читать целиком
Алексей
Бодяк
Курс очень понравился и пригодился в работе. Преподаватели готовы ответить на все вопросы с большим удовольствием, а это очень важно. Спасибо за курс, следующий будет Spring :)
Читать целиком
Алексей
Потехин
С апреля 2018 прошел почти год, а кнопку увидел только сейчас).
Если коротко, курс шикарный!

Понравилась манера подачи материала, подготовленность преподавателей к занятию, если возникали вопросы в ходе занятия отвечали на них сразу же, даже была возможность спросить голосом. Нравились домашние задания, по началу это были дз направленные на понимание языка или технологии(web, jdbc). Потом начались повеселее, свой junit-framework например. Очень понравились домашние задания по design pattern и json-сериализатор. Домашки проверяли часто, советы и подсказки куда копать были всегда по делу. Иногда было видно, что проверяющий старается намекнуть на ошибку по разному. Т.е. не было такого, что исправь здесь и я приму. Так же проверяющие могли дать задание с + домашней работе. Правда я помню отказался, уж очень хотел закончить все, а по факту был с долгами.

Не понравилась платформа, через которую проходил вебинар ее меняли несколько раз - лагает, зависает, интернет обрывается, ужас одним словом). Надеюсь сейчас стало лучше. Некоторые темы, которые рассматривались были очень сильно скомканы и скакали по ним галопом. Есть объективно большие темы в java и в рамках 1-2 занятий их не объяснишь(Темы связанные с бд).

Я бы еще пошел, пусть меня научат, но готовлюсь к OCA/OCP
Всем удачи!
Читать целиком
Юрий
Суворов
В апреле стукнул год как я занимаюсь программированием на java, имея в виду начало прям с базового курса. Резюме в плане java-экспиренса не блещет, но независимые эксперты, дающие тестовые задания и проверяющие код говорят, что пишу аки миддл, и что джуниору нужно полгода работы для написания 'так'. На самом деле курсы OTUS, это мощный бустер в практике написания. Имея полгода небольшого опыта в java, взял сразу два курса здесь на OTUS, это "Разработчик Java" и "Разработчик Java Enterprise". Выполненные за последующие полгода(на самом деле заметно меньше) 28 домашних заданий с ревью преподователей(на самом деле специальных проверяющих) определенно не прошли даром. Такое количество домашних заданий это конечно невероятный time-kill, поэтому сильно думайте прежде чем взять два курса сразу. На данном курсе "Разработчик Java" у вас будет 'всего' 16 разномастных заданий, но и их вывозят далеко не все. В общем будет интересно. Чего не будет так это принуждений в виде тестирования после каждой пройденной темы, хотя незнаю, может администрация и заведет(завела). А также не будет принуждения к написанию проектной работы по окончанию курса, и, что хуже, те кто решатся на проект останутся с ним один на один, но с возможностью задавать вопросы. А вот возможности получить опыт промышленной разработки в рамках проектной работы не предоставится, поэтому получайте его на решении д.з..
Читать целиком
Дмитрий
Олейник
В курс включены актуальные на сегодняшний день технологии. Домашние задания, закрепляющие лекционный материал, максимально приближены к боевым задачам. Возникает чувство, что ты создаешь что-то действительно ценное и не простое. Итоговый проект дает отличную возможность применить новые знания и получить ценные рекомендации от преподавателей по дальнейшему пути развития. Благодарю всех преподавателей за профессионализм и интересные вебинары!
Читать целиком
Александр
Иванов
Только положительные впечатления.
Изначально думал, что будет не удобно заниматься в связи с большой разницей во времени(+7 от Мск), но как оказалось - зря: в будний день смотришь запись вебинара, а в выходной участвуешь онлайн.
Получил много полезной информации и "фишек", которые уже пригодились в работе. Нельзя не отметить взаимодействие с преподавателями и проверяющими в процессе работы над ДЗ. Это особенно полезно, если ранее не было подобного опыта: так сказать имитация реальной работы.

Спасибо преподавателям и всей команде Otus :)
Читать целиком
Роман
Мусий
На мой взгляд формат курса очень хорошо подходит тем, кто хочет расширить свой кругозор и получить представление о состоянии дел в Java разработке. Например, такой курс может быть полезен как интенсив для быстрого погружения в Java разработку, либо для более опытных разработчиков, которые изучают Java и которые хотят получить новые знания. Живое общение с возможностью задать свой вопрос и получить ответ - то что существенно выделяет формат курса среди традиционных MOOC. Множество практических занятий с обратной связью хорошо закрепляет пройденный материал. Хотел бы отметить очень хорошую подготовку к занятиям Сергея Петрелевича. Материал лекций хорошо структурирован и хорошо подаётся. Так же было несколько удачных лекций от Вадима. От лекций Виталия Куценко ожидал наверно больше - кажется грамотный преподаватель, но материал занятий показался недостаточно проработанным.

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

Пожелание к преподавателям. Лекции я обычно пересматривал, иногда по 2-3 раза. Как правило, я это делаю на перемотке 1.25, 1.5, 1.75. Скорость перемотки 1.75 я мог ставить только у Сергея - речь грамотная, размеренная, не прерывистая - отдельное спасибо ему за это.

В целом я доволен что прошёл этот курс и как сказал Сергей на последнем занятии, этот курс не только про способность решить задачи, но так же про способность организовать своё время.
Читать целиком
Сергей
Торчиков
Для меня принять решение об обучении на курсе по языку Java было довольно просто, достаточно было посмотреть на преподавателя и структуру курса, также огромным плюсом было увидеть в партнерах Otus.ru компанию, в которой я хотел работать. Очень важно, что перед началом курса проводиться День открытых дверей, где можно лично задать вопросы по курсу и более подробно ознакомиться с программой. Я бы хотел по порядку разобрать основные составляющие курса.

Программа.

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

Преподаватель.

Не знаю, стоит ли указывать тут сторонние обучающие ресурсы, но скажем так с лекциями Виталия я знаком уже давно. Всегда нравилось, что Виталий приводит много примеров из жизни. Лично для меня это огромная проблема в программировании, я могу что-то выучить, понимать как это работает, но абсолютно не знать, где это применить Все объяснения доходчивы и понятны. Постоянно спрашивает, о чем бы хотели дополнительно послушать ученики. Примеры с кодом есть на каждую тему и мы даже несколько раз ставили эксперименты прямо на лекциях, пытаясь что-то сломать, было довольно интересно.

Команда OTUS

Тут много я не скажу, так как особо и не сталкивались. Но из личных наблюдений, все вопросы в общем чате для программистов решались и довольно в короткие сроки. Команда очень лояльна к ученикам и идет на встречу. Так что, если есть какие-то вопросы или сомнения всегда можно обращаться.

Минусы.

Те минусы, которые я могу отметь, насколько мне известно, уже исправлены. Например, платформа. Первые лекции были довольно не стабильны, но команда Otus.ru довольно быстро нашла аналог, который устроил всех. Все программисты относились к этому с пониманием, т.к. мы были первым набором, так сказать первопроходцами

Второй минус даже вовсе и не минус, а скорее неудобство – один преподаватель. Будущим группам повезло, у них, насколько я знаю, будет два преподавателя. В основном это относиться к проверке домашнего задания, на проверку уделялось 48 часов и, если есть замечания к решению, есть шанс не сдать в срок, т.к. исправленную версию вновь отправляешь на проверку. Хотя к этому относились также лояльно и никто не ругался, тут скорее проблема в моем перфекционизме, нужно все сдать в срок

Результат.

Через несколько дней я выхожу на работу в Москве именно в ту компанию, где хотел работать. Все интервью организовывали сотрудники Otus, так что результатом я конечно доволен На собеседованиях кстати пригодились те самые знания о сборщиках мусора, о которых я говорил ранее. Так что хотелось бы поблагодарить еще раз всю команду Otus.ru за профессионализм и работу, а также всех ребят с курса за интересные обсуждения и за то, что делились своими знаниями. Я продолжу следить за курсами и если будет что-то интересное для меня, обязательно приду снова!
Читать целиком
Николай
Добровольский
На курс записался в большей степени потому, что преподавателем был объявлен Виталий Чибриков. Знал преподавателя по другим курсам, плюс ранее прослушаны записи лекций в МГТУ им. Баумана в рамках проекта ТЕХНОПАРК (Москва). Поэтому сразу решил записаться в группу.

Курс очень понравился. Впечатление очень положительное. Был освящен достаточно большой список тем. Некоторые моменты до курса были не очень хорошо знакомы (например тема про GC - были теоретические знания, но без практических навыков).

Понравилась сама подача материала, затрагиваемые темы рассматривались без отрыва от реальной жизни, сопровождались конкретными примерами из реальных проектов. Множество интересных примеров от преподавателя.

Курс помог не только систематизировать уже имеющиеся знания, а также приобрести новые. Особенно понравились темы про GC, JVM, многопоточность в Java, межпроцессное взаимодействие в Java.
После окончания курса гарантированы приглашения на собеседования, так что это огромный плюс)
На мой взгляд было бы здорово в рамках курса более подробно рассмотреть Spring, но основным направлением курса изначально было заявлено Java Core, поэтому за этой темой возможно стоит записываться на курс по Java EE.
Читать целиком
Антон
Матвеев
Курс OTUS "Разработчик Java" был очень полезен для меня, не имевшего ранее опыта коммерческой Java-разработки. Именно он помог собрать воедино знания, полученные посредством самообучения и других курсов. В отличие от других курсов был упор на формирование понимания процесса: как работает та или иная технология и какие задачи решает, а не на общее описание ее возможностей. Домашние задания подобраны таким образом, что заставляют проявить творчество и перечитать немало полезной информации. Особенно интересными были задания: написать json сериализатор, упрощенный тестовый фреймворк, свою маленькую orm, сервер обмена сообщения между бд и фронтэндами. Хотя домашние задания, может быть за исключением первых, совсем не укладывались в заявленное время на домашнюю работу по 4 часа в неделю - для того чтобы успеть сделать последние 2 задания в курсе мне пришлось брать отпуск.

Конечно основную ценность курс представляет из-за преподавателя. Очень качественное объяснение: не помню, чтобы хоть какой-то заданный по теме вопрос остался без ответа, также очень приятно и полезно было получать от Виталия не только информацию о недоработках в ДЗ, но и предложения об их возможной доработке уже за рамками задания.

Ну и, конечно, очень важна возможность пройти собеседования в крупные компании. Каждое такое собеседование это очень интересный опыт сам по себе, независимо от результата. Лично я нашел себе работу и очень рад что не пожалел денег на обучение!
Читать целиком
Алексей
Маянов
До поступления на курс я программировал на Java от случаю к случаю. Для меня курс во многом стал отправной точкой в систематизации и расширении собственных, уже имеющихся знаний. С абсолютной уверенностью могу сказать: после окончания обучения мои навыки использования Java перешли на новый уровень, в первую очередь этим я благодарен авторам курса.

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

По моим ощущениям, проектный месяц получился достаточно скомканным: не удалось получить достаточной обратной связи по проекту. Думаю причина заключается в том, что у многих учеников скопились долги, и весь преподавательский ресурс ушёл на их проверку. Я считаю, что на последнем месяце преподавателям стоит отдавать приоритет работе с проектами, иначе получается, что ученики, которые сдали все задания вовремя и перешли к работе с проектами, стали заложниками долгов остальных учеников.

Отдельно хочу отметить, что вся серия пройденных интервью, на которые я попал, дала мне определенный положительный опыт.
Читать целиком
Павел
Стрекалов
В целом впечатление о курсе положительное, курс был очень полезен для меня.

Как недостаток (или особенность) хотел бы отметить то, что чувствовалась изолированность от группы. При выполнении заданий казалось, что ты один на один с преподавателем (чат в slack не очень спасал в этом плане). Мне кажется, что общение между студентами через code review дало бы хороший эффект. Сначала преподаватель проверяет задание, принимает его, а потом студент должен еще посмотреть, выдать комментарии/замечания по двум-трем выполненным и принятым работам.
Также Виталий упоминал, что хорошо бы делать "выставку интересных работ" - тоже, думаю, что стоит, но не понятно в каком формате, т.к. набираются долги за всё время курса и некоторые задания сдаются в конце.

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

О преподавателе хочется отметить - грамотная речь. Вроде незначительно и само собой разумеется, но в русскоязычном Java-мире есть технически грамотные личности, выступления которых порой невозможно слушать из-за обилия паразитических слов. А вебинары OTUS я мог спокойно смотреть, находясь с ребенком в одной комнате, и не боясь, что Виталий выругается или скажет какое-нибудь "крепкое" слово.
Читать целиком
Михаил
Пыльцин
Здравствуйте. Я уже много раз благодарил за курсы, но хочу это сделать еще раз - многие курсы, что сейчас есть в рунете, довольно поверхностны и дают только основы. Ваши курсы как раз дают более глубокие знания по программированию. Сам курс очень интересен, но мне не хватило домашних заданий - нет, сами задания интересны и их довольно много, особенно последнее, но, к сожалению, они не охватывают весь материал. Виталий - высококлассный специалист и преподаватель, думаю, ради него многие и записались на курсы. Честно, устроенные собеседования, хоть и были объявлены, стали сюрпризом, так как не верилось, что такое возможно. Часть собеседований и выполнение тестового задания сорвалось по личным обстоятельствам. Сейчас прохожу несколько финальных собеседований - есть маленький шанс получить первую работу в Москве в сфере программирования. Хотелось бы более углубленные темы по Spring/Spring MVC/Spring Boot/Hibernate/Сокеты/Обмен данных по сети или интернету/более больше данных по ConcurrentCollection. А так - буду советовать Ваши курсы. Очень хочется отдельный курс по тем темам, что написал выше + Java ee (в части, которая наиболее востребована сейчас работодателями).
Читать целиком
Daniil
Klipov
У меня курс оставил только положительные впечатления, он позволил структурировать и углубить знания, почерпнутые из различных статей и пособий для начинающих, а так же задать направление дальнейшего развития. Из положительных сторон хочется отметить, достаточно сложные домашние задания, интересную подачу и качество подбора материала преподавателями. К отличительным особенностям курса можно отнести наличие входного порога и высокую интенсивность занятий. Могу порекомендовать его тем, кто уже овладел основами языка, но не знает в каком направлении продолжать движение.
Читать целиком
Сергей
Новожилов
Давно искал подобный курс, рассчитанный не на новичков. Было очень интересно и полезно. Особенно хочу отметить преподавателей. Не каждый, кто даже очень хорошо знает предмет может доступно рассказать и объяснить. У Виталия и Дмитрия это хорошо получается. Еще большой плюс - это разбор домашних заданий преподавателем, очень полезно получить комментарии, рекомендации. Вообщем, 5 баллов из 5.
Читать целиком
Вадим
Бубликов
Проходил курс в Отус. По качеству норм. По формату удобно, что были записи лекций и можно было смотреть в оффлайн, это выручало. Нужна предварительная подготовка, как они и пишут. Учеба довольно напряжённая, много домашних заданий.
Читать целиком
Ольга
Штыка
В целом курс очень понравился. Нетривиальные домашние задания, понятные и доступные лекции преподавателей. Сами темы занятий актуальные, порой не задумываешься о их значении в текущей разработке, но при обсуждении становится понятна степень необходимости их понимания. Домашние задания проверяют относительно быстро, я сдавала на проверку в выходные и в течение недели их проверяли с подробными комментариями. Единственный минус - это щекотливая ситуация с оплатой. Я платила отдельно за каждый месяц. Все домашние сдала вовремя. На проект, сразу понимала, что физически не хватает времени, поэтому отказалась от его выполнения. И получается, что оплата последнего месяца (в котором нет домашек) предполагает лишь выдачу сертификата. 10000 за сертификат? Не комильфо.
Читать целиком
Алексей
Бодяк
Курс очень понравился и пригодился в работе. Преподаватели готовы ответить на все вопросы с большим удовольствием, а это очень важно. Спасибо за курс, следующий будет Spring :)
Читать целиком
Алексей
Потехин
С апреля 2018 прошел почти год, а кнопку увидел только сейчас).
Если коротко, курс шикарный!

Понравилась манера подачи материала, подготовленность преподавателей к занятию, если возникали вопросы в ходе занятия отвечали на них сразу же, даже была возможность спросить голосом. Нравились домашние задания, по началу это были дз направленные на понимание языка или технологии(web, jdbc). Потом начались повеселее, свой junit-framework например. Очень понравились домашние задания по design pattern и json-сериализатор. Домашки проверяли часто, советы и подсказки куда копать были всегда по делу. Иногда было видно, что проверяющий старается намекнуть на ошибку по разному. Т.е. не было такого, что исправь здесь и я приму. Так же проверяющие могли дать задание с + домашней работе. Правда я помню отказался, уж очень хотел закончить все, а по факту был с долгами.

Не понравилась платформа, через которую проходил вебинар ее меняли несколько раз - лагает, зависает, интернет обрывается, ужас одним словом). Надеюсь сейчас стало лучше. Некоторые темы, которые рассматривались были очень сильно скомканы и скакали по ним галопом. Есть объективно большие темы в java и в рамках 1-2 занятий их не объяснишь(Темы связанные с бд).

Я бы еще пошел, пусть меня научат, но готовлюсь к OCA/OCP
Всем удачи!
Читать целиком
Юрий
Суворов
В апреле стукнул год как я занимаюсь программированием на java, имея в виду начало прям с базового курса. Резюме в плане java-экспиренса не блещет, но независимые эксперты, дающие тестовые задания и проверяющие код говорят, что пишу аки миддл, и что джуниору нужно полгода работы для написания 'так'. На самом деле курсы OTUS, это мощный бустер в практике написания. Имея полгода небольшого опыта в java, взял сразу два курса здесь на OTUS, это "Разработчик Java" и "Разработчик Java Enterprise". Выполненные за последующие полгода(на самом деле заметно меньше) 28 домашних заданий с ревью преподователей(на самом деле специальных проверяющих) определенно не прошли даром. Такое количество домашних заданий это конечно невероятный time-kill, поэтому сильно думайте прежде чем взять два курса сразу. На данном курсе "Разработчик Java" у вас будет 'всего' 16 разномастных заданий, но и их вывозят далеко не все. В общем будет интересно. Чего не будет так это принуждений в виде тестирования после каждой пройденной темы, хотя незнаю, может администрация и заведет(завела). А также не будет принуждения к написанию проектной работы по окончанию курса, и, что хуже, те кто решатся на проект останутся с ним один на один, но с возможностью задавать вопросы. А вот возможности получить опыт промышленной разработки в рамках проектной работы не предоставится, поэтому получайте его на решении д.з..
Читать целиком
Дмитрий
Олейник
В курс включены актуальные на сегодняшний день технологии. Домашние задания, закрепляющие лекционный материал, максимально приближены к боевым задачам. Возникает чувство, что ты создаешь что-то действительно ценное и не простое. Итоговый проект дает отличную возможность применить новые знания и получить ценные рекомендации от преподавателей по дальнейшему пути развития. Благодарю всех преподавателей за профессионализм и интересные вебинары!
Читать целиком
Александр
Иванов
Только положительные впечатления.
Изначально думал, что будет не удобно заниматься в связи с большой разницей во времени(+7 от Мск), но как оказалось - зря: в будний день смотришь запись вебинара, а в выходной участвуешь онлайн.
Получил много полезной информации и "фишек", которые уже пригодились в работе. Нельзя не отметить взаимодействие с преподавателями и проверяющими в процессе работы над ДЗ. Это особенно полезно, если ранее не было подобного опыта: так сказать имитация реальной работы.

Спасибо преподавателям и всей команде Otus :)
Читать целиком
Роман
Мусий
На мой взгляд формат курса очень хорошо подходит тем, кто хочет расширить свой кругозор и получить представление о состоянии дел в Java разработке. Например, такой курс может быть полезен как интенсив для быстрого погружения в Java разработку, либо для более опытных разработчиков, которые изучают Java и которые хотят получить новые знания. Живое общение с возможностью задать свой вопрос и получить ответ - то что существенно выделяет формат курса среди традиционных MOOC. Множество практических занятий с обратной связью хорошо закрепляет пройденный материал. Хотел бы отметить очень хорошую подготовку к занятиям Сергея Петрелевича. Материал лекций хорошо структурирован и хорошо подаётся. Так же было несколько удачных лекций от Вадима. От лекций Виталия Куценко ожидал наверно больше - кажется грамотный преподаватель, но материал занятий показался недостаточно проработанным.

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

Пожелание к преподавателям. Лекции я обычно пересматривал, иногда по 2-3 раза. Как правило, я это делаю на перемотке 1.25, 1.5, 1.75. Скорость перемотки 1.75 я мог ставить только у Сергея - речь грамотная, размеренная, не прерывистая - отдельное спасибо ему за это.

В целом я доволен что прошёл этот курс и как сказал Сергей на последнем занятии, этот курс не только про способность решить задачи, но так же про способность организовать своё время.
Читать целиком
Необходимые знания
  • Опыт разработки на Java от одного года или опыт разработки на другом языке от 3 лет (приветствуются любые языки ООП).
  • Знание основных структур данных и алгоритмов, принципов ООП, опыт работы с базами данных и понимание основ веб-разработки облегчат прохождение курса для программиста, но не являются обязательными.
Подготовительный курс
Формат: видео лекции (4 модуля по 3 видеолекции каждый).
Прохождение подготовительного курса даст:
- необходимые базовые знания для курса «Разработчик Java»;
- возможность поступить на курс «Разработчик Java» без вступительного тестирования;
- приглашение в slack-чат курса «Разработчик Java».
Записаться
Процесс обучения
Обучение проходит в формате вебинаров (онлайн). Слушателям предлагаются к выполнению домашние задания, которые позволят применить на практике полученные во время вебинаров знания. По каждому домашнему заданию преподаватель дает развернутый фидбек.
Преподаватель находится в едином коммуникационном пространстве с группой на протяжении всего курса, т. е. в процессе обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций и домашних заданий.
Программа обучения
Модуль 1
Язык и платформа Java
Модуль 2
Проектирование
Модуль 3
Работа с окружением
Модуль 4
Многопоточность
Модуль 5
Проектная работа
Язык и платформа Java
В этом модуле изучаются фундаментальные основы работы Java Virtual Machine (JVM) и "тонкие" аспекты языка Java. В результате обучения студет сможет достаточно подробно рассказать как выполняется Java программа и что проиходит "под капотом".
Тема 1: Дополнительное занятие
Тема 2: Подготовка к курсу. ДЗ
познакомиться с программой курса,
изучить основные инструменты
Домашние задания: 1
1 Проект maven с модульной структурой
1) Создать аккаунт на github.com (если еще нет)
2) Создать репозиторий для домашних работ
3) Сделать checkout репозитория на свой компьютер
4) Создайте локальный бранч hw01-maven
5) Создать проект maven
6) В проект добавьте последнюю версию зависимости
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
7) Создайте модуль hw01-maven
8) В модуле сделайте класс HelloOtus
9) В этом классе сделайте вызов какого-нибудь метода из guava
10) Добавьте нужный плагин maven и соберите "толстый-jar"
11) Убедитесь, что "толстый-jar" запускается.
12) Сделайте pull-request в gitHub
13) Ссылку на PR отправьте на проверку.
Тема 3: Дополнение к maven, история изменения языка
Познакомиться со Shade Plugin
Углубить знания о maven
Познакомиться с текущей ситуацией в мире java
Тема 4: Контейнеры и алгоритмы. ДЗ
Познакомиться с Generic-ами в Java и со стандартными коллекциями
Домашние задания: 1
1 DIY ArrayList
Написать свою реализацию ArrayList на основе массива.
class DIYarrayList<T> implements List<T>{...}

Проверить, что на ней работают методы из java.util.Collections:
Collections.addAll(Collection<? super T> c, T... elements)
Collections.static <T> void copy(List<? super T> dest, List<? extends T> src)
Collections.static <T> void sort(List<T> list, Comparator<? super T> c)

1) Проверяйте на коллекциях с 20 и больше элементами.
2) DIYarrayList должен имплементировать ТОЛЬКО ОДИН интерфейс - List.
3) Если метод не имплементирован, то он должен выбрасывать исключение UnsupportedOperationException.
Тема 5: Инструменты для преобразования контейнеров, unsafe, jmh
На примере изучить принципы создания коллекций.
Познакомиться с пакетом unsafe, утилитой JMH и
популярными библиотеками коллекций.
Тема 6: QA и тестирование
Познакомиться с junit и mockito
На примере понять, что такое "тестируемое приложение"
Тема 7: Сборщик мусора. ДЗ
Знакомство со сборщиком мусора в Java
Домашние задания: 1
1 Сравнение разных сборщиков мусора
Написать приложение, которое следит за сборками мусора и пишет в лог количество сборок каждого типа
(young, old) и время которое ушло на сборки в минуту.

Добиться OutOfMemory в этом приложении через медленное подтекание по памяти
(например добавлять элементы в List и удалять только половину).

Настроить приложение (можно добавлять Thread.sleep(...)) так чтобы оно падало
с OOM примерно через 5 минут после начала работы.

Собрать статистику (количество сборок, время на сборки) по разным GC.

!!! Сделать выводы !!!
ЭТО САМАЯ ВАЖНАЯ ЧАСТЬ РАБОТЫ:
Какой gc лучше и почему?

Выводы оформить в файле Сonclusions.md в корне папки проекта.
Результаты измерений сведите в таблицу.
Тема 8: Углубленные основы (примитивные типы, Remote debug, Hot swap).
Узнать детали устройства типов данных в Java.
Познакомиться с механизмами Remote Debug и Hot swap.
Знакомство с утилитой Jol
Тема 9: Байт код, class-loader, инструменатция, asm. ДЗ
Познакомиться с принципами работы виртуальной машины Java, ClassLoader-ами и байт-кодом
Домашние задания: 1
1 Автомагическое логирование.
Разработайте такой функционал:
метод класса можно пометить самодельной аннотацией @Log, например, так:

class TestLogging {
@Log
public void calculation(int param) {};
}

При вызове этого метода "автомагически" в консоль должны логироваться значения параметров.
Например так.

class Demo {
public void action() {
new TestLogging().calculation(6);
}
}

В консоле дожно быть:
executed method: calculation, param: 6

Обратите внимание: явного вызова логирования быть не должно.
Тема 10: Аннотации. ДЗ
Познакомиться с механизмом Reflection.
Узнать что такое Аннотации и как их можно сделать
Домашние задания: 1
1 Свой тестовый фреймворк
Написать свой тестовый фреймворк.

Поддержать свои аннотации @Test, @Before, @After.

Запускать вызовом статического метода с именем класса с тестами.

Т.е. надо сделать:
1) создать три аннотации - @Test, @Before, @After.
2) Создать класс-тест, в котором будут методы, отмеченные аннотациями.
3) Создать "запускалку теста". На вход она должна получать имя класса с тестами, в котором следует найти и запустить методы отмеченные аннотациями и пункта 1.
4) Алгоритм запуска должен быть следующий::
метод(ы) Before
текущий метод Test
метод(ы) After
для каждой такой "тройки" надо создать СВОЙ объект класса-теста.
5) Исключение в одном тесте не должно прерывать весь процесс тестирования.
6) На основании возникших во время тестирования исключений вывести статистику выполнения тестов (сколько прошло успешно, сколько упало, сколько было всего)
Тема 11: Java 8
Введение в функциональное программироавние (ФП).
Знакомство с возможностями ФП, которые появились в Java 8.
Проектирование
В этом модуле рассматриваются принципы проектирования SOLID и паттерны проектирования GOF.
В ходе выполнения Домашних Работ студент сможет на практике научиться применять паттерны проектирования и их комбинации.
Тема 1: Концепты проектирования ООП. ДЗ
Изучить принципы SOLID и общие критерии идеальной архитектуры
Домашние задания: 1
1 Эмулятор банкомата
Написать эмулятор АТМ (банкомата).

Объект класса АТМ должен уметь:
- принимать банкноты разных номиналов (на каждый номинал должна быть своя ячейка)
- выдавать запрошенную сумму минимальным количеством банкнот или ошибку если сумму нельзя выдать
Это задание не на алгоритмы, а на проектирование.
Поэтому оптимизировать выдачу не надо.
- выдавать сумму остатка денежных средств
Тема 2: Behavioral patterns
Изучить поведенческие паттерны проектирования
Тема 3: Structural patterns. ДЗ
Изучить структурные паттерны проектирования
20 ноября, 20:00 — 21:30
Лектор: Вадим Тисов
Домашние задания: 1
1 Департамент ATM
Написать приложение ATM Департамент:
1) Департамент может содержать несколько ATM.
2) Департамент может собирать сумму остатков со всех ATM.
3) Департамент может инициировать событие – восстановить состояние всех
ATM до начального (начальные состояния у разных ATM могут быть
разными).
Это тренировочное задание на применение паттернов.
Попробуйте использовать как можно больше.
Тема 4: Creational patterns
Изучить "создающие" паттерны проектирования
23 ноября, 10:00 — 11:30
Лектор: Сергей Петрелевич
Работа с окружением
Этот блок посвящен вопросам взаимодействия java-приложения с внешним миром.

Рассматриваются операции с файловой системой, механизмы сериализации/десериализации объектов.

Большое внимание уделяется работе с реляционными базами данных. Подробно изучаются jdbc и Hibernate. При этом не забываем про noSQL. В качестве примера работы с noSQL рассматривается реактивное взаимодействие с MongoDb.

Особое внимание уделяется разработке Web-серверов. Изучаем TomCat как пример контейнера war-приложений и Jetty - как встроенный web-сервер, учимся применять технологию web-сокетов.

В качестве примера Dependency Injection изучаем Spring и Spring Boot.
Тема 1: Сериализация. ДЗ
Познакомиться с функционалом сериализации объектов
27 ноября, 20:00 — 21:30
Лектор: Сергей Петрелевич
Домашние задания: 1
1 Cвой json object writer
Напишите свой json object writer (object to JSON string) аналогичный gson на основе javax.json.

Поддержите:
- массивы объектов и примитивных типов
- коллекции из стандартный библиотеки.
Тема 2: NIO. Логирование
познакомиться с методами логирования в Java.
познакомиться с NIO
30 ноября, 10:00 — 11:30
Лектор: Вадим Тисов
Тема 3: JDBC. ДЗ
Познакомиться с транзакцией в реляционной СУБД и jdbc
4 декабря, 20:00 — 21:30
Лектор: Сергей Петрелевич
Домашние задания: 1
1 Самодельный ORM
Работа должна использовать базу данных H2.
Создайте в базе таблицу User с полями:

• id bigint(20) NOT NULL auto_increment
• name varchar(255)
• age int(3)

Создайте свою аннотацию @Id

Создайте класс User (с полями, которые соответствуют таблице, поле id отметьте аннотацией).

Напишите JdbcTemplate, который умеет работать с классами, в котрых есть поле с аннотацией @Id.
Executor должен сохранять объект в базу и читать объект из базы.
Имя таблицы должно соответствовать имени класса, а поля класса - это колонки в таблице.

Методы JdbcTemplate'а:
void create(T objectData);
void update(T objectData);
void createOrUpdate(T objectData); // опционально.
<T> T load(long id, Class<T> clazz);

Проверьте его работу на классе User.

Метод createOrUpdate - необязательный.
Он должен "проверять" наличие объекта в таблице и создавать новый или обновлять.

Создайте еще одну таблицу Account:
• no bigint(20) NOT NULL auto_increment
• type varchar(255)
• rest number

Создайте для этой таблицы класс Account и проверьте работу JdbcTemplate на этом классе.
Тема 4: Общие вопросы работы с СУБД, myBatis
Рассмотреть CAP-теорему
Рассмотреть методы организации блокировок
Познакомиться с MyBatis
7 декабря, 10:00 — 11:30
Лектор: Виталий Куценко
Тема 5: Hibernate. ДЗ
Закомство с Hibernate
11 декабря, 20:00 — 21:30
Лектор: Александр Оруджев
Домашние задания: 1
1 Использование Hibernate
Работа должна использовать базу данных H2.

Возьмите за основу предыдущее ДЗ (Самодельный ORM)
и реализуйте функционал сохранения и чтения объекта User через Hibernate.
(Рефлейсия больше не нужна)
Конфигурация Hibernate должна быть вынесена в файл.

Добавьте в User поля:
адрес (OneToOne)
class AddressDataSet {
private String street;
}
и телефон (OneToMany)
class PhoneDataSet {
private String number;
}

Разметьте классы таким образом, чтобы при сохранении/чтении объека User каскадно сохранялись/читались вложенные объекты.
Не забывайте про сохранение абстракций в приложении (см. комментарий в вебинаре).
Тема 6: JPQL
Познакомиться с Connection Pool
Узнать методы конструирования запросов в Hibernate
14 декабря, 10:00 — 11:30
Лектор: Виталий Куценко
Тема 7: Типы ссылок. Кэширование. ДЗ
Узнать какие в java есть виды ссылок и для чего они нужны
Понять как устроены кэши
Познакомиться с "промышленным" кэшом Ehcache
18 декабря, 20:00 — 21:30
Лектор: Сергей Петрелевич
Домашние задания: 1
1 Свой cache engine
Напишите свой cache engine с soft references.
Добавьте кэширование в DBService из задания про Hibernate ORM
Тема 8: No SQL
Познакомиться с noSQL базами данных
Понять отличия SQL от noSQL, когда и что следует использовать.
Познакомится с MongoDB
21 декабря, 10:00 — 11:30
Тема 9: Web сервер. ДЗ
На примере Jetty понять принципы работы Web-сервера и servlet API
25 декабря, 20:00 — 21:30
Лектор: Сергей Петрелевич
Домашние задания: 1
1 Веб сервер
Встроить веб сервер в приложение из ДЗ про Hibernate ORM.
Сделать админскую страницу, на которой админ должен авторизоваться.
На странице должны быть доступны следующие функции:
- создать пользователя
- получить список пользователей

P.S. при желании вместо Hibernate и H2 можно использовать MongoDB
Тема 10: Dependency injection. ДЗ
Изучить принципы работы контейнера TomCat
Изучить принципы работы framework Spring
28 декабря, 10:00 — 11:30
Домашние задания: 1
1 Приложение с IoC контейнером
Собрать war для приложения из предыдущего ДЗ.
Создавать кэш и DBService как Spring beans, передавать (inject) их в сервлеты.
Запустить веб приложение во внешнем веб сервере.
Тема 11: Asynchronous Web applications
Узнать как можно сделать ассинхронный web-сервис на java.
Познакомиться со Spring Boot
11 января, 20:00 — 21:30
Многопоточность
Этот модуль посвящен многопоточности в разных ее проявлениях.
Начинаем изучение с разбора Java Memory Model, какова цель ее создания, что решается и как это использовать.
Заканчиваем Completable Future.
Начинаем рахрабатывать многопоточные приложения и переходим к разработке многопроцессорных приложений - приложения, отдельные части которох работают на разных хостах.

Чтобы понять как объединить такие приложения, изучаем блокирующие и неблокирующие сокеты (NIO).
Тема 1: Thread
Познакомиться с основными принципами многопоточности
Узнать как управлять потоками в Java
15 января, 20:00 — 21:30
Тема 2: JMM. ДЗ
Познакомиться с основными проблемами многопоточности.
Понять зачем придумали JMM
Узнать основные положения JMM
18 января, 10:00 — 11:30
Домашние задания: 1
1 Последовательность чисел
Два потока печатают числа от 1 до 10, потом от 10 до 1.
Надо сделать так, чтобы числа чередовались, т.е. получился такой вывод:
Поток 1:1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 2 3 4....
Поток 2: 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 2 3....
Тема 3: Message System. ДЗ
Познакомиться с потокобезопасными контейнерами
Познакомиться с паттерном - "система обмена сообщениями"
22 января, 20:00 — 21:30
Домашние задания: 1
1 MessageSystem
Добавить систему обмена сообщениями в ДЗ про веб сервер с IoC контейнером.
Пересылать сообщения из вебсокета в DBService и обратно.
Организовать структуру пакетов без циклических зависимостей.
Тема 4: Executors
Познакомиться с пулами потоков в Java
25 января, 10:00 — 11:30
Тема 5: Многопроцессные приложения. ДЗ
Изучение сетевого взаимодействия в java.
Изучение принципов работы "клиент-серверного" приложения в Java
29 января, 20:00 — 21:30
Домашние задания: 1
1 MessageServer
Cервер из предыдущего ДЗ про MessageSystem разделить на три приложения:
• MessageServer
• Frontend
• DBServer
Запускать Frontend и DBServer из MessageServer.
Сделать MessageServer сокет-сервером, Frontend и DBServer клиентами.
Пересылать сообщения с Frontend на DBService через MessageServer.

Запустить приложение с двумя серверами фронтенд и двумя серверами баз данных на разных портах.
Если у вас запуск веб приложения в контейнере, то MessageServer может копировать root.war в контейнеры при старте
Тема 6: NIO
Изучение основ сетевых возможностей NIO
1 февраля, 10:00 — 11:30
Тема 7: Netty
изучить основные принципы работы Netty.
5 февраля, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц, однако к защите надо разработать действующий прототип, который пояснит идею проекта.

В процессе написания по проекту можно получить консультации преподавателей.

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

Проект должен стать примером кода, который можно показывать потенциальным работодателям.

Студет может самостоятельно выбрать технологии из числа изученных на курсе и/или использовать что-то дополнительно.

Примеры тем:
- телеграм-бот
- распределенный кэш
- web сервер (разберите протокол)
- socket сервер на NIO (как netty)
- свой ORM
- кэш для hibernate
Тема 1: Консультация по ДЗ и проектам
получить ответы на вопросы по проекту
8 февраля, 10:00 — 11:30
Домашние задания: 1
1 Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Проект должен стать примером кода, который можно показывать потенциальным работодателям.

Примеры тем проекта:
- web сервер (разберите протокол)
- socket сервер на NIO (как netty)
- свой ORM
- распределенный кэш
- кэш для hibernate
Тема 2: Консультация по ДЗ и проектам
получить ответы на вопросы по проектной работе
12 февраля, 20:00 — 21:30
Тема 3: Защита проектов
защитить свой проект и получить рекомендации экспертов
15 февраля, 10:00 — 11:30
Выпускной проект
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей. Также проект станет примером кода и отличным кейсом в портфолио, который оценят потенциальные работодатели.


Примеры тем проекта:

  • web сервер (разберите протокол);

  • socket сервер на NIO (как netty);

  • свой ORM;

  • распределенный кэш;

  • кэш для hibernate​.

Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Java и Docker
Сергей Петрелевич
День открытых дверей
18 сентября в 20:00
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование
После обучения вы

  • получите материалы по всем занятиям (видеозаписи занятий, презентации, примеры кодов);

  • существенно повысите свою компетенцию в сфере разработки на Java;

  • научитесь разрабатывать коммерческие приложения самостоятельно и в команде;

  • получите сертификат об окончании курса;

  • получите приглашение пройти собеседование в компаниях-партнерах (в случае успешного обучения на курсе).

Дата выдачи сертификата: 8 августа 2020 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Разработчик Java»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Разработчик Java»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.
Общая стоимость
60 000 ₽
В месяц: 12 500 ₽
В кредит: ₽ в месяц
Продолжительность
6 месяцев
Начало занятий
27 декабря
Java – это один из языков программирования, с помощью которого создают приложения для работы и игр. Такие продукты устанавливаются на стационарные компьютеры, мобильные устройства и облачные высоконагруженные кластеры. Высокая востребованность разработчиков, владеющих этим языком, делает популярными курсы Java. Если вы хотите стать настоящим профессионалом в сфере IT, приглашаем пройти обучение в нашем центре.
Условия и результаты
Сразу отметим, что Java-изучение у нас предусматривает подготовку не с нуля. Чтобы стать слушателем, необходимо владеть базовыми знаниями и иметь определенный опыт работы с этим или другим языком. Если ваш уровень слишком низкий, можете пройти подготовительные курсы, где получите требуемые навыки взаимодействия с Java.
Подготовительные и основные занятия проводятся в формате онлайн. После выпуска вы:
сможете заниматься разработкой серверных приложений;
освоите разные подходы к созданию программных продуктов;
поймете особенности языка и платформы;
получите все видеозаписи и материалы, используемые во время занятий.
Также обучение Java в OTUS – это шанс на трудоустройство в крупную IT-компанию. Проходите вступительное тестирование и записывайтесь на курсы по телефону или онлайн.