СИСТЕМНОЕ ОБУЧЕНИЕ НОВИЧКОВ С НУЛЯ

FULLSTACK
РАЗРАБОТЧИК ВЕБ ПРОЕКТОВ

Пройдите путь с нуля до fullstack программиста (backend + frontend) с поддержкой на каждом шаге. Вы сразу  начнете создавать один большой проект и добавлять все более сложный функционал (Java, Spring, Hibernate, PostgreSQL, React, OAuth2, Docker).

ЧТО ВЫ ДОЛЖНЫ УМЕТЬ

FULLSTACK разработчик

("fullstack" - полный стек, комплексный набор знаний)

В разных компаниях могут по-разному трактовать это понятие, но общее одно - минимально вы должны уметь:

1) создавать серверную часть на микросервисах (backend) - Java/Kotlin/Spring Cloud

2) создавать клиентскую часть (frontend) - React/Angular

3) использовать инструменты аутентификации (OAuth2, OpenID)

4) собирать и распространять свой проект в контейнерах (Kubernetes, Docker)

5) правильно обновлять приложение с помощью DevOps, CI/DI

Советую прочитать известную статью - какие вообще бывают "фуллстеки"

ТЕКУЩИЕ ТРЕБОВАНИЯ НА РЫНКЕ

Cегодня компании хотят получит готового самодостаточного программиста, который уже многое умеет.

Проходит то время, когда с вами будут идти за ручку с нуля и обучать за счет компании. Время - деньги! Особенно сейчас.

Если вы придете подготовленным и с опытом разработки на современных инструментах - ваши шансы повышаются в сотни раз.

Вы уже должны быть достаточно опытным

Должно быть хотя бы 1-2 проекта в портфолио

Какие технологии использовать? Ведь их очень много

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

Желательно изучать технологии, которые давно себя зарекомендовали и будут "на коне" еще долгое время. Об этом подробнее - ниже.

ОСНОВА ПРОЕКТОВ

Безопасные микросервисы - основа основ

По этой схеме работают практически все современные компании (плюс-минус). Конечно, в нее добавляются еще доп. элементы (балансировщики, кэши и пр.) - но смысл не меняется.

Современные системы чаще всего
построены по этим принципам

Микросервисная архитектура для backend (вместо "монолита")

Весь функционал приложения заключаются в веб сервисы (API). Сервисы могут находиться в разных приложениях (не как раньше - в одном, "монолит"). Один и тот же сервис может использоваться разными приложениями. Создаете один раз - используете всегда. Между сервисами и клиентом существует "экран" или "адаптер", который распределяет все входящий запросы. Сервисы могут находиться на разных серверах и быть не связаны между собой. Технологии: Spring, Swagger

RESTful сервисы для backend

RESTful - самый простой и быстрый способ обмена данными. Простой в использовании и создании (по сравнению с SOAP). Вы создаете один раз нужный сервис и используете в разных приложениях. За всеми запросами наблюдает общий "адаптер". Технологии: Spring, Swagger

Безопасность отделена от приложения

Вы не "вшиваете" внутрь своего приложения функционал безопасности, а делегируете его в отдельный узел (на другом сервере), который имеет свое API и все могут им пользоваться. В самом приложении вы только настраиваете роли и доступы. Технологии: OAuth2, OpenID и некоторые другие.

Фреймворки Java Script для клиентского UI

Современные и отзывчивые веб/мобильные приложения делают на JS фреймворках: React, Angular, Vue.js. Ушли в прошлое тяжеловесные стеки типа JavaEE, JSF и пр. Сейчас "на коне" ajax вызовы, которые отправляют запрос в RESTful-сервис, получают ответ и тут же обновляют только нужную часть страницы. И все это с данными аутентификации/авторизации, по безопасному HTTPS каналу. 

Сборка и дистрибуция проекта

Чтобы ваше приложение можно было быстро запустить - вам нужно будет правильно его собрать и настроить. Это все - в автоматическом режиме ("нажимаем одну кнопку"). Вручную собирать весь стек технологий - это медленно и неэффективно, "прошлый век". Технологии: Kubernetes, Docker.

Единое хранилище кода

