Что нужно знать Junior Java Developer?

Автор: Петр Арсентьев


Junior

Как начать зарабатывать программированием на Java? Прочитать 100500 книг, посетить сотни семинаров? А как же опыт? Подобные вопросы всегда мучают новичков. Давайте разберем, как сделать шаг в профессию.

Что хочет работодатель?

Любая фирма, в которую вы отправляете резюме, хочет, чтобы сотрудники приносили ей пользу. Формула банальная, но в ней вся суть рынка: чтобы получить работу, нужно быть полезным фирме.

Вот есть, например, "Контора 1" и "Контора 2". "Контора 1" пишет в вакансии, что готова обучить начинающего программиста и потом взять на работу. "Контора 2" обучать не хочет, мол, приходите и сразу начинайте кодить (но перед этим покажите уже написанные проекты, конечно же). Какую фирму вы как новичок выберете?
Очень соблазнительно выглядит предложение "Конторы 1", но я бы советовал избегать таких вакансий: в этих фирмах набирают большую учебную группу кандидатов (20–30 человек) и выбирают лучшего. Все обучение сводится к самостоятельному поиску материала и решению задач, поскольку в реальности никто не заинтересован в получении вами знаний – фирме это просто не выгодно. В итоге, если вы не справляетесь с такой формой обучения, вы не получаете ни работу, ни знания, только потерянное время, которое могли бы потратить на подготовку в реальной работе. С этой точки зрения вакансия "Конторы 2" выглядит более честной.
Суммирая все сказанное, скорректирую нашу формулу: чтобы получить работу, нужно быть полезным фирме здесь и сейчас.

Хорошие новости

Ни одна компания не пишет проект с нуля, поэтому новичку на руку то, что создание современных программ основано на различных библиотеках и фреймворках. Это тот самый случай, когда готовые решения применять не зазорно, а очень даже необходимо. Кроме того, в начале карьеры нет необходимости глубоко разбираться, как работают популярные библиотеки, нужно только уметь подключать и собирать их вместе.
Если вы сделаете простые приложения с использованием фреймворков и зальете их на GitHub, этого будет достаточно, чтобы доказать свою полезность фирме и найти первую работу.

Необходимый минимум

Предлагаю вам список того, что нужно знать Junior Java Developer.

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

Книга: "Изучаем Java" Кэти Сьерра.

2. Структуры данных и простые алгоритмы
Основной ценностью в программировании являются данные, причем они хранятся не хаотично, а в структурах. Поэтому нужно очень скрупулезно подойти к этой теме, выучив основные структуры и алгоритмы для работы с данными. Всегда держите в голове, что неправильно выбранная структура может на корню испортить программу.
Знание структур и алгоритмов здорово выручит вас и на собеседованиях, где любят давать задачки на применение того или иного алгоритма для работы со структурами, например, отсортировать связанный список.

Книга: "Алгоритмы. Построение и анализ" Томаса Кормена.

3. SQL (базы данных)
Трудно найти приложение, которое бы не использовало базу данных, поэтому этот инструмент программирования – must-have в арсенале любого разработчика. Поставьте сервер базы данных PostgreSQL и потренируйтесь писать запросы.

Книга: "Head First SQL" Линн Бейли.

4. Servlet, JSP
Основная область применения Java – корпоративный сектор, для которого разрабатывают серверные приложения. Основа серверного приложения – это Servlet + JSP.

Книга: "Head First Servlet and JSP".

5. Hibernate
Первый фреймворк в списке. Позволяет извлекать данные из базы. Используется повсеместно.

Книга: "Hibernate in Action" Гэвина Кинга и Кристиана Бауэра.

6. Spring
Этот фреймворк, как вирус, постоянно совершенствуется и адаптируется к любым бизнес-требованиям. На нем можно написать все, что делает его универсальным и в то же время гибким средством разработки. Начните со Spring Boot – этот инструмент будет вашим основным орудием труда.

Книга: "Pro Spring" Роба Харропа.

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

8. Git
Программы давно не пишут в одиночку, поэтому используйте этот гибкий инструмент для командной работы.

Сколько времени требуется на подготовку?

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