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

Курс об особенностях языка и платформы Java, стандартной библиотеке, о проектировании и тестировании, о том, как работать с базами, файлами, веб-фронтендом и другими приложениями
Зачем нужно тестирование?

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

6 месяцев

Начало

30 октября

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

60 000 ₽

В месяц

11 500 ₽

В кредит:

около 11500 ₽ в месяц

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

  • Освоение разработки серверных приложений на Java.

  • Понимание библиотеки Java, особенностей языка и платформы Java.

  • Знание основных подходов к проектированию приложений, работе с базами, файлами, веб-фронтендом.

  • Владение низкоуровневыми и высокоуровневыми подходами к созданию многопоточных и многопроцессных приложений.


20 работодателей

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

День открытых дверей курса «Разработчик Java», 26 октября в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях нашего онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения.

Чтобы принять участие в розыгрыше приятных подарков, необходимо успешно пройти вступительное тестирование и оставить свои контакты: e-mail и телефон! Желаем успехов и до встречи в прямом эфире!
Ведет
Виталий
Чибриков
Предыдущий день открытых дверей
"Написание хорошего кода — базовое умение грамотного разработчика. Но настоящего профессионала отличает желание узнавать новое, доводить решения до совершенства и делиться приобретенными знаниями с коллегами".
Виталий Чибриков
Преподаватель курса
"Написание хорошего кода — базовое умение грамотного разработчика. Но настоящего профессионала отличает желание узнавать новое, доводить решения до совершенства и делиться приобретенными знаниями с коллегами".
Виталий Чибриков
Преподаватель курса
Преподаватели
Виталий Чибриков
Генеральный директор «OTUS. Онлайн-образование»
Дмитрий Архангельский
Java-разработчик в Одноклассниках (OK.RU)
Сергей Петрелевич
Java-разработчик в Технологическом центре Deutche Bank
Владимир Сонькин
Антон Ильинчик
Software Engineer в Zalando (Germany)
Выпускник МФТИ 2004-го года по специальности «Инженер-математик». Профессиональный опыт: 12 лет программирования на Java, C++, C#, JavaScript, PHP, Python. Участник проектов различных уровней сложности: от стартапов на 3 человека/полгода до бизнес-приложений на 200 человек/4 года. 8 лет разработки серверов для клиентских игр на Java. Эксперт в разработке облачных приложений, автоматизации процессов разработки и тестирования.

Разрабатывал и запускал проекты MMORMGs: «Allods Online» и «Skyforge».
Разработка серверной части портала — платежной системы, развлекательных сервисов для пользователей.
Опыт программирования — 6 лет серверной разработки на Java в DeutscheBank и OK.RU.
Ранее занимался разработкой виртуальных машин на языке C в компании Parallels.
В 2013 году закончил магистратуру МФТИ — прикладная математика и информатика.
Преподаватель и автор курса "Разработка на Java" в проекте Технотрек Mail.Ru в МФТИ.
В отрасли с 2003 года. Программировать начал со времен ZX-Spectrum. 8 лет в разработке банковских процессинговых систем пластиковых карт.

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

Компании: Магнитогорский Металлургический Комбинат, Компас+, Borlas, СМП Банк. Интересы: JavaScript, многопоточное программирование, сборщики мусора в Java.
Эксперт по направлению Java и Web и тренер в Учебном Центре Люксофт. Более 4 лет разрабатывает и ведет курсы по Java и Web-технологиям. До этого более 7 лет работал программистом в Люксофт, разрабатывал системы для крупнейшего швейцарского банка UBS, авиастроительной компании Boeing, сельскохозяйственной компании Bunge и других крупных заказчиков. С технологиями Java Enterprise и JavaScript профессионально работает с 2000 года.
В 2000 году закончил ВМК МГУ, кафедру алгоритмических языков, занимался искусственным интеллектом и нейронными сетями.
Специализируется на разработке высоконагруженных распределённых систем на Java.

За более чем 10 лет работы в индустрии получил опыт разработки информационных систем в таких отраслях, как здравоохранение, туризм, телеком, поучаствовал в проектах для государственных организаций и органов власти.

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

