Профессиональный код на Java с полного нуля (2021)

Пошаговые уроки для новичков и профи: все главные принципы разработки Java проектов, которые требуются в любой крупной компании (для Junior, Middle, Senior).


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

Не совершайте эту ошибку

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

Начинают решать много задач просто на знание синтаксиса, без понимания основных принципов ООП, проектирования и пр.

Это ОЧЕНЬ большая ошибка, вы просто потеряете время. Вам сначала нужно получить СИСТЕМНЫЕ знания и только потом их оттачивать на задачах.

Что нужно знать новичку сегодня?

Сейчас уже другое время, нежели год-два назад. Новичкам очень сложно.

Чтобы создавать проекты на любом языке и фреймворке – нужно иметь фундамент профессионального программиста.

Неважно, будете вы заниматься только backend (серверная часть без UI) или еще и UI (внешний вид) – без основ никуда.

Для изучения основ хорошо подойдет язык Java (как наиболее простой), потом эти знания можно применять на сложных языках: Kotlin, Swift, TypeScript, C# и любых языках.

90% новичков перепрыгивают эти ступеньки, что является большой ошибкой.

Лучше уделить этому время в начале, чтобы потом на “кривом” фундаменте НЕ строить дом.

ООП

ООП – объектно-ориентированное программирование – на его принципах создаются все проекты Java.

Сначала вам нужно получить хорошие основы ООП для правильного создания Java проектов. Вы не будете сразу изучать весь синтаксис Java. В первую очередь – именно сами принципы профессионального кода.

По времени основы Java обычно занимают около 2-3 месяцев, в день нужно уделять хотя бы 3-4 часа (вариант – “оставлю все на выходные и там посижу 8-9 часов” работает хуже, т.к. мозг должен успевать отдыхать между “порциями” информации. Лучше почаще и помельче, чем один раз и все сразу)

Исключите темы (можно изучать позже):

- стримы, лямбда выражения
- сложные коллекции
- параллельные потоки
- любой UI (внешний вид, User Interface)

Базовый синтаксис/коллекции

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

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

Более правильный вариант – по мере изучения ООП – постепенно изучать базовые элементы синтаксиса.

Все сложных конструкции вы сможете выучить потом, позже.

Нужно не изучать синтаксис в отрыве от всего остального, а лучше “связывать” его с темами ООП и задачами. Тогда будет интересней и сразу на практике.

Тоже самое касается и коллекций - сначала начните использовать просто базовые коллекции на практике - потом уже все остальные.

DI (dependency injection – внедрение зависимостей)

Правильное создание и связывание объектов в любом проекте.

DI сейчас уже “вшит” в Spring, Android и многие современные фреймворки.

Позволяет реализовать “слабое связывание” объектов (внедряете объекты друг в друга, а не создаете ссылку вручную).

Один объект не знает какой другой конкретный объект будет его использовать, а только предоставляет возможность (розетка не знает какие устройства будут включаться, она только предоставляет API)

Gradle (Maven)

Если раньше это еще было не обязательно, то сейчас уже "must have".

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

Сейчас уже наверно не существует проектов, которые не использовали бы Gradle/Maven. Они используются в любой крупной задаче, чтобы не настраивать все вручную.

Lombok

Специальная библиотека для ускорения разработки.

Дает возможность не отвлекаться на лишний код и сфокусироваться только на бизнес процессах.

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

Проектирование, планирование

Требуется знать на базовом уровне – как расписать любую задачу, можно пока без UML, а просто ручкой-бумагой. Потому что многие запутываются в UML и упускают главное – само проектирование.

Сюда входит: 
- разделение приложения на слои и подслои (уровни приложения – UI, БД, безопасность, авторизация и пр.)
- разделение каждого слоя/подслоя на объекты и связи между ними

Задачи и практика

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

Многие новички делают мало практики и поэтому у них все вылетает из головы.

Задачи должны быть без UI (внешний вид, User Interface), просто консольные (выводят информацию в консоль).

Задачи не должны содержать сложные алгоритмы или структуры данных – упор на пункты ООП и базовый синтаксис + базовые коллекции.

Идеально - если создадите единый проект и будете его постепенно дорабатывать.

Паттерны, GRASP, SOLID

Оттачивание всех навыков ООП с применением готовых решений (паттерны).

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

Вы должны обязательно понимать и уметь применять принципы GRASP, SOLID - особенно это любят спрашивать на собеседованиях Senior-программисты.

Если научитесь применять это все на практике - скоро уже сами сможете стать Senior.

Если вы хотите получить ускорение и пройти все эти темы в такой последовательности, используйте новый курс

Что дальше?

После таких профессиональных основ можно уже спокойно двигаться дальше

  • Базы данных (любая реляционная) – создание и связывание таблиц, ограничения, данные, SQL
  • Hibernate ORM – работа с таблицами БД как с объектами. Применяется в почти в любых современных веб проектах
  • Spring Framework – ускорение разработки (backend) серверных приложений. Самый популярный Java фреймворк
  • React/Angular/Vue.js – внешний вид приложения (frontend) на основе языка TypeScript (JavaScript), который несложно выучить после Java
  • Kubernetes/Docker – сборка и дистрибуция проекта, упаковка, настройка и другие автоматические операции 

Но не вздумайте изучать эти темы сразу, перепрыгнув основы Java. 

Вы рискуете потерять еще больше времени, когда потребуется вернуться.

Основные проблемы новичков
(и некоторых профи)

Системные знания

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

Последовательность изучения

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

Теория без практики

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

Поддержка при изучении

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

Правильная последовательность изучения Java (или другого ООП языка)

Как правильно изучать основы Java, чтобы стать профессиональным
программистом и устроиться в крупную фирму.

Подробное описание пунктов было выше на странице

1

ООП

2

Базовые синтаксис и коллекции

3

Dependency Injection 

4

Gradle

5

Lombok

6

Планирование проекта

7

Паттерны проектирования

8

Принципы GRASP

9

Принципы SOLID

10

Задачи на закрепление

Прохождение тем в нужном порядке

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

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

Полностью с самого нуля

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

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

Начиная с установки IDE и заканчивая решением задач.

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

Первые бесплатные уроки

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

Сможете понять как подается материалы, какие темы будут доступны и многое другое.

Потребуется сначала пройти регистрацию.
Затем пройти по этой ссылке.

Стоимость и варианты участия

1

Выбираете нужный вариант участия

2

Оплачиваете удобным способом

3

Получаете доступ в личном кабинете

В курс включены все темы в этой последовательности

На прохождение уйдет примерно 3-4 месяца, если заниматься каждый день.

После оплаты в течение 24-х часов получаете доступ в личном кабинете.

Только 1 этот курс

Получаете доступ к материалам текущего курса в личном кабинете.

Можно задавать вопросы под каждым уроком, в телеграм группе, на форуме.

Курс доступен без ограничений по времени, поддержка также без ограничений.

5 000 р

FULLSTACK WEB - полный комплект курсов

Если вы хотите изучить не только этот курс, но и весь fullstack веб разработчика - вы можете это сделать со скидкой (чтобы не покупать каждый курс по отдельности)

Многим этот вариант подходит больше, потому что вы проходите всю программу целиком.

4 встречи

15 000 р

8 встреч

23 000 р

12 встреч

30 000 р

© Copyright 2021 JavaBegin