Как для настольных компьютеров, так и для веб-разработчиков есть свои трудности, которые могут сбить с толку тех, кто знает только одно или другое.
Веб-разработка в целом требует более широкого знания различных технологий - HTML, JavaScript, CSS для клиента; Сервлеты, JSP и любые веб-фреймворки, используемые в проекте; SQL, JDBC и все, что ORM приближает к использованию проекта.
Существует также много различных веб-фреймворков Java - основы в основном одинаковы, но есть очень хороший шанс, что вы будете изучать несколько фреймворков, работая над различными проектами.
Трудности на настольных проектах разные. Вместо недостатка фреймворков, на самом деле нет ни одного, который бы использовал так широко. (Swing и SWT на самом деле не являются фреймворками для создания приложений, это просто наборы виджетов.) Поэтому вам обычно приходится писать больше кода - и этот код действительно настраивается для приложения / проекта / компании. (и, как правило, не так здорово - хотя бы потому, что над вашим проектом работает над ним только небольшая группа разработчиков (которые действительно больше заинтересованы в выпуске приложения), а не большее число разработчиков, разрабатывающих и использующих популярные). веб-фреймворки.)
Проблемы многопоточного программирования гораздо чаще встречаются в настольных приложениях, чем в веб-приложениях. Да, это возможно - но это довольно известные проблемы и решения, и снова здесь помогают веб-фреймворки.