Курс "Основы программирования на языке JAVA" (Junior Java developer)

Стоимость 2500€

Общий объем обучения

200 академических часов, в том числе объем аудиторной и практической работы 120 академических часов и объем самостоятельной работы (дома) 80 академических часов

Täiskasvanuhariduse majandustegevusteade 214280 

Учебная группа: Tarkvara ja rakenduste arendus ning analüüs

Язык обучения:   Vene

Группа до 8 человек

После подачи налоговой декларации физического лица возможно получить 20% стоимости курса.

 

Целевая аудитория

Курс предназначен на лиц:

- ИТ-специалистов со средним и профессиональным образованием, желающих повысить свою квалификацию или получить новые знания в своей области;

- студенты высших и средних технических учебных заведений с IT-образованием;

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

желающих получить знания основ программирования на языке JAVA, на уровне Junior Java developer 

 

Желающие пройти данных курс должны обладать следующими навыками и знаниями:    
-уверенный пользователь компьютера
- опыт написания различных скриптов/макросов (язык программирования не имеет значения)

УЧАЩИЙСЯ ДОЛЖЕН ПРИХОДИТЬ НА ОБУЧЕНИЕ СО СВОИМ ЛАПТОПОМ

 

Результаты обучения
На момент окончания курса учащийся:
- создает базовые java-модули, используя современные стандарты написания кода и современные возможности языка Java (1.8);
- применяет принципы объектно-ориентированного программирования;
- оптимизирует работу приложения, основываясь на выборе оптимальных алгоритмов;
- создает масштабируемые приложения с использованием эргономичных паттернов проектирования кода;
- поддерживает устойчивость и безопасность приложений с большим количеством потоков;
- имеет проф.уровень: junior software developer, programing language Java;
- имеет знания и навыки работы: с Java Core;
- знает инструменты сборки maven;
- владеет прикладными технологиями:  Spring Core, Spring Data, Spring Web, Spring Security, Hibernate, JDBC
- знает систему контроля версий: GIT;
- использует базовые методологии разработки программного обеспечения: Agile, Kanban;

Данный курс основан на имитации реальной работы по разработке программного обеспечения. За время проведения студенты будут вовлечены в полноценный процесс разработки программного обеспечения: Представление, анализ и документирование “use cases”, прототипирование интерфейсов  по взаимодействию пользователей с приложением, подготовка back-end и  front-end  частей. Основной акцент уделяется back-end части, а именно производительности, качеству и оптимальному построению кода. Студенты будут полноценно пользоваться современными инструментами по обеспечению командной работы, такими как Git, Jira, Confluence.

Преподаватели курса:

Олег Пасечник, IT-специалист, имеет высшее образование, разработчик программного обеспечения с опытом работы

Вадим Семенов, IT-специалист, имеет высшее образование, инженер-разработчик программного обеспечения с опытом работы

 

Программа курса

  1. Основы программирования,базовое представление о языке Java, базовые принципы ООП 

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

 

