Можно, но никто же тебя не заставляет ими пользоваться :) А в целом согласен, что в плане алгоритмов обитать на hackerrank и ему подобных.
Заодно хотел бы поделиться своей историей трудоустройства на позицию Java Developer. В общей сложности, чтобы устроиться на работу я потратил около 4-5 месяцев. Стоит только учитывать, что это было не с самого нуля, а у меня была некоторая база в виде понимания базовых вещей (логические операции, циклы, переменные и тому подобное).
По совету одного из читателей данного блога я
прошёл курсы от MOOC, которые мне помогли перейти на другой уровень и получить множество полезных навыков. Возможно проблема для некоторых будет в том, что он на английском. Однако задания интересные, особенно во второй части курса, где, например, вам придётся написать змейку, алгоритм по подбору фильмов, который несколько лет назад использовал Netflix и так далее. Также, чтобы освежить в памяти основы Java я использовал ресурс codingbat, о котором уже упоминал.
По алгоритмам для начала я бы посоветовал ознакомиться с книгой Грокаем алгоритмы, в которой автор объясняет всё доступным языком и поверхностно ознакомит вас с многими полезными концепциями. В русскоязычном сегменте еще отметил бы
этот канал, где будут покрыты базовые вещи Java и его
продвинутый курс на Udemy, где он расскажет про многопоточность и коллекции.
После MOOC самый серьёзный толчок в развитии мне дало ознакомлении с БД. Разобравшись с этой темой, стало ясно, как функционируют многие приложения. При изучении в основном использовал книгу Линн Бейли - Изучаем SQL.
Также я брал парочку уроков у Андрея strkk, который мне хорошенько помог адаптироваться к части Web-разработки на Java, а также помог подготовиться к собеседованиям. Поэтому обращайтесь, думаю он найдёт, что вам рассказать. Особенно, если вы только начинаете свой путь разработчика :)
Что касается собеседований, то сперва я вообще планировал пойти на курсы EPAM со стажировкой, но при собеседовании у меня HR спросила почему я не пробую пойти на позицию джуниора… В итоге, через недели две, я подумал и вправду, почему не попробовать? При этом я не знал ни Hibernate, ни Spring. Только сервлеты и другие низкоуровневые вещи.
Таким образом, в github я накидал проектов из курса MOOC, которые сохранились + сделал базовое CRUD приложение с использованием сервлетов, JSP и базы данных. Впоследствии меня пригласили на 3 интервью. На всех из них смотрели уровень английского, а также спрашивали Design Patterns. В первой компании была позиция с месячной стажировкой, где за это время было бы сформировано несколько команд и по окончанию месяца мы должны были презентовать наш проект. Из всех трёх здесь на техническом интервью спрашивали больше всего.
Во второй компании по Java у меня вообще ничего не спросили и задавали в основном вопросы по БД, где попросили join написать любой, затем переписать его с использованием SELECT. Да, и сюда я ещё выполнял тестовое задание с использованием Spring Boot, которое мне позволило понять поверхностно что такое Spring, а также что такое REST сервисы. В третьей компании попросили рассказать о собственных проектах, поспрашивали умеренно о Java и БД.
По итогу последние сделали оффер сразу же, но я взял время немного подумать, так как впереди были выходные и я решил не спешить, потому что первая компания мне также сделала оффер. Вторая дала ответ только через две недели, сославшись, что сейчас ищут более опытного разработчика. Поразмышляв немного, я выбрал третью компанию, так как там уже была сразу оплачиваемая позиция и отличный социальный пакет, а в первой ещё необходимо было проходить неоплачиваемую стажировку и при ее успешном завершении потребовалось пройти еще одно техническое интервью там же.
Могу посоветовать лишь набраться терпения и стараться делать каждый день что-нибудь. Также старайтесь выбирать задачи таким образом, чтобы они были на интересные для вас темы. В общем можете задавать вопросы в личку, помогу, чем смогу :) Удачи!