Хочешь изменить мир — начни с себя!
cdn.javarush.com/images/comment/9faf98b1-46ae-4...

javarush.com/forum/118

Та набор +/- стандартный, ну может быть добавились пару моментов за последнее время.
Сейчас время непростое для всего айти, мне сложно выделить прям направления, чтобы там было ощутимо легче.

Здесь очень важно отметить следующий момент.
Изучение джавы к примеру, это как посещение стандартной автошколы, ну пусть даже профавтошколы. Там изучают азы, там изучают основные вещи. НО.

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

Всему в автошколе не обучат. А даже примерно прикинуть, что могут хотеть невозможно.
На каждом проекте своя уникальная комбинация технологий. Что-то чаще повторяется, что-то реже.

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

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

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

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

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

Если хорошо пройдете собес, то возьмут за милую душу.

Чтобы хорошо пройти собес, какие знания и навыки нужно иметь:

Теория:
- Джава Кор. Чем базовее тема, чтобы от зубов отлетало, есть стандартные списки вопросов, ищите их и прорабатывайте.
Особое внимание OOP, с примерами, зачем и тд, хорошо бы и ООД (ОО Дизайн)
Коллекции, иерархия как отче наш, абстрактные классы, интерфейсы, что от чего наследуется и имплементирует, какие методы основные.

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

Остальные коллекции тоже хорошо понимать что внутри.

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

Не путаться в О(N) , знать и объяснить про GC, их работу, особенности, в какой версии Java какой GC, устройство памяти джава, какие там моменты, что где и как хранится.

Базы данных это второй по важности блок. ACID, уровни изоляции транзакций, проблемы чтения, n+1 и cartesian product, в чем суть проблем этих, объяснить с примерами + какие решения, SQL, агрегирующие функции, 4 вида запросов с примерами, уметь написать средние квери (один два джойна, просуммировать с условием, погруппировать и тд), индексы в БД, + - и как под капотом работают.
JDBC, Hibernate, какие проблемы решают, какие основные интерфейсы и методы, стандартный стек вопросов по ним (есть в гугле) + уметь рассказать, как с пустого мавен проекта, можно подключится к БД и записать вычитать что-то, что нужно прописать и где и какие классы и методы вызвать.

Веб часть, это сервлеты, немного JSP, знать что это, Томкат, диспатчер сервлет, фронт контроллер, уметь рассказать что происходит, когда пользователь в браузере вбивает имя нашего эндпойнта или отправляет иным способм запрос, и как это в нашем приложении/томкате что происходит, как этот запрос идет и куда.
+HTTP методы + идемпотентность, HTTP статус коды, назвать группы и примеры кодов, структура HTTP запроса, что там в хедере, что в бади. JSON.
REST API , REST vs SOAP, rest api levels.

Тестирование, пирамида тестирования, кто и какие тесты пишет - программисты, тестировщики, junit, mockito, stub vs mock vs spy, тестирование статических методов, принципы FIRST

Git, git merge vs rebase, другие стандартные вопросы.

Spring Boot, Spring Security, Spring Data JPA.

Азы HTML, CSS, Thymeleaf, желательно видеть в глаза джаваскрипт и понимать или хоть что-то прикрутить готовое.

+SOLID от зубов насколько возможно с примерами реализации по возможности и примерами, когда нарушены, DRY, KISS, YAGNI, архитектурыне паттерны (MVC, желательно с подвидами, n-layer architecture etc), дизайн паттерны, знать три группы, перечислить что входит, в каждой группе хотя бы парочку на словах уметь или в коде реализовать объяснить

+ понимание CI/CD хотя бы в теории, или поискать возможность задеплоить что-то куда-то.

+ поиграться с Docker будет плюс, хотя бы на уровне docker compose сделать простого апликейшена образ и запускать.

+ микросервисы, что это зачем, microwservices vs monoloth, что такое Cloud, какие бывают, желательно очень пощупать хоть-что-то, у кого есть время и возможность , то и сертификат хоть базовый получить будет большим плюсом. Джунов без опыта работы с сертификатами по клауду практически нет, так вы получите преимущество.

По навыкам:
без гугля, или с минимальным на крайняк, забацать CRUD на JDBC, Hibernate, Spring Boot + Spring Data.

Забацать какой-то сервис, который принимает запрос, сам посылает запрос на внешний АПИ (прогноз погоды, что угодно), принимает ответ, обрабатывает и показывает результат.

+ книга Clean code Роберта Мартина.

ищите как хотите, тех, кто может сделать ревью вашего кода, платите им деньги, печеньки что угодно, это вас перенесет на другой уровень сразу, поскольку то как пишут без опыта работы..их то и брать не хотят, поскольку нужно элементаные вещи объяснять, много из чего написано в том же Клин коде или Блохе с Фаулером, но новичку естественно сложно увидеть связь между талмудом со словами и как это выглядит в конкретном коде, здесь нужен живой человек, которого били по рукам, и он знает как бить и за что.

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

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

Но если вы знаете, но поленились убрать комменты, код не форматирован или нагорожено как-то, это зашквар

@темы: Java, Фахівці, Я

Комментарии
03.02.2024 в 20:21

Хочешь изменить мир — начни с себя!
Измерения в днях не информативно, поэтому:

Java Syntax - 55 часов 23 минуты
Java Core - 97 часов 55 минут
Java Multitreading - 167 часов 35 минут (в т.ч. "Ресторан" около 40 часов)
Java Collections - 147 часов 20 минут
Всего 468 часов 13 минут

Учтено только время нахождения на сайте Javarush и работа в среде IntelliJ IDEA