1.1. Основы программирования. (20 акад.ч)

  • Базовые понятия в программировании (переменные, присвоения, выполнение программ,  Hello world;

  • Арифметические операторы и порядок их выполнения;

  • Логические операции и порядок их выполнения;

  • Конструкции обеспечивающие логические ветвления;

  • Массивы как простейшая структура данных;

  • Конструкции обеспечивающие циклическое выполнение кода (for, while, do while);

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

 

1.2. Особенности выполнения в среде Java (2 акад.ч)  

  • Обзор языка Java;

  • Настройка среды;

  • Специфика файлов, соглашения в наименовании, точка входа;

 

1.3. Особенности синтаксиса Java (4 акад.ч) 

  • Примитивные типы данных;

  • Приведение типов;

  • Что такое константы;

  • Что такое Enum;

 

1.4.  Основы Объектно-ориентированного программирования. (24 ак. ч.) 

  • Пользовательский тип данных. Создаем свой первый Class;

  • Конструкторы объектов. Детальное рассмотрение модели распределения памяти;

  • Сокрытие тонкостей работы класса. Инкапсуляция;

  • Группировка классов - package. Области видимости;

  • Выделение общей функциональности классов. Наследование;

  • Полиморфизм. Переопределение поведения;

  • Интерфейсы, абстрактные классы;

 

1.5 .Вспомогательные инструмент организации работы. (8 ак.ч.)

  • Основы работы с Jira https://www.atlassian.com/software/jira

  • Настройка проекта, доски (board);

  • Постновка персональных задач, выполнение, мониторинг и последующее обучение через Jira

  • Работа с Git

 

2. Продвинутые возможности языка Java

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

 

2.1. Структуры данных. Collection framework. (9 ак. ч.) 

  • Структуры данных: Array vs List, Set, Map, Queue, Dequeue

  • Сложность алгоритма

  • Оптимизация алгоритмов

  • Практическая реализация одного из интерфейсов Collection

 

2.2. Функциональное программирование. Lambda, Stream. (9 ак. ч.) 

  • Определение, основные понятия. Описание основных функций

  • Java 1.8: Функциональные интерфейсы

  • Java 1.8: Stream API

  • Работа со строками. Класс - String​

2.3. Многопоточное программирование. Threads.  (9 ак. ч.) 

  • Определение, основные понятия. Описание основных функций

  • Синхронизация ресурсов

  • Работа с потоками Thread, Runnable, Callable.

  • Аннотации, Reflection

  • Базовые принципы Reflection

  • Декларативный подход в программировании. Аннотации.

  • Создание пользовательских аннотаций

2.4. ​Шаблоны проектирования  (4 ак. ч.)  

  • Что такое шаблон/паттерн их группы;

  • Объектные паттерны: Singleton;

  • Объектные паттерны: Factories + Abstract Factory;

  • Объектные паттерны: Builder;

3. Профессионально необходимые прикладные инструменты и технологии

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

​​

3.1. Основы работы с Базами Данных (12 ак. ч.) 

3.2. Инструменты для сборки проектов. Maven.(4 ак. ч.) 

  • Основы реляционных баз данных

  • Java средства работы с Базами Данных, JDBC

3.3. Основы работы Spring framework (12 ак. ч.) 

  1. Высокоабстракный способ работы с данными: Spring Data (8 ак.ч.)

4. Создание собственного Вэб проекта

- в данной части курса студенты под руководством преподавателя самостоятельно разрабатываю полноценное вэб приложение. Работа проходит с учетом всех полученных знаний и навыков, что позволяет закрепить пройденный материал. Результатом работы будет проект в https://github.com/, который можно использовать как площадку для улучшения навыков самостоятельно и как портфолио своих навыков что даст существенное преимущество при устройстве на работу. 

 

4.1. Анализ идеи проекта(4 ак. ч.) 

  • Подготовка “use cases”, определение границ MVP (Minimum Viable Product)

  • Документирование решений в Confluence: https://www.atlassian.com/software/confluence 

  • Прототипирование принятых решений

 

4.2. Основы работы Вэб приложения, Spring mvc (4 ак. ч.) 

  • Основы HTML (3 ак. ч.) 

  • Применение на практике методологии разработки программного обеспечения

  • Декомпозиция задач;

  • Оценка времени выполнения (grooming);

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

Программа курса соcтавлена на основе профессионального стандарта 

Noorem tarkvaraarendaja, tase 4 (Junior Software Developer, EstQF Level 4) Младший разработчик программного обеспечения, уровень 4:

 

B.2.1 Разработка продукта или проекта

1. вносит вклад в планирование проекта с точки зрения потребности во времени и других ресурсах;

2. Участвует в процессе выбора технологий и инструментов.

 

B.2.2 Дизайн приложения

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

2. использует в своей работе данные тестирования и прототипирования;

3. участвует в разработке пользовательского интерфейса.

 

B.2.3 Мониторинг технологических разработок

1. в курсе последних технологических достижений в области ИКТ, использует соответствующие источники информации.

 

B.2.4 Планирование и разработка

1. оценивает выполнимость проекта на основе указанных заказчиком условий и ограничений

2. планирует свою работу в соответствии с принятыми условиями создания проекта ;

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

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

5. обеспечивает совместимость созданных программных компонентов с другими используемыми аппаратными и программными компонентами;

6. целенаправленно и эффективно использует средства разработки.

 

B.2.5 Тестирование

1. пишет (автоматические) тесты на самописный / записываемый код;

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

 

B.2.6 Внедрение / установка / развертывание решения

1. Тестирует созданные программные компоненты можно установить (в том числе с помощью систем автоматической установки);

2. Устанавливает созданные программные компоненты в требуемую среду (включая тестовую, предварительную и производственную среду) в соответствии с процессом выпуска, используемым в компании;

3. Участвует в процессе внедрения.

B.2.7 Подготовка документации

1. обеспечивает доступность и актуальность документации на протяжении всего жизненного цикла созданного решения;

2. Создает документацию основаную на общепринятых передовых методах (в т.ч. стандарты документации и инструменты для языков программирования) и требованиях, установленных в компании.

 

Младший разработчик программного обеспечения, уровень 4, выполняет следующую работу:

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

Он может найти несоответствия в постановке задачи и предоставить аналитику информацию

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

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

Что такое профессиональный стандарт

 

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

 

Для чего нужен профессиональный стандарт

 

  • В качестве основы для составления учебных планов и программ обучения, отвечающих требованиям рынка труда;

  • Профессиональный стандарт – это основа для оценки компетентности;

  • Помощь работодателю в описании и представлении профессий, подборе сотрудников, составлении должностных инструкций, определении профессиональных требований к сотрудникам, планировании обучения;

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

  • Помощь в организатору обучения, студенту, родителю, консультанту и другим лицам в получении информации о том, какой работник требуется на рынке труда;

  • Основа для составления международных профессиональных сертификатов.

  • Instagram - черный круг
  • Odnoklassniki - черный круг
  • Vkontakte - черный круг
  • LinkedIn - Black Circle
  • Facebook - Black Circle
  • Twitter - Black Circle
  • Pinterest - Black Circle