Java Junior. Какой набор знаний для вхождения в профессию?
Приветствую честной народ!
Интересует информация о минимальном багаже знаний для вхождения в профессию в целом и некие рекомендации в частности.
На хабре и подобных ресурсах такие темы 3+ годичной давности, интересует же актуальная информация.
1. Какой набор знаний и технологий требуется?
Я так понимаю, что в основном разработка сейчас на JavaEE, с использованием Spring+hibernate+SQL+регулярные выражения? Remote Method Invoccation, потоки насколько глубоко требуется знать?
Также надо знать git или его можно изучить уже по факту? Регламентируется ли в кампаниях, какую IDE использовать - например, если привык к Intellij Idea, потребуется ли переучиваться на Eclipse?
Насколько глубоко требуется знание SQL?
2. Что почитать из комплексного, особенно по проектированию приложения, разработке классов и их структуры?
Сейчас читаю: Java APIs, Extensions and Libraries, 2nd Edition (2018).
3. Если есть кто из HR или видно по своим коллективам: какой возраст у соискателей на Junior позиции, после 30 реально? а после 40?)))
1 - не путай JavaEE и Spring =) хотя в в целом да, подавляющее большинство разработки на Java - это корпоративные Web приложения, и повсеместно встречаются Spring + Hibernate, а дальше уже вариации. SQL знать желательно, но не обязательно, ибо тот же Hibernate из коробки делает все за тебя. Регулярки - вкусовщина, я на своих проектах категорически против регекспа но иногда без него никуда. С многопоточкой ни разу за 5 лет не работал в том виде, в котором ее нужно было бы хоть сколько-то серьезно знать, ну не довелось.
Гит - сейчас подавляющее большинство работает в умной IDE а там все возможности гита реализованы "из коробки", запушить сможешь нажатием 1 кнопки, а резолвить мержхелл - не твоя работа на данном этапе.
про иде - чаще всего нет, но кое-где, могут потребовать не использовать ломанного ПО, при этом покупать тебе ИДЕ не захотят, по этому будь готов либо купить сам, либо поработать в Eclipse | NetBeans
SQL как я говорил выше - это дополнительные знания, которые послужат приятным бонусом, нежели каким-то обязательным параметром.
КМК важнее
1) изучить 10-пальцевую печать, и поднять скорость где-то до 200 символов в минуту на английском
2) понять, в общих чертах, как вобще работает Java машина.
3) изучить алгоритмы и структуры данных опять же на базовом уровне, что бы просто понимать, как это усутроено
4) фреймворки изучаются достаточно быстро, и начать джуну писать на том же спринге - дело 2-х недель. Сразу оговорюсь - джун не отвечает за свой код, по этому он и джун.
почитаешь это лет через 5-6, когда станешь архитектором =))
сейчас почитай допустим Хорстмана (Библиотека профессионала), Блоха (Эффективное программирование) Шеффер (Spring для профессионалов) этого тебе хватит за глаза для того, что бы устроиться и начать работать.
я не hr но провел более 200 технических собеседований, за последние пару лет. Джуны после 30 - редкость, но не исключение. К слову в Java я сам пришел в 32, сейчас 37.