Система контроля версий, куда вся команда "сливает" свой код. У вас всегда будет актуальная версия проекта. Это тоже стандарт в любой крупной компании (с очень древних времен). Не важно, какие технологии вы используете - всегда нужно будет хранить все коды не только у себя на компьютере, но и в удаленном репозитории.

Все эти принципы вы будете
применять в данном обучении

Java/Kotlin

Это язык, который будет востребован еще долгое время. Если выучите Java, в будущем сможете легко одолеть и Kotlin. Один язык плавно перетекает в другой. Но сначала желательно хорошо понять Java. На этих языках вы будете создавать микросервисы и весь функционал бэкенд. Java почти всегда находится на 1-3 месте по индексу TIOBE

PostgreSQL

Популярная бесплатная база данных с большим функционалом. В последние годы вырвалась в лидеры. Во многих случаях имеет выигрыш в производительности перед MySQL, типов данных, гибкости настроек. Многие хостинги, например Heroku, имеют поддержку этой БД в бесплатном тарифе - это говорит о том, что они уже сделали выбор. Раньше в фаворе был MySQL.

Spring/Hibernate

Самые популярные фреймворки, которые облегчают разработчику backend приложений. С помощью них вы сможете быстро организовать нужные веб сервисы и выполнить запросы в БД. Spring дает возможность настроить микросервисы с общим "экраном", подключить безопасность, OAuth2 и многое другое. Можно сказать, что это один большой и функциональный комбайн. Spring является самым популярным Java/Kotlin фреймворком. 

Angular/React/TypeScript

Для того, чтобы создать клиентский интерфейс - вы можете использовать либо React, либо Angular (также еще есть популярный Vue.js). В любом случае вам нужно будет выучить язык TypeScript (что легко сделать, если вы знаете Java). В итоге вы сможете создавать любые UI: веб, мобильные (iOS, Android), desktop - пишете один раз код и собираете под разные платформы. Самым популярным в данный момент является React.

React с момента появления - всегда на первом месте среди JS UI фреймворков - благодаря его простоте и функциональности.

IntelliJ IDEA

Хоть эта среда разработки и платная, но она все еще используется чаще всего во всех крупных компаниях. Поэтому вам нужно обязательно иметь опыт работы с ней. Можете попробовать trial версию (Ultimate, WebStorm) или получить бесплатную лицензию на email студента (родственника). Либо поискать другие варианты в интернете ("if you know what i mean") . Кстати, есть хороший бесплатный аналог VSCode от Microsoft - именно для веб приложений. 

Git/GitHub

Для того, чтобы вы могли успешно работать в командах - вам необходимо хотя бы на минимальном уровне знать и уметь работать с Git/GitHub. Вы будете выполнять доработки, заливать изменения, получать чужие изменения себе - "вариться в общем соку" с другими учениками. Без знания версионности кода - вам будет сильно сложнее (даже для личных проектов) 

Docker

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

Bootstrap

Открытый и бесплатный HTML, CSS и JS фреймворк, который используется веб-разработчиками для быстрой вёрстки адаптивных дизайнов сайтов и веб-приложений. Вы сможете создавать на нем один и тот же проект под разные устройства. 

Насколько эти технологии актуальны
в современных компаниях?

Покрывают 90% требований всех крупных компаний. Можно проверить в вакансиях hh.ru по слову fullstack


У всех компаний свои принципы. Вам просто нужно будет доучить специфику, т.к. фундамент у вас уже будет

Почему этому больше никто не учит? Почему никто не обучает системным знаниям?

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

Везде только обрывки проектов или несвязанные темы. Собрать все воедино невозможно.

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

Затем сможете устроиться в компанию, т.к. будете знать как работают современные системы (или если вы уже менеджер или аналитик -- сможете лучше управлять своими разработчиками)

Вопросы читателей

Нет, все зависит от вас и региона проживания. Но примерно 84% учеников успешно устраивались. В любом случае с таким багажом знаний вы найдете работу намного легче. Большинство обуч. центров мягко говоря обманывают, когда обещают 100% трудоустройство.

Зависит от вашей занятости, мотивации. В среднем - если уделять в день около 3-4 часов, то всю программу fullstack можно пройти примерно за 4-6 месяцев.

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

Все исходные коды есть, по каждому уроку можно будет открывать в IntelliJ IDEA. Но я рекомендую все равно набирать весь код вручную, чтобы лучше запомнить его.

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

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

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

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

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