Разрабатывал и запускал проекты MMORMGs: «Allods Online» и «Skyforge».
Дмитрий Архангельский
Java-разработчик в Одноклассниках (OK.RU)
Разработка серверной части портала — платежной системы, развлекательных сервисов для пользователей.
Опыт программирования — 6 лет серверной разработки на Java в DeutscheBank и OK.RU.
Ранее занимался разработкой виртуальных машин на языке C в компании Parallels.
В 2013 году закончил магистратуру МФТИ — прикладная математика и информатика.
Преподаватель и автор курса "Разработка на Java" в проекте Технотрек Mail.Ru в МФТИ.
Сергей Петрелевич
Java-разработчик в Технологическом центре Deutche Bank
В отрасли с 2003 года. Программировать начал со времен ZX-Spectrum. 8 лет в разработке банковских процессинговых систем пластиковых карт.

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

Компании: Магнитогорский Металлургический Комбинат, Компас+, Borlas, СМП Банк. Интересы: JavaScript, многопоточное программирование, сборщики мусора в Java.
Владимир Сонькин
Эксперт по направлению Java и Web и тренер в Учебном Центре Люксофт. Более 4 лет разрабатывает и ведет курсы по Java и Web-технологиям. До этого более 7 лет работал программистом в Люксофт, разрабатывал системы для крупнейшего швейцарского банка UBS, авиастроительной компании Boeing, сельскохозяйственной компании Bunge и других крупных заказчиков. С технологиями Java Enterprise и JavaScript профессионально работает с 2000 года.
В 2000 году закончил ВМК МГУ, кафедру алгоритмических языков, занимался искусственным интеллектом и нейронными сетями.
Антон Ильинчик
Software Engineer в Zalando (Germany)
Специализируется на разработке высоконагруженных распределённых систем на Java.

За более чем 10 лет работы в индустрии получил опыт разработки информационных систем в таких отраслях, как здравоохранение, туризм, телеком, поучаствовал в проектах для государственных организаций и органов власти.

Сейчас работает над крупнейшим в Европе e-commerce проектом "Online Fashion Platform" (17 стран, более 23 миллионов активных пользователей).
Отзывы
10
Сергей
Торчиков
Для меня принять решение об обучении на курсе по 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 за сертификат? Не комильфо.
Читать целиком
Минимальные знания
  • Опыт разработки на Java от одного года или опыт разработки на каком-либо языке ООП от 3 лет.
  • Знание основных структур данных и алгоритмов, принципов ООП, опыт работы с базами данных и понимание основ веб-разработки облегчат прохождение курса, но не являются обязательными.
Подготовительный курс
Формат: видео лекции (4 модуля по 3 видео лекции каждый).
Прохождение подготовительного курса даст:
- необходимые базовые знания для курса «Разработчик Java»;
- возможность поступить на курс «Разработчик Java» без вступительного тестирования;
- скидку на приобретение курса «Разработчик Java», равную стоимости подготовительного курса;
- приглашение в slack-чат курса «Разработчик Java».
Записаться
Процесс обучения
Обучение проходит в формате вебинаров (онлайн). Слушателям предлагаются к выполнению домашние задания, которые позволят применить на практике полученные во время вебинаров знания. По каждому домашнему заданию преподаватель дает развернутый фидбек.
Преподаватель находится в едином коммуникационном пространстве с группой на протяжении всего курса, т. е. в процессе обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций и домашних заданий.
Ступени обучения
Каждая ступень содержит лекционный и практический материал, а также время на подготовку и подробный разбор домашних заданий. Между ступенями слушатели могут делать перерывы в обучении, чтобы применить полученные знания на практике.
Язык и платформа
2 месяца
20 000 ₽
Промежуточный сертификат
Проектирование. Работа с внешними сервисами
2 месяца
20 000 ₽
Промежуточный сертификат
Многопоточность и ассинхронность
2 месяца
20 000 ₽
Cертификат об окончании
Программа обучения
Ступень 1
11 500 ₽/мес
Ступень 2
11 500 ₽/мес
Ступень 3
11 500 ₽/мес
Язык и платформа
1.1 Подготовка к курсу
Введение. Обзор и задачи курса. Настройка окружения: система контроля версий git, система контроля зависимостей maven, среда разработки Intellij IDEA. Сборка и запуск java приложений.
30 октября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ 01. Сборка и запуск проекта
Создать проект под управлением maven в Intellij IDEA. Добавить зависимость на Google Guava/Apache Commons/библиотеку на ваш выбор. Использовать библиотечные классы для обработки входных данных. Задать имя проекта (project_name) в pom.xml Собрать project_name.jar содержащий все зависимости. Проверить, что приложение можно запустить из командной строки. Выложить проект на github. Создать ветку "obfuscation" изменить в ней pom.xml, так чтобы сборка содержала стадию обфускации байткода.
1.2 Байт код
Байт код. Содержание .class. Декомпиляция. Обфускация. История изменений языка Java от версии к версии. Разбор ДЗ.
3 ноября, 11:00 — 12:30
2.1 Углубленные основы
Углубленные основы. Загрузка классов. Виды и задачи class loader-ов. Класс Class<?>. Примитивные типы, строки, массивы. Память, которую занимают объекты.
6 ноября, 20:00 — 21:30
Домашние задания: 3
1 ДЗ 02. Измерение памяти
Написать стенд для определения размера объекта. Определить размер пустой строки и пустых контейнеров. Определить рост размера контейнера от количества элементов в нем. Например: Object — 8 bytes, Empty String — 40 bytes Array — from 12 bytes
2 ДЗ 02. Работа с массивом
В коде класса ArrayCopyTutor (возьмите из материалов) реализуйте метод deleteAnimal(int position).
3 ДЗ 02. Работа со строками
В классе StringTutor (в материалах) реализуйте метод checkGreeting.
2.2 Remote debug
Hot swap. Remote debug. Сборщик мусора. Instrumentation. Разбор примеров и ДЗ.
10 ноября, 11:00 — 12:30
3.1 Контейнеры и алгоритмы
Generics. Контейнеры и алгоритмы. Обзор устройства и работы контейнеров из java.util. Сравнение контейнеров. Карты на основе хэш функции и на основе дерева. Разбор алгоритмов из java.util.Collections.
13 ноября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ 03. MyArrayList
Написать свою реализацию ArrayList на основе массива. Проверить, что на ней работают методы java.util.Collections
3.2 Инструменты для преобразования контейнеров
Инструменты для преобразования контейнеров. Apache Commons. Google Guava. Разбор примеров и ДЗ.
17 ноября, 11:00 — 12:30
4.1 Аннотации
Аннотации. Стандартные аннотации. Применение аннотаций. Типы аннотаций. Синтаксис. Создание своих аннтатаций. Reflection.
20 ноября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ 05. Тестовый фреймворк на аннотациях
Написать свой тестовый фреймворк. Поддержать аннотации @Test, @Before, @After. Запускать вызовом статического метода с 1. именем класса с тестами, 2. именем package в котором надо найти и запустить тесты
4.2 Java 8
Элементы функционального программирования. Streams. Lambdas. Примеры.
24 ноября, 11:00 — 12:30
5.1 Сборщик мусора
Параметры запуска VM. Сборщик мусора. Виды сборок. Разделение памяти под разные поколения объектов. Виды сборщиков. JMX. Управление приложением из jconsole. OutOfMemory. dump памяти. Исседование thread dump и heap dump.
27 ноября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ 04. Измерение активности GC
Написать приложение, которое следит за сборками мусора и пишет в лог количество сборок каждого типа (young, old) и время которое ушло на сборки в минуту. Добиться OutOfMemory в этом приложении через медленное подтекание по памяти (например добавлять элементы в List и удалять только половину). Настроить приложение (можно добавлять Thread.sleep(...)) так чтобы оно падало с OOM примерно через 5 минут после начала работы. Собрать статистику (количество сборок, время на сборрки) по разным типам GC.
5.2 QA и тестирование
QA, тестирование. Виды тестов. "Заглушки". Testing frameworks: junit, mockito. Разбор примеров и ДЗ.
1 декабря, 11:00 — 12:30
6.1 Типы ссылок. Кэширование.
Типы ссылок в Java. Системы кэширования. Ehcache.
4 декабря, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-11: my cache engine
Напишите свой cache engine с soft references. Добавьте кэширование в DBService из заданий myORM или Hibernate ORM
6.2 Логгирование
java.util.logging, log4j, slf4j. Разбор примеров и ДЗ.
8 декабря, 11:00 — 12:30
Проектирование. Работа с внешними сервисами
7.1 Основы дизайна
Понятие дизайна приложения и паттерна проектирования. Концепты проектирования ООП: delegation, aggregation, composition, association, coupling and cohesion. SOLID.
11 декабря, 20:00 — 21:30
Домашние задания: 1
1 ДЗ 06. Написать эмулятор АТМ
Написать эмулятор АТМ (банкомата). Объект класса АТМ должен уметь • принимать банкноты разных номиналов (на каждый номинал должна быть своя ячейка) • выдавать запрошенную сумму минимальным количеством банкнот или ошибку если сумму нельзя выдать • выдавать сумму остатка денежных средств
7.2 Behavioral patterns
Behavioral patterns часть 1. Разбор примеров и ДЗ.
15 декабря, 11:00 — 12:30
8.1 Structural patterns
Behavioral patterns часть 2. Structural patterns.
18 декабря, 20:00 — 21:30
Домашние задания: 1
1 ДЗ 07. ATM Department
Написать приложение ATM Department: • Приложение может содержать несколько ATM • Departmant может собирать сумму остатков со всех ATM • Department может инициировать событие – восстановить состояние всех ATM до начального. (начальные состояния у разных ATM могут быть разными)
8.2 Creational patterns
Creational patterns. Связь между паттернами, "похожие" паттерны. Антипаттерны. Разбор примеров и ДЗ.
22 декабря, 11:00 — 12:30
9.1 Сериализация
Java IO. Сериализация. Запись и чтение бинарных файлов. Работа с simple-json, javax.json и com.google.code.gson.
25 декабря, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-08: JSON object writer
Напишите свой json object writer (object to JSON string) аналогичный gson на основе javax.json или simple-json и Reflection. Поддержите массивы объектов и примитивных типов, и коллекции из стандартный библиотерки.
9.2 XML
XML. Java NIO. Разбор примеров и ДЗ.
29 декабря, 11:00 — 12:30
10.1 JDBC
Работа с реляционной базой. JDBC. ORM через паттерн Executor. JPA.
1 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-09: myORM
Создайте в базе таблицу с полями: id bigint(20) NOT NULL auto_increment name varchar(255) age int(3) Создайте абстрактный класс DataSet. Поместите long id в DataSet. Добавьте класс UserDataSet (с полями, которые соответствуют таблице) унаследуйте его от DataSet. Напишите Executor, который сохраняет наследников DataSet в базу и читает их из базы по id и классу. <t dataset="" extends=""> void save(T user){…} <t dataset="" extends=""> T load(long id, Class<t> clazz){…}</t></t></t>
10.2 myBatis
Inmemory базы. myBatis. Разбор примеров и ДЗ.
5 января, 11:00 — 12:30
11.1 Hibernate
Hibernate. Конфигурирование Hibernate в коде и в XML. Java persistency query language. DBSevice pattern.
8 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-10: Hibernate ORM
На основе предыдущего ДЗ (myORM): 1. Оформить решение в виде DBService (interface DBService, class DBServiceImpl, UsersDAO, UsersDataSet, Executor) 2. Не меняя интерфейс DBSerivice сделать DBServiceHibernateImpl на Hibernate. 3. Добавить в UsersDataSet поля: адресс (OneToOne) class AddressDataSet{ private String street; } и телефон* (OneToMany) class PhoneDataSet{ private String number; } Добавить соответствущие датасеты и DAO. 4.** Поддержать работу из пункта (3) в myORM
11.2 JPQL
Connection Pools. JPQL. Разбор примеров и ДЗ.
12 января, 11:00 — 12:30
12.3 No SQL
No SQL. Работа с MongoDB. Разбор примеров и ДЗ.
15 января, 20:00 — 21:30
12.1 Web сервер
Встроенный веб сервер. Сервлеты: servlet API, жизненный цикл сервлета. Jetty: устройство, работа, подключение сервлетов.
19 января, 11:00 — 12:30
Домашние задания: 1
1 ДЗ-12: Веб сервер
Встроить веб сервер в приложение из ДЗ-11. Сделать админскую страницу, на которой админ должен авторизоваться и получить доступ к параметрам и состоянию кэша.
Многопоточность и ассинхронность
13.1 Thread
Многопоточность. Класс и объект Thread. Создание многопоточного приложения. Проблемы многопоточного доступа.
22 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-14: Многопоточная сортировка
Написать приложение, которое сортирует массив чисел в 4 потоках с использованием библиотеки или без нее.
13.2 JMM
Happens before. Cooperation. Atomics.
26 января, 11:00 — 12:30
14.1 Asynchronous Web applications
AJAX. Long polling. Websockets. Разбор примеров из ДЗ.
29 января, 20:00 — 21:30
14.2 Dependency injection
Web archive. Jetty as an external web server. Spring IoC. Spring beans.
2 февраля, 11:00 — 12:30
Домашние задания: 1
1 ДЗ-13: WAR
Собрать war для приложения из ДЗ-12. Создавать кэш и DBService как Spring beans, передавать (inject) их в сервлеты. Запустить веб приложение во внешнем веб сервере.
15.1 Message System
Потокобезопасные контейнеры.Система обмена сообщениями.
5 февраля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-15: MessageSystem
Добавить систему обмена сообщениями в веб сервер из ДЗ-13. Пересылать сообщения из вебсокета в DBService и обратно. Организовать структуру пакетов без циклических зависимостей.
15.2 Executors
Поддержка многопоточности в стандартной библиотеке. Workers. Executors. Fork/Join. Разбор примеров и ДЗ.
9 февраля, 11:00 — 12:30
16.1 Многопроцессные приложения
Сокеты. RMI. Разбор примера многопроцессного приложения.
12 февраля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-16: MessageServer
Cревер из ДЗ-15 разделить на три приложения: • MessageServer • Frontend • DBServer Запускать Frontend и DBServer из MessageServer. Сделать MessageServer сокет-сервером, Frontend и DBServer клиентами. Пересылать сообщения с Frontend на DBService через MessageServer. Запустить приложение с двумя фронтендами (на разных портах)* и двумя датабазными серверами. * если у вас запуск веб приложения в контейнере, то MessageServer может копировать root.war в контейнеры при старте
16.2 NIO
Registration. NIO для сокетов. Проектная работа.
16 февраля, 11:00 — 12:30
17.1 Консультация по ДЗ и проектам
19 февраля, 20:00 — 21:30
18.1 Консультация по ДЗ и проектам
23 февраля, 11:00 — 12:30
Расписание занятий
Ваша группа
(cтарт 30 октября)
Вторник и суббота
11:00—12:30 и 20:00—21:30
Группа: Java-2018-10
Другие группы
Пятница и суббота
20:00—21:30 и 10:00—11:30
Группа: Java-2018-08
Среда и четверг
20:00—21:30
Группа: Java-2018-06
Подглядеть
Java: примеры паттернов
Виталий Чибриков
Aсинхронное программирование
Владимир Сонькин
Java: исключения
Многопоточность в Java: по ту сторону от synchronized-notifyAll
Сергей Петрелевич
Java-разработчик
Ирина Гаранина, тимлид команды разработки
Многопоточность в Java. Базовые примитивы синхронизации.
Сергей Петрелевич
Больше материалов
Видеоматериалы по теме
День открытых дверей
28 августа в 20:00
День открытых дверей
26 июня в 20:00
День открытых дверей
10 апреля в 20:00
После обучения вы

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

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

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

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

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

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

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


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




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

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

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

- свой ORM;

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

- кэш для hibernate​.
Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Java»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Java»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
Общая стоимость
60 000 ₽
В месяц: 11 500 ₽
В рассрочку: около ₽ в месяц
Продолжительность
6 месяцев
Начало занятий
30 октября
Java – это один из языков программирования, с помощью которого создают приложения для работы и игр. Такие продукты устанавливаются на стационарные компьютеры, мобильные устройства и облачные высоконагруженные кластеры. Высокая востребованность разработчиков, владеющих этим языком, делает популярными курсы Java. Если вы хотите стать настоящим профессионалом в сфере IT, приглашаем пройти обучение в нашем центре.
Условия и результаты
Сразу отметим, что Java-изучение у нас предусматривает подготовку не с нуля. Чтобы стать слушателем, необходимо владеть базовыми знаниями и иметь определенный опыт работы с этим или другим языком. Если ваш уровень слишком низкий, можете пройти подготовительные курсы, где получите требуемые навыки взаимодействия с Java.
Подготовительные и основные занятия проводятся в формате онлайн. После выпуска вы:
сможете заниматься разработкой серверных приложений;
освоите разные подходы к созданию программных продуктов;
поймете особенности языка и платформы;
получите все видеозаписи и материалы, используемые во время занятий.
Также обучение Java в OTUS – это шанс на трудоустройство в крупную IT-компанию. Проходите вступительное тестирование и записывайтесь на курсы по телефону или онлайн.