
КАК СТАТЬ ПРОФИ
Основная проблема всех новичков в том, что они изучают НЕ ТО и НЕ В ТОЙ последовательности (решают задачи на синтаксис, пытаются сразу начать использовать сложные технологии без фундамента и пр.) - это часто приводит к завершению карьеры.
Обязательно следуйте этим пунктам:
- Сначала у вас должно сформироваться "мышление программиста" - как создавать и планировать любые проекты в стиле ООП и SOLID/GRASP. Это главный фундамент для любых проектов.
- Вы должны иметь не только денежный ("в IT хорошие зарплаты"), но и неподдельный интерес к самому процессу программированию - иначе быстро "сдуетесь"
- Вы должны иметь каждый день хотя бы 2-3 свободных часа, иначе не сможете набрать 1-ю космическую скорость и выйти на орбиту - чтобы преодолеть начальный порог всех новичков
- Нужна правильная последовательность изучения, чтобы не было каши в голове - вы можете пройти всю цепочку курсов fullstack в нужном порядке (описан план с нуля). Тогда у вас будут системные и комплексные знания, а не обрывочные
ПОДРОБНЫЙ ПЛАН
Итоговая цель - научиться создавать крупные приложения с применением всех современных технологий. Это поможет вам устроиться на работу в крупную компанию или уйти во фриланс.
Ниже представлен правильный план, основанный на обучении примерно 10000 учеников. Просто идете вперед каждый день небольшими шагами. За вас уже все продумано.
Если захотите - вы можете получить бесплатную консультацию по вашему плану обучения - лично у ментора через телеграмм. Он оценит ваш текущий уровень и даст рекомендации.
-
1) и 2) Профессиональное мышление при создании проектов (Java/Kotlin)
ЗАЧЕМ: в первую очередь вам нужно разложить по полочкам основы ООП (+GRASP/SOLID) с применением одного из языков Java/Kotlin (на выбор). Тогда ваши знания будут НЕ обрывочные, а системные. Нужно сразу заложить в голове "мышление программиста" и вы любой проект будете создавать профессионально (а не просто "лишь бы работало").
СПОСОБ: понять всю теорию и порешать задачи с применением ООП, SOLID, GRASP. Уровень задач будет повышаться по мере изучения тем. Нужно не просто набивать руку на синтаксисе, а сразу делать это с "правильным мышлением"
ЕСЛИ ПРОПУСТИТЬ: Многие думают, что хорошо знают эти темы (хотя по факту знают процентов 50-60) и сразу "прыгают" дальше. Это большая ошибка, вам придется вернуться обратно и снова потратить время.Java Kotlin GRASP SOLID ООП
1-2Мышление в ООП-стиле на языках Java/Kotlin с учетом принципов GRASP/SOLID
ОТКРЫТЬ КУРС JAVA
ОТКРЫТЬ КУРС KOTLIN
Сначала желательно выучить Java, а потом (если нужен) - Kotlin -
3) Базы данных, проектирование таблиц, SQL, оптимизация
ЗАЧЕМ: В любом приложении используются данные и вы должны уметь создавать структуру на какой-либо СУБД (PostgreSQL, MySQL и пр.) - работа с таблицами, планирование связей, загрузки тестовых данных и многое другое. Также должны уметь оптимизировать и анализировать "узкие места", из-за чего БД может работать медленно.
СПОСОБ: С нуля создадите структуру таблиц, связи, триггеры, ключи, SQL запросы и многое другое. Если БД сразу делать правильно - то и проект (код) будет работать верно.
ЕСЛИ ПРОПУСТИТЬ: Не сможете работать с БД и будете способны создавать только простые приложения (например, консольные, без SQL запросов)PostgreSQL Triggers SQL Analyze/Explain
3Построение структуры таблиц с нуля на PostgreSQL, анализ запросов SQL
Правильная структура БД позволит допустить меньше ошибок в приложении -
4) Основы работы с ORM Hibernate
ЗАЧЕМ: чтобы автоматизировать запросы в БД и обработку результатов. Hibernate - один из самых популярных Java - фреймворков. На протяжении многих лет его используют почти во всех веб проектах. Сегодня его должен знать любой новичок.
СПОСОБ: Желательно изучать Hibernate отдельно от всего остального. А потом уже совмещать с другими технологиями (Spring и др). Поэтому вы примените Hibernate на "голой" Java - это проще для новичков.
ЕСЛИ ПРОПУСТИТЬ: Сможете создавать большие приложения только с применением чистого SQL, а это сильно снизит скорость разработки. Почти все большие проекты используют ORM HibernateHibernate JPA ORM HQL JPQL Entity Mapping
4Выполнение запросов в БД и обработка результатов с помощью JPA/Hibernate
Сможете быстрее разрабатывать приложения и сфокусироваться на бизнес-процессах, а не SQL запросах -
5) Быстрое создание веб сервисов на SpringBoot
ЗАЧЕМ: современные приложения чаще всего предоставляют веб сервисы (backend), которые используются любыми клиентами. Spring - самый популярный Java фреймворк - он помогает создавать RESTful сервисы (API) быстро и без ошибок, по защищенному каналу HTTPS
СПОСОБ: создадите с нуля RESTful сервисы на SpringBoot, которые будут обращаться к БД и реализовывать функционал "Планировщик задач" (эту БД вы делали в пред. пунктах)
ЕСЛИ ПРОПУСТИТЬ: не сможете двигаться дальше в сторону микросервисов и всего самого интересного, ведь новые технологии основаны на SpringBoot RESTfulSpring DataJPA RESTful JSON Postman
5Быстрое создание API приложения через RESTful сервисы с запросами в БД
Применение Spring технологий для ускорения разработки backend приложения -
6) Микросервисная архитектура приложений (не "монолит")
ЗАЧЕМ: сейчас все приложения переходят от монолита к микросервисам - так легче масштабироваться, обновлять ПО и т.д. Для этого в Spring Cloud существуют готовые библиотеки и решения. Вам нужно лишь правильно их использовать
СПОСОБ: На основе RESTful сервисов для "Планировщика задач" (монолит) - будете делить его на микросвервисы c применением всех технологий.
ЕСЛИ ПРОПУСТИТЬ: это по сути самая главная часть для backend приложений. Если пропустите - не сможете создавать современные распределенные приложенияSpring Cloud Gateway Config Actuator Feign AMQP RabbitMQ Kafka
6Современная микросервисная архитектура крупных приложений
Готовые инструменты из Spring, которые облегчают создание микросервисов -
7) Добавление безопасности и работа с пользователями
ЗАЧЕМ: Чтобы с вашими микросервисами могли работать только "правильные" клиенты, кто прошел аутенитфикацию/авторизацию - можно использовать готовые решения. Сможете хранить пользователей, их роли и многое другое.
СПОСОБ: Создадите свой сервер авторизации Keycloak и проведете интеграцию с микросервисами - чтобы запросы выполнялись от конкретных пользователей.
ЕСЛИ ПРОПУСТИТЬ: не сможете обезопасить свое приложение и запросы смогут выполнять кто угодно.OAuth2 SpringSecurity OpenID JWT Keycloak
7Авторизация через OAuth2/OpenID/сервер Keycloak
Добавление сервера для работы с пользователя, ролями, авторизацией -
8) и 9) Клиентские JS приложения (React.js, Angular)
ЗАЧЕМ: Чтобы создавать современные интерактивные приложения на готовых JavaScript-фреймворках - которые будут авторизовываться и вызывать защищенные микросервисы
СПОСОБ: Создадите несколько реализаций клиентского приложения (Планировщик задач) - на JS фреймворках
ЕСЛИ ПРОПУСТИТЬ: приложение останется без UI - не будет кнопок, окон и пр. - можно будет вызывать только RESTful сервисы напрямуюTypeScript Angular React.js Reactive Ajax
8-9Клиентское визуальное приложение на JS фреймворках
Создание красивых интерактивных веб приложений с Ajax запросами -
10) Упаковка и распространение через контейнеры
ЗАЧЕМ: Мало создать приложение - нужно еще правильно его упаковать и доставить до конечного потребителя. Для этого существует механизм "контейнеров". Так работают все современные компании.
СПОСОБ: Научитесь упаковывать предыдущие приложения - чтобы они разворачивались сразу с БД, настройками и пр.
ЕСЛИ ПРОПУСТИТЬ: не сможете по-правильному доставлять приложения, сможете только "по-старинке" - вручную настраивать все по-отдельностиDocker Jenkins Kubernetes GitHub
10Контейнеры Docker/Kubernetes - упаковка и деплой приложения
Как правильно упаковывать приложение и другое ПО - для доставки клиенту -
11) Правильное и быстрое обновление функционала
ЗАЧЕМ: Чтобы клиенты не ждали ваших обновлений "по полгода" и вы могли автоматически обновлять части приложения каждый день хоть по несколько раз - причем делать это быстро и прозрачно.
СПОСОБ: Механизмы для DevOps и принципов CI/CD, Jenkins, GitHub Actions и многое другое.
ЕСЛИ ПРОПУСТИТЬ: придется обновлять все вручную, а это занимает много времени и неэффективно.CI/CD DevOps Docker GiHub Kubernetes
11DevOps – конвейерная разработка и обновление ПО
Современный способ обновления приложений через CI/CD, DevOps -
12) Основы работы в Git/GitHub - командная разработка
ЗАЧЕМ: Чтобы быстро и легко освоиться в крупной компании - вы должны уметь работать в Git и выполнять совместные действия в команде, знать весь цикл разработки.
СПОСОБ: Сможете участвовать в команде над простыми и сложными проектами (с другими читателями и клиентами) - чтобы затем работать в компании. Тимлид будет давать вам обратную связь и добавлять задачи в GitHub
ЕСЛИ ПРОПУСТИТЬ: не узнаете как правильно работать в команде - сможете разрабатывать только сольные проекты без хранения версионности.Slack Git GitHub
12Версионность и командная разработка на Git/GitHub
Научитесь программировать как профессионалы - хранить версии кода и работать в команде
Вы можете купить все перечисленные выше курсы сразу (12 шт)
в одном комплекте - со скидкой и поддержкой
Какой у вас будет результат?
Сквозной проект
» ТЕОРИЯ
» ПРОЕКТ
» ЗАКРЕПЛЕНИЕ
» ДОП.ЗАДАЧИ
В отличие от других обучающих центров - тут вы будете проходить связанные, а не разрозненные курсы.
У вас будет единый проект, который вы начнете с самого первого курса и реализуете его до конца по мере прохождения материалов.
Дополнительно будете решать разные задачи (легкие, средние, сложные), чтобы закреплять материалы.
Практика
Закрепляйте на практике всю теорию - по шагам, от простого к сложному.
Задачи
Создавайте задачи с нуля - с помощью преподавателя или самостоятельно.
Решения
Если захотите - сможете сравнить свои решения с готовыми, где какие плюсы-минусы.
Актуальность
Вы будете использовать только современные, востребованные языки и технологии.
Поддержка
Для всех материалов действует поддержка преподавателя (телеграм, форум, вебинары)
Портфолио
Собирайте все свои проекты в хранилище GitHub, чтобы показывать работодателям.
Отзывы учеников