Если оплачиваете наличными (через банкомат или терминал) - нужно выполнить конвертацию самостоятельно. Подробная инструкция находится в способах оплаты.

Доступ к материалам и поддержке - неограничен. Можете изучать и возвращаться к урокам в любое время.

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

Если занимаетесь в коучинге - то можно задавать вопросы лично 1 на 1 автору курса.

Это все похожие языки-конкуренты для создания backend-frontend приложений. Можно использовать и их. Просто нужно исходить из потребностей рынка, а там сейчас пока царят эти технологии (Java, React, Spring и пр.)

КАКИЕ ТЕХНОЛОГИИ
FULLSTACK ПРОЙДЕТЕ?

Основы Java/Kotlin,  профессиональный код на ООП

В начале вы будете создавать только консольные приложения. Важно пройти все основные задачи, чтобы я убедился, что у вас уже есть фундамент ООП, коллекции, синтаксис. Если захотите - можем сделать доп. проекты на Java UI (Swing, JavaFX) - это по желанию.

Проектирование базы данных на PostgreSQL

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

Создание серверного проекта (RESTful backend)

Основная серверная часть, которая будет иметь RESTful сервисы и обращаться к созданной ранее базе данных. Здесь пока также нет никакого UI, а только тестирование веб сервисов с помощью Postman/ARC/браузер. Таким образом вы создаете API вашего приложения.

Безопасность и работа с пользователями на OAuth2

Это отдельная категория проекта, которая не зависит от других. Здесь вы создадите и настроите сервер авторизации с нужными пользователями, ролями и пр. Затем этим сервером будет пользоваться ваш backend, чтобы получать ключи для выполнения запросов. Так работают все крупные компании (Google, Facebook)

Клиентский Web UI с мобильной версткой - React/Angular

Возможно самая интересная часть, потому что тут появляется внешний вид, который вы будете создавать с нуля и затем выполнять запросы на backend, получать данные, обновлять нужные части страниц. За это отвечают технологии React или Angular (сможете выбрать любую из них). Пример итогового приложения онлайн можно посмотреть тут

Микросервисы на Spring Cloud (Gateway, Config, Eureka)

Новый подход к разработке крупных проектов (в противовес старому подходу, который называют "монолит" - единое приложение) В микросервисах вы разбиваете весь функционал на микро-приложения, которые работают в общей шине (Spring Cloud) и взаимодействуют между собой. Сейчас это самая популярная архитектура для создания крупных приложений с большим функционалом.

Сервер для создания архитектуры "message broker"

Асинхронное взаимодействие между системами или микросервисами. Позволяет реализовать любые задачи, где требуется обмен данным с гарантированной доставкой. Сейчас пользуется большой популярностью среди распределенных систем (особенно в Spring Cloud)

Совместная работа с репозиториями Git/GitHub

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

КАКИЕ КУРСЫ ПРОЙДЕТЕ

1) и 2) Профессиональное мышление программиста на Java (Kotlin - по желанию) - правильный фундамент для создания любых проектов в ООП стиле с применением GRASP/SOLID. С этого должны стартовать все новички, чтобы у вас появилось "мышление программиста". Иначе не сможете создавать профессиональный код доступен

3) Базы данных, проектирование таблиц, SQL, оптимизация - профессиональная работа с БД на основе PostgreSQL, анализ узких мест, SQL запросы, планирование БД. Знания нужны в любом большом проекте, чтобы вы могли с нуля создать любую структуру данных доступен

4) Основы работы с ORM Hibernate - автоматизация запросов в БД с помощью объектов ORM, обработка результатов, основные операции и возможности Hibernate. Ускоряет написание кода, т.к. не нужно тратить время на написание SQL запросов, за вас все делает фреймворк доступен

5) RESTful сервисы на SpringBoot (backend) - создание веб-сервисов быстро и без ошибок, которые клиенты смогут вызывать по защищенному каналу HTTPS (SSL сертификат). Это базовые знания для любого backend проекта на SpringBoot, если хотите создать API доступен

6) Микросервисы на Spring Cloud + Gateway - разделение "монолита" на мелкие части и связывание их между собой, создание Gateway и переадресация запросов. По этой технологии работают все современные крупные проекты доступен

7) Основы работы с OAuth2 и сервером авторизации KeyCloak - защита веб приложения и API от несанкционированных запросов с помощью "токенов" и мирового стандарта OAuth2. Основные темы: получение токенов, хранение пользователей, сервер KeyCloak, запросы в API и многое другое доступен

8) Защита веб приложений на примере простого Frontend + OAuth2 + Backend - цикл работы с пользователем в веб приложении (регистрация, обновление пароля, подтверждение email и пр.), хранение и защита токенов. В этом проекте не используются лишние фреймворки, а только базовый проект (HTML+JavaScript) - так вы поймете всю суть работы с OAuth2 доступен

9) Frontend приложение на Angular - полноценное красивое веб приложение "Планировщик" на популярном JS фреймворке Angular. Тут вы соберет воедино все пройденные ранее темы и создадите крупный проект на Angular. Этот фреймворк хорошо подходит для новичков, т.к. многое уже доступно "из коробки" доступен

10) Frontend приложение на React - полноценное красивое веб приложение "Планировщик" на популярном JS фреймворке React. Тут вы соберет воедино все пройденные ранее темы и создадите крупный проект. Рекомендуется уже иметь опыт хотя бы в Angular проектах, т.к. React немного сложнее. доступен

11) Docker - упаковка и распространение контейнеров - контейнеры и настройка для дистрибуции. Когда у вас уже готово приложение - его нужно "упаковать", чтобы легко запускать в любом месте (у заказчика или другом комрьютере). Сегодня это должен уметь делать любой разработчик. доступен

12) Основы работы в Git/GitHub - правильная работа с кодом, сохранение версий, команды Git. Вы должны уметь не только сохранять версии своего проекта, но и выполнять командные действия, которые нужны в любой компании - доступен

13) DevOps - правильное и быстрое обновление функционала - настройка и принципы CI/CD, Jenkins, GitHub Actions и многое другое. Автоматизация, компиляция и "бесшовное" обновление проекта с помощью полного цикла. Принципы применяются в любой крупной компании в разработке

План прохождения

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

На все изучение уйдет примерно 4-6 месяцев (а возможно и больше). Чудес не бывает, особенно если изучаете с нуля - вы не сможете без хорошей практики стать опытным разработчиком. А здесь вы получаете именно хорошую практику + необходимую теорию.

ОСНОВНОЕ ИТОГОВОЕ ПРИЛОЖЕНИЕ

1

Frontend на Angular/React

Создавайте задачи, категории, приоритеты, добавляйте даты, применяйте поиск и многое другое

2

API Backend/Spring

Вызов RESTful сервисов и получение данных конкретного пользователя

3

OAuth2/KeyCloak

Применение самых современных способов защиты приложения (токены, сервер авторизации и пр.)

4

Backend for Frontend

Специальный паттерн для безопасного хранения токенов OAuth2

Об авторе

Батыршинов Тимур, 36 лет: основатель обучающего центра «JavaBegin». Главный тренер.

За 8 лет обучил более 51000 человек (онлайн и оффлайн).

Опыт разработки — более 15 лет.

Автор более 50 курсов по разным направлениям Java: основы, веб, Android, Spring, Angular и многие другие.

В данный момент занимаюсь обучением и консалтингом.

Коучинг веду лично я, материалы - тоже авторские.

Выберите вариант покупки

1) Полный комплект курсов из набора fullstack web - со скидкой


Получаете "одним выстрелом" полностью весь комплект. 

Почему доступна скидка? Потому что в данный момент вышло 12 из 13 курсов.

60 000 р
15 000 р

Поддержка по вопросам

Закрытая группа

Доступ без ограничений по времени

2) Выборочно любые курсы из комплекта fullstack

Можете выбрать любой из курсов комплекта fullstack. Все курсы открываются в личном кабинете. В среднем отдельно каждый курс стоит около 5000 рублей.

~ 5 000 р

3) Пожизненный доступ к JavaBegin - самый выгодный вариант

Вы можете один раз оплатить и всю жизнь получать ВСЕ из проекта javabegin. Материалы будут на актуальные технологии (android, flutter, react native и пр.)

Все курсы будут открываться в личном кабинете автоматически.

© Copyright 2023 
Все права защищены