"Если у вас есть правильные знания программирования на любом языке - вы всегда будете играть на настроенном инструменте".
Наверно 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 сейчас уже “вшит” в Spring, Android и многие современные фреймворки.
Позволяет реализовать “слабое связывание” объектов (внедряете объекты друг в друга, а не создаете ссылку вручную).
Один объект не знает какой другой конкретный объект будет его использовать, а только предоставляет возможность (розетка не знает какие устройства будут включаться, она только предоставляет API)
Если раньше это еще было не обязательно, то сейчас уже "must have".
В первую очередь вам понадобятся эти инструменты, чтобы быстро настраивать проект и подключать зависимости (библиотеки).
Сейчас уже наверно не существует проектов, которые не использовали бы Gradle/Maven. Они используются в любой крупной задаче, чтобы не настраивать все вручную.
Специальная библиотека для ускорения разработки.
Дает возможность не отвлекаться на лишний код и сфокусироваться только на бизнес процессах.
Многие языки уже переняли для себя принципы Lombok и внедряют их уже на уровне ядра. Активно используется в Spring, Hibernate и других фреймворках.
Требуется знать на базовом уровне – как расписать любую задачу, можно пока без UML, а просто ручкой-бумагой. Потому что многие запутываются в UML и упускают главное – само проектирование.
Сюда входит:
- разделение приложения на слои и подслои (уровни приложения – UI, БД, безопасность, авторизация и пр.)
- разделение каждого слоя/подслоя на объекты и связи между ними
На каждом шаге нужно обязательно решать простые задачи, чтобы лучше запомнить материалы.
Многие новички делают мало практики и поэтому у них все вылетает из головы.
Задачи должны быть без UI (внешний вид, User Interface), просто консольные (выводят информацию в консоль).
Задачи не должны содержать сложные алгоритмы или структуры данных – упор на пункты ООП и базовый синтаксис + базовые коллекции.
Идеально - если создадите единый проект и будете его постепенно дорабатывать.
Оттачивание всех навыков ООП с применением готовых решений (паттерны).
Это подытожит ваши основы Java - такой фундамент мало кто "заливает" из новичков. Вы будете сильно выделяться среди них.
Вы должны обязательно понимать и уметь применять принципы GRASP, SOLID - особенно это любят спрашивать на собеседованиях Senior-программисты.
Если научитесь применять это все на практике - скоро уже сами сможете стать Senior.
Отсутствие системности в голове - знания накапливаются хаотично, непонятно как все можно связать между собой, нет общей картины.
Нет последовательности в изучении - сначала беретесь за одно, потом переключаетесь на другое - в итоге в голове остается каша и вы устаете.
Мало практики: многие новички быстро проходят по темам и практически не пишут код - лишь бы пройти подальше вперед - так делать нельзя. Практика - это главное.
Если у вас нет поддержки на старте - вам будет особенно трудно. Бывает, что не можете двигаться дальше и не у кого спросить совета, интернет не всегда помогает.
Как правильно изучать основы Java, чтобы стать профессиональным
программистом и устроиться в крупную фирму.
Подробное описание пунктов было выше на странице
Именно поэтому я создал новый большой курс для изучения основ Java в нужном порядке, по принципу "от простого к сложному".
Вы будете последовательно наращивать свои знания, чтобы в конце получить отличный результат.
Т.к. этот курс предназначен в первую очередь для новичков - то информация будет подаваться в стиле "для чайников". Подробно рассматривается каждый шаг, чтобы вы не запутались.
Начиная с установки IDE и заканчивая решением задач.
Если вам будет что-то непонятно - всегда есть возможность задать вопрос.
Вы можете ознакомиться с первыми бесплатными уроками (демо-версия курса).
Сможете понять как подается материалы, какие темы будут доступны и многое другое.
Потребуется сначала пройти регистрацию.
Затем пройти по этой ссылке.
Получаете доступ к материалам текущего курса в личном кабинете.
Можно задавать вопросы под каждым уроком, в телеграм группе, на форуме.
Курс доступен без ограничений по времени, поддержка также без ограничений.
5 000 р
Если вы хотите изучить не только этот курс, но и весь fullstack веб разработчика - вы можете это сделать со скидкой (чтобы не покупать каждый курс по отдельности)
Многим этот вариант подходит больше, потому что вы проходите всю программу целиком.