Що дасть вам цей курс:
Буткемп Java допоможе вам повністю зануритися в програмування і отримати навички Java-розробника за короткий термін.
Програма націлена на формування цілісного розуміння професійної розробки мовою Java. Ви освоїте основи програмування на Java і закладіть фундамент з навичок, необхідних для роботи в команді розробників.
Формат буткемпа допоможе протягом 2-х місяців пройти програму спеціалізації і сформувати навички впевненого розробника.
список основних інформаційних ресурсів і сценарії роботи з ними:
Hard skills: Java Core, алгоритми і структури даних, основи Spring Framework (MVC, Data, Security, Cloud), Docker + K8S, CI\CD, Git, TDD, DDD, Clean Code, шаблони проектування, SOLID, Code Review. Soft Skills: Agile + Scrum, командна робота.
Реальні приклади (Особисті і найбільш помітних особистостей ком'юніті) побудови успішної ІТ кар'єри (success stories).
На кого орієнтований курс?
Курс розрахований на новачків, хто хоче навчитися програмуванню з нуля і дійти до мінімальної позиції, коли можна працевлаштуватися розробником.
Що зможе робити випускник після закінчення курсу?
Працевлаштуватися на junior позицію.
У випускника буде сформований образ його професійного майбутнього (ким і де він себе бачить через 3 роки) з маршрутом руху до цього образу (в тому числі і використанням ОСВІТНІХ МОЖЛИВОСТЕЙ OTUS). Він зможе успішно пройти співбесіду на позицію junior розробника. Він зможе успішно працювати в команді і протягом 1 року перейти на позицію middle розробника. Він стане частиною ІТ-ком'юніті і зможе вносити посильний внесок у його розвиток (open source проекти і бази знань).
Тривалість курсу-3 місяці (338 академічних годин).
орієнтовний старт ~ Лютий 2022
1 Введення в екосистему Java. Знайомство з інфраструктурою курсу. Налаштування оточення.
1 вступне заняття
2 Огляд екосистеми Java.Технологічний стек. Види додатків. Roadmap розробника. Роботодавець.
Цілі заняття: зрозуміти поточний стан ринку IT, ніша Java.
Короткий зміст: що таке IT; напрямки в IT (адміністрування, розробка, менеджмент, автоматизація процесів, дизайн
3 командний рядок linux. Базові поняття, основи роботи в командному рядку
Цілі заняття: познайомитися з Linux; пояснити, чому Java-розробнику важливо вміти користуватися Linux короткий зміст: чим Linux відрізняється від Windows і MacOs; навіщо програмісту Linux;
4 години практики з ментором 1
Цілі заняття: познайомитися з екосистемою Java.
Короткий зміст: детально познайомитися з ресурсами Java Community, налаштувати розсыкки і підписки, в соотвепствии зі своїми інтересами. Ознайомитися з основними проектами Java Community і вибрати для себе ті, в яких було б цікаво взяти участь.
5 години практики з ментором 2
Цілі заняття: навчитися керувати сервісами в linux
Короткий зміст: зареєструвати заздалегідь підготовлений сервіс. Змінити його версію з використанням символічних посилань. Виконати аналіз журналу його роботи. Домашні завдання 1дз 1
6 Установка Java в Linux, MacOS, Windows. WSL. Встановлення та налаштування IDE IntelliJ Idea, VS Code. Основи роботи в IDE.
Цілі заняття: зрозуміти чим відрізняється IDE від мови програмування, які є популярні IDE для Java Короткий зміст: Установка Java; текстовий редактор як інструмент написання програми, чому програми типу MS Word не підходять; що таке компілятор і для чого він потрібен; компіляція програми; що таке IDE і чим корисна; які є полулярные IDE для Java: Eclipse, NetBeans, JDeveloper, Idea, Visual Studio Code; демонстрація Idea як найпопулярнішою IDE; чому Visual Studio Code хороша для початківців.
7 введення в версіонування коду через GIT
Цілі заняття: познайомитися системами контролю версія і підходами управлінням кодом при командній роботі короткий зміст: Version Control і його історія, навіщо вести історію коду; принципи роботи Git, branch-і і commit-и; основні команд; GitHub, створення аккаунта; Pull Request.
8 години практики з ментором 1
Цілі заняття: налаштувати робоче місце для командної роботи навчитися встановлювати необхідне програмне забезпечення, освоїти компіляцію і запуск java-додатки.
Короткий зміст: встановити кілька версія JDK. Навчитися змінювати версію за замовчуванням. Встановити Java для специфічної версії java. Завантажити проект в Idea (VS Code). Вивчити його структуру. Навчитися його запускати і тестувати виправити проблеми з компіляцією і тестами. У парах скористатися функцією Idea code with me або Live Share в VS Code
9 години практики з ментором 2
Цілі заняття: навчитися спільно працювати на спільним текстом
Короткий зміст: Робота в парах: створити новий репозиторій для спільною роботою на статті в markdown. Згідно з планом написати свої частини статті і відправити PR на один одного. Виконати text review і злити зміни в основну гілку. Правка одного і того ж тексту і вирішення конфліктів. Використання тегів для фіксування версій статті. Домашні завдання 1дз 2
2 Java Core. Синтаксис мови.
1 Структура програми на Java. Примітивні типи.
Цілі заняття: написати першу програму на Java.
Короткий зміст: текстовий файл для програми; функція main; javac і його основні параметри; як запустити скомпільований клас; що таке тип даних; константи; enum; Code conventions і чому це важливо. 2 умовні оператори. Оператори циклу. Масив.
Цілі заняття: познайомитися з масивами, циклами і умовними операторами.
Короткий зміст: масиви в Java і навіщо один потрібні; умовні оператори, switch-case;
3 години практики з ментором 1
Цілі заняття: реалізувати на Java завдання, які вирішувалися на минулому уроці. Перевірити коректність їх роботи за допомогою тестів. Виконати налагодження в IDE.
Короткий зміст: написати систему тестування. На екран виводиться питання і варіанти відповіді, з клавіатури вводиться номер відповіді. Питання та відповіді повинні бути зашиті в коді, зовнішнього зберігання в файлах або базах даних не потрібно. Повинно бути три питання, кожен з 3-5 варіантами відповідей. Всі питання з одним правильним варіантом відповіді. Після проходження тесту відображається результат.
4 години практики з ментором 2
Цілі заняття: вирішення завдань зі створення та обробки масивів (перетворення масивів, перестановки, обчислення). Завдання з лінійної алгебри. Реалізація стека і черги за допомогою масивів. Рішення задач по створенню і обробки масивів (перетворення масивів, перестановки, обчислення). Завдання з лінійної алгебри. Реалізація стека і черги за допомогою масивів.
Короткий зміст: потренуватися в роботі з масивами-пошук анаграми-пошук максимального і мінімального значення - обчислення середнього значення - транспонування масиву домашні завдання 1дз 4
5 класи та інтерфейси. Введення в ООП 1
Цілі заняття: познайомитися з основами концепції ООП і реалізацією ООП в Java.
Короткий зміст: чому ООП стало популярним; Java і ООП; класи та інтерфейси в Java.
6 класи та інтерфейси. Введення в ООП 2
Цілі заняття: познайомитися з основними практиками ООП
Короткий зміст: що таке поліморфізм, види поліморфізму; ООП як окремий випадок поліморфізму;
7 години практики з ментором 1
Цілі заняття: отримати навички розробки ООП-моделі
Короткий зміст: переписати в ООП-стилі завдання з розробки програми для тестування з заняття ""Java синтаксис: масиви, умовні оператори, цикли"". Продумати структуру класів і як вони будуть між собою взаємодіяти (які будуть методи в класах).
8 години практики з ментором 2
Цілі заняття: застосувати практики ОПП на практиці
Короткий зміст: "написати емулятор АТМ (банкомату). Об'єкт класу АТМ повинен вміти: - приймати банкноти різних номіналів (на кожен номінал повинна бути своя комірка) - видавати запитану суму мінімальною кількістю банкнот або помилку якщо суму не можна видати це завдання не на алгоритми, а на проектування. Тому оптимізувати видачу не треба. - видавати суму залишку грошових коштів " домашні завдання 1дз 5
9 введення в ФП 1
Цілі заняття: розглянути введення в функціональне програмування (ФП);
Короткий зміст: чисті функції; не мутуючі дані; лямбда-функції; монади;
10 ФП в Java
Цілі заняття: познайомитися з можливостями ФП Java.
Короткий зміст: функціональний інтерфейс
11 години практики з ментором 1
Цілі заняття: отримати навички розробки моделі за допомогою ФП рішення задач 6-го дня за допомогою ФП. Аналіз відмінності.
Короткий зміст: переписати в ФП-стилі завдання з розробки програми для тестування з заняття ""Java синтаксис: масиви, умовні оператори, цикли"". Продумати структуру класів і як вони будуть між собою взаємодіяти (які будуть методи в класах).
12 години практики з ментором 2
Цілі заняття: застосувати практики ФП на практиці розвиток завдань за рахунок додавання валідного стану об'єктів. Реалізація валідації за допомогою Exception.
Короткий зміст: написати емулятор АТМ (банкомату). Об'єкт класу АТМ повинен вміти: - приймати банкноти різних номіналів (на кожен номінал повинна бути своя комірка) - видавати запитану суму мінімальною кількістю банкнот або помилку якщо суму не можна видати це завдання не на алгоритми, а на проектування. Тому оптимізувати видачу не треба. - видавати суму залишку грошових коштів домашні завдання 1дз 6
13 робота з рядками. Регулярні вирази
1 вступне заняття
2 Огляд екосистеми Java.Технологічний стек. Види додатків. Roadmap розробника. Роботодавець.
Цілі заняття: зрозуміти поточний стан ринку IT, ніша Java.
Короткий зміст: що таке IT; напрямки в IT (адміністрування, розробка, менеджмент, автоматизація процесів, дизайн
3 командний рядок linux. Базові поняття, основи роботи в командному рядку
Цілі заняття: познайомитися з Linux; пояснити, чому Java-розробнику важливо вміти користуватися Linux короткий зміст: чим Linux відрізняється від Windows і MacOs; навіщо програмісту Linux;
4 години практики з ментором 1
Цілі заняття: познайомитися з екосистемою Java.
Короткий зміст: детально познайомитися з ресурсами Java Community, налаштувати розсыкки і підписки, в соотвепствии зі своїми інтересами. Ознайомитися з основними проектами Java Community і вибрати для себе ті, в яких було б цікаво взяти участь.
5 години практики з ментором 2
Цілі заняття: навчитися керувати сервісами в linux
Короткий зміст: зареєструвати заздалегідь підготовлений сервіс. Змінити його версію з використанням символічних посилань. Виконати аналіз журналу його роботи. Домашні завдання 1дз 1
6 Установка Java в Linux, MacOS, Windows. WSL. Встановлення та налаштування IDE IntelliJ Idea, VS Code. Основи роботи в IDE.
Цілі заняття: зрозуміти чим відрізняється IDE від мови програмування, які є популярні IDE для Java Короткий зміст: Установка Java; текстовий редактор як інструмент написання програми, чому програми типу MS Word не підходять; що таке компілятор і для чого він потрібен; компіляція програми; що таке IDE і чим корисна; які є полулярные IDE для Java: Eclipse, NetBeans, JDeveloper, Idea, Visual Studio Code; демонстрація Idea як найпопулярнішою IDE; чому Visual Studio Code хороша для початківців.
7 введення в версіонування коду через GIT
Цілі заняття: познайомитися системами контролю версія і підходами управлінням кодом при командній роботі короткий зміст: Version Control і його історія, навіщо вести історію коду; принципи роботи Git, branch-і і commit-и; основні команд; GitHub, створення аккаунта; Pull Request.
8 години практики з ментором 1
Цілі заняття: налаштувати робоче місце для командної роботи навчитися встановлювати необхідне програмне забезпечення, освоїти компіляцію і запуск java-додатки.
Короткий зміст: встановити кілька версія JDK. Навчитися змінювати версію за замовчуванням. Встановити Java для специфічної версії java. Завантажити проект в Idea (VS Code). Вивчити його структуру. Навчитися його запускати і тестувати виправити проблеми з компіляцією і тестами. У парах скористатися функцією Idea code with me або Live Share в VS Code
9 години практики з ментором 2
Цілі заняття: навчитися спільно працювати на спільним текстом
Короткий зміст: Робота в парах: створити новий репозиторій для спільною роботою на статті в markdown. Згідно з планом написати свої частини статті і відправити PR на один одного. Виконати text review і злити зміни в основну гілку. Правка одного і того ж тексту і вирішення конфліктів. Використання тегів для фіксування версій статті. Домашні завдання 1дз 2
2 Java Core. Синтаксис мови.
1 Структура програми на Java. Примітивні типи.
Цілі заняття: написати першу програму на Java.
Короткий зміст: текстовий файл для програми; функція main; javac і його основні параметри; як запустити скомпільований клас; що таке тип даних; константи; enum; Code conventions і чому це важливо. 2 умовні оператори. Оператори циклу. Масив.
Цілі заняття: познайомитися з масивами, циклами і умовними операторами.
Короткий зміст: масиви в Java і навіщо один потрібні; умовні оператори, switch-case;
3 години практики з ментором 1
Цілі заняття: реалізувати на Java завдання, які вирішувалися на минулому уроці. Перевірити коректність їх роботи за допомогою тестів. Виконати налагодження в IDE.
Короткий зміст: написати систему тестування. На екран виводиться питання і варіанти відповіді, з клавіатури вводиться номер відповіді. Питання та відповіді повинні бути зашиті в коді, зовнішнього зберігання в файлах або базах даних не потрібно. Повинно бути три питання, кожен з 3-5 варіантами відповідей. Всі питання з одним правильним варіантом відповіді. Після проходження тесту відображається результат.
4 години практики з ментором 2
Цілі заняття: вирішення завдань зі створення та обробки масивів (перетворення масивів, перестановки, обчислення). Завдання з лінійної алгебри. Реалізація стека і черги за допомогою масивів. Рішення задач по створенню і обробки масивів (перетворення масивів, перестановки, обчислення). Завдання з лінійної алгебри. Реалізація стека і черги за допомогою масивів.
Короткий зміст: потренуватися в роботі з масивами-пошук анаграми-пошук максимального і мінімального значення - обчислення середнього значення - транспонування масиву домашні завдання 1дз 4
5 класи та інтерфейси. Введення в ООП 1
Цілі заняття: познайомитися з основами концепції ООП і реалізацією ООП в Java.
Короткий зміст: чому ООП стало популярним; Java і ООП; класи та інтерфейси в Java.
6 класи та інтерфейси. Введення в ООП 2
Цілі заняття: познайомитися з основними практиками ООП
Короткий зміст: що таке поліморфізм, види поліморфізму; ООП як окремий випадок поліморфізму;
7 години практики з ментором 1
Цілі заняття: отримати навички розробки ООП-моделі
Короткий зміст: переписати в ООП-стилі завдання з розробки програми для тестування з заняття ""Java синтаксис: масиви, умовні оператори, цикли"". Продумати структуру класів і як вони будуть між собою взаємодіяти (які будуть методи в класах).
8 години практики з ментором 2
Цілі заняття: застосувати практики ОПП на практиці
Короткий зміст: "написати емулятор АТМ (банкомату). Об'єкт класу АТМ повинен вміти: - приймати банкноти різних номіналів (на кожен номінал повинна бути своя комірка) - видавати запитану суму мінімальною кількістю банкнот або помилку якщо суму не можна видати це завдання не на алгоритми, а на проектування. Тому оптимізувати видачу не треба. - видавати суму залишку грошових коштів " домашні завдання 1дз 5
9 введення в ФП 1
Цілі заняття: розглянути введення в функціональне програмування (ФП);
Короткий зміст: чисті функції; не мутуючі дані; лямбда-функції; монади;
10 ФП в Java
Цілі заняття: познайомитися з можливостями ФП Java.
Короткий зміст: функціональний інтерфейс
11 години практики з ментором 1
Цілі заняття: отримати навички розробки моделі за допомогою ФП рішення задач 6-го дня за допомогою ФП. Аналіз відмінності.
Короткий зміст: переписати в ФП-стилі завдання з розробки програми для тестування з заняття ""Java синтаксис: масиви, умовні оператори, цикли"". Продумати структуру класів і як вони будуть між собою взаємодіяти (які будуть методи в класах).
12 години практики з ментором 2
Цілі заняття: застосувати практики ФП на практиці розвиток завдань за рахунок додавання валідного стану об'єктів. Реалізація валідації за допомогою Exception.
Короткий зміст: написати емулятор АТМ (банкомату). Об'єкт класу АТМ повинен вміти: - приймати банкноти різних номіналів (на кожен номінал повинна бути своя комірка) - видавати запитану суму мінімальною кількістю банкнот або помилку якщо суму не можна видати це завдання не на алгоритми, а на проектування. Тому оптимізувати видачу не треба. - видавати суму залишку грошових коштів домашні завдання 1дз 6
13 робота з рядками. Регулярні вирази
https://privatelink.de/?https://otus.ru/greenlight/java-bootcamp