Какие использовать технологии для первого Java проекта?
Всем привет! Около месяца назад начал самостоятельно изучать Java. Образование инженерное, и из опыта реального программирования только прикладные Matlab и VBA скрипты для решения разных инженерных же задач.
Сейчас добавил небольшую базу: краткое руководство Шилдта, параллельно делая упражнения и стараясь их чуть усложнять с использованием имеющихся знаний + практиковался на codewars. Сейчас читаю полное руководство для лучшего понимание сервлетов и работы в сети.
Хочу начать делать проект побольше (в сравнении с тестовыми задачками на два экрана) и с какой-то реальной пользой.
ТЗ самому себе примерно такое: 200 - 250 пользователей в пике, что-то вроде таскменеджера для отделов компании, но с упором на учёт трудозатрат каждого сотрудника по итогам месяца за разные работы, формирование статистики и передачу этих данных выше, доступ через браузер.
Честно говоря, немного запутался в разных технологиях. Хотелось бы с одной стороны последовательно учиться и применять знания на практике, а с другой, на выходе получить проект, про который и в резюме можно будет написать не (сильно?) краснея.
Для себя наметил такие ступени изучения:
1) Для минимально рабочего варианта и понимания основ: Сервлеты, Базы данных, JDBC, Vaadin.
2) Потом, чтобы пощупать актуальные технологии, добавить Hibernate и Spring.
Буду благодарен как исправлениям, если я что-то пропустил или, наоборот, написал глупость так и просто советам.
Заранее спасибо!
1. Да, это я осознаю. Но когда изучал вопрос, довольно часто попадалось мнение, что стоит изучить истоки, чтобы была понятна работа актуальных технологий.
Таскменеджером назвал только для очень примерного описания функций, чтобы не писать ещё большую простыню. Основная цель всё же это удобная организация одного побочного рабочего процесса среди коллег, который сейчас заключается в пересылке друг другу вороха писем вместо использования приложения. Так что я и рассматриваю это как пет проект для получения опыта, но с теоретически ненулевой возможностью пристроить его по завершению.
Сервлеты и JDBC юзаются в этих ваших спринг бутах и jpa, и являются по сути основой. Если они вам не нужны, значит вы посредственный программист. Для начинающего программиста и сервлеты и jdbc маст хев в списке для изучения. Сюда я бы добавил еще concurrency с самых низов (вплоть до понимания jmm), и вторым шагом хайлевельные штуки, плавно перетекающие в реактивное программирование (CompletableFuture и иже с ним). WebFlux для ценителей спринга еще бы добавил.
Андрей Шишкин, я начинал веб-программирование с Java 1.3 - именно сервлеты, чистый JDBC и так далее. Но, за все то время, что я работаю со спрингом - мне НИ РАЗУ не пришлось "заглянуть под капот" - вполне достаточно JPA и аннотации @Controller.
Следуя Вашей логике, изучение Java вообще надо начинать с байт-кода...
ЗЫ: пассаж "значит вы посредственный программист" улыбнул, да