Разработка Java подобного языка программирования за 2 месяца

Интерактивный Java курс по разработке языка программирования от задумки и до получения конечного продукта
IT: Для программистов и IT-специалистов / Java
Udemy логоUdemy
Открытый набор
Онлайн
от 1 090 ₽
Зарегистрироваться

Чему вы научитесь

  • Использовать принципы SOLID при разработке проекта любой сложности
  • Использовать императивные и функциональные стили программирования на Java
  • Использовать технику TDD при разработке проекта любой сложности
  • Реализовывать корректные Unit тесты
  • Оценивать качество покрытия тестами Вашего кода
  • Автоматизировать анализ качества написания кода
  • Тестировать графический пользовательский интерфейс
  • Использовать возможности мультимодульной архитектуры Java
  • Правильно использовать шаблоны проектирования в сложном проекте
  • Писать чистый и понятный другому программисту код
  • Разрабатывать кроссплатформенные приложения на Java
  • Реализовывать программный код по неизвестному Вам ранее алгоритму

Требования

  • Опыт написания простых программ на Java с использованием классов, интерфейсов и исключений
  • Для проверки того достаточно ли у Вас знаний для успешного прохождения курса, ознакомьтесь с разделом "Необходимые знания и навыки для успешного прохождения курса"

Описание

Вы познакомились с основами программирования, написали несколько простых программ и Вам очень понравился сам процесс создания приложений. Вы твердо решили стать программистом уже сейчас или через несколько месяцев/лет, потому что Вы понимаете что в ближайшем будущем (которое наступит не через 50 лет, а уже через 3-4 года) многие профессии будут заменены роботами. Поэтому уже сейчас разобраться в принципах разработки сложных программ является отличной инвестицией в Ваше будущее. В этом случае выбор в пользу Java — это правильный и удачный выбор, потому что с помощью Java могут быть созданы любые типы приложений:

  1. Обычные десктопные приложения;

  2. Web приложения, Web порталы и Web сервисы;

  3. Приложения для мобильной платформы Android;

  4. Приложения использующие искусственный интеллект и машинное обучение.

Но, для того чтобы конкурировать с огромным числом желающих быть программистами, Вам необходимо иметь важные навыки отличающие профессионала от любителя, а именно:

  1. Уметь работать в команде и писать свой код таким образом, чтобы он не при каких обстоятельствах не ломал код написанный другими разработчиками. (Один из самых важных навыков, так как при разработке большинства программных продуктов используется труд нескольких разработчиков одновременно);

  2. Уметь писать простой и понятный любому разработчику код. (Второй по важности навык. В мире огромной конкуренции бизнес правила работы приложения изменяются иногда даже чаще чем эти правила успевают быть полностью реализованы разработчиками и почти в 90% случаев разработчик изменяет написанный им же код через некоторое время. Если код простой и понятный, то при его изменениях вероятность возникновения новых ошибок стремится к нулю.);

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

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

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

Данный курс направлен на практическое освоение описанных выше навыков программирования на примере языка Java.

Чтобы эффективно работать, принося компании прибыль и получая заработную плату, каждый разработчик должен иметь следующие основные знания:

  1. Знания языка программирования, навыков работы со средой разработки, а также умение автоматизировать рутинные операции;

  2. Знания предметной области (например, если разрабатываемая система — это интернет магазин, то знание правил вычисления скидок на товары, а также правила действия акционных предложений; если разрабатываемая система — это автоматизированная система приема анализов пациентов, то знание основных форм приема анализов и правил их валидации и т.д.)

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

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

С самого детства, чтобы понять, как работает та или иная игрушка, мы ее разбирали и изучали как она устроена. Именно поэтому чтобы еще лучше понять как устроен язык программирования Java в данном курсе и будет разработан упрощенный вариант языка программирования Java.

Для эффективного обучения на данном курсе ознакомьтесь с рекомендациями по обучению, доступными в разделе: "Рекомендации по обучению на курсе" и выберите для себя наиболее подходящий подход.

Технологии разработки проекта:

  • Система контроля версий: git;

  • Система хостинга исходного кода: GitHub;

  • Основной язык программирования: Java 11 и выше;

  • Основная реализация Java: OpenJDK

  • Основная среда разработки: IntelliJ IDEA Community Edition;

  • Основная система автоматизации сборки проекта: Maven;

  • Используемые операционные системы: Windows, Linux, Mac OS;

  • Библиотека создания графического пользовательского интерфейса: JavaFX 11 (OpenJFX);

  • Библиотеки для автоматизированного тестирования: JUnit 5, Mockito;

  • Библиотека проверки стиля исходного кода: checkstyle;

  • Библиотека проверки степени покрытия тестами: jacoco;

  • Библиотека синтаксического анализатора исходного кода: pmd;

Статистика проекта:

  • Количество модулей: 8;

  • Общее количество классов: 525;

  • Количество классов автоматизированного тестирования: 100; (т.е. 20% кода — это автоматизированные тесты)

  • Количество строк кода: 32 421;

  • Количество строк кода без учета комментариев и пустых строк: 22 677;

  • Процент кода, который будет написан слушателем курса: от 0 до 30% (Зависит от того какой процент домашних заданий будет выполнен слушателем курса. Если все, то суммарно это почти 30% кода всего проекта)

Для кого этот курс

  • Данный курс является исключительно практическим курсом и предназначен для получения важных навыков, которые отличают профессионального разработчика от студента-любителя и сильно ценятся работодателями
Программа
Необходимые знания и навыки для успешного прохождения курса
Инструкции по обучению на курсе
Техническое задание на разработку проекта
Настройка окружения
Структура будущего проекта
Теория: Быстрое написание и изменение кода
Создание упрощенной версии для вывода сообщения: Hello world
Работа с выражениями
Реализация сложных операций
Поддержка функций
Разработка простой IDE
Сборка проекта для конечного пользователя
Дальнейшее развитие проекта
Записаться на курс
Текущая цена
1 090
10 990
Преподаватели
Дмитрий .
Java
Открытый набор
Онлайн
от 1 090 ₽
Зарегистрироваться