LINUX.ORG.RU

Джависты, нужен совет

 ,


0

3

Есть, кто пишет на джаве?

Вообщем если кратко: Писал раньше года два на плюсах всякие QT-шные приложухи, какие-то свои проекты, последние пол года забавляюсь с сетевыми протоколами, ясное дело сначала начал с хттп, потом понесло что-то в всякие ICMP, ARP, работа с сырыми сокетами и тд.

Короче что-то последнее время меня в бекенд затянуло, на плюсах писать бекенд не очень уж удобно и приятно. Тут вспомнил про джаву, после плюсов вообще прекрасно, особенно тот факт, что синтаксис очень сильно похож, но при этом телодвижений намного меньше.

Посоветуйте хорошие ресурсы по джаве кроме документации для ее изучения, причем желательно не книги, где половину книжки посвящена где же мне пригодится ООП, а вторая дай бог про язык. Сейчас изучаю по Metanit-у, ясное дело читая наискосок темы, которые основа основ, но все же читаю, тк как никак язык другой и есть кое какие отличия. Ясное дело скорее всего метанита хватит (для изучения core), ибо ресурс неплохой, дальше только практика, практика, практика, проекты, но все же может есть какие подвохи там? Например знаю на w3schools, который я тоже часто использую для быстрого гайда по какой либо технологии, там нет и половины того, что есть на метаните.



Последнее исправление: chebo7 (всего исправлений: 1)

@maxcom переписывает LOR с Java на Scala, как раньше переписывал с *** на Java, даже курсы от него есть на ютубе.
Может расскажет что не так с Java на беке. Что не так с бывшим *** в целом понятно, но может тоже расскажет. Там истории наверное технической на целую книжку будет. Пора начинать писать мемуары. От *** до Scala сквозь Java. Гы

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от chebo7

У меня нет компетенций про такое говорить. Поэтому я и кастанул того у кого они есть.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Ygor

тут это не катит из за фразы:

особенно тот факт, что синтаксис очень сильно похож,

anonymous
()

У меня 10 лет коммерческого опыта на Java, и я вообще хз, какую фундаментальную литературу сейчас посоветовать.

Во-первых, язык сейчас быстро меняется, Джава сегодня уже не та, что была 10 лет назад. А книги так быстро не пишут, увы. Можешь попробовать посмотреть книги от Брюса Эккеля, у него вроде последняя по Java 14 была, я сам последнее уже не читал, но по Java 6 у него прям отлично было.

Во-вторых, знание самого языка как такового не так важно в коммерции. Посмотри, например, на том же хабре полно статей с вопросами с собесов. Что спрашивают у джавистов? Конкретные технологии и фреймворки, типа спринга, кафки и баз данных. Могут погонять по алгоритмам и структурам данных, но это обычно входные вопросы, отсеять совсем неадекватов.

P.S. Из вопроса не очень понятно, ты в коммерческую разработку на Java попал или пет-проджекты делаешь?

hippi90 ★★★★★
()
Ответ на: комментарий от chebo7

Ну тогда бери spring. Есть свежие книги на русском. Только по мне это сильно сложнее и дольше, чем почитать tour of go и писать rest на чистом go используя на фронте html+js. Для пет проектов по крайней мере.

Ygor ★★★★★
()
Ответ на: комментарий от chebo7

А какие есть реальные преимущества Scala над Java?

Сейчас средний уровень программиста, который пищет на скала выше чем среднего джависта.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

В этом то и проблема. Уровень программера оценивают по знаниям языка а не по конечному продукту.

Вот к примеру гляжу на фотку с конференции nextcloud, фотка человек 80 разработчиков, и они даже не в курсе что они …

Я это не в случае защиты php, сам лет 25 назад делал на нем сайты. Я про стереотипы.

anonymous
()

Странное дело, что никто не посоветовал Stepik.org) - там достаточно много курсов по разным языкам программирования, включая Java, в том числе и бесплатных курсов. Java на Stepik

Минус большинства курсов в том, что там небольшое краткое изложение темы, а потом много часто неудачных задач академического характера или спертых из других курсов, учебников, сайтов. С другой стороны, решая эти вроде бы ненужные задачи, вдалбливаешь в себя понимание темы. Я там Python так освоил.

Ну и как справочник-первооснова по языку: Java Language Specification

MichIs
()
Ответ на: комментарий от hippi90

Во-вторых, знание самого языка как такового не так важно в коммерции.

Ясное дело, мне бы перед спрингом core подтянуть, а потом уже конечно пойдут фреймворки

Из вопроса не очень понятно, ты в коммерческую разработку на Java попал или пет-проджекты делаешь?

В коммерцию конечно, забыл сказать, просто сейчас везде нужен опыт, а лучший способ получения опыта (без самой работы и каких-то стажировок) как мне кажется - это писание своих проектов.

chebo7
() автор топика
Ответ на: комментарий от chebo7

Приятнее писать код, лаконичнее и гибче. Нет ощущения что языковые конструкции из 20 века, как в жаве. Но я на скале пишу как на беттер жаве

tzekunosyosha
()

Udemy по скидке если есть доступ. Фильтрация по ключевому слову и 17+ часов с сортировкой от лучших по пользовательским оценкам. Мне лично помог Chad Darby по Spring Boot. На момент приобретения был 2, сейчас 4. Как уже писали выше для коммерческой разработки Spring Boot, SQL, Kafka, набор паттернов для распределенной архитектуры сервисов.

Хотя последний проект из распределенного собрал в stateless монолит, потому что нагрузка низкая, а выносить себе мозг повышенной сложностью лишний раз не хочется.

anonymous
()

Жаба как язык проста. Как впрочем и любой другой язык. Проблема скорей в изучении стандартной библиотеки и распространенных фреймворков

no-dashi-v2 ★★★★
()

Я в свое время получал сертификат Sun Certified Java Programmer на пятую версию. И в процессе подготовки находил прямо-таки шикарную книгу, по которой, собственно, и готовился (книга, собственно, и была про то, как готовиться к этому экзамену, название уже запамятовал, но гугл подскажет). Экзамен там весьма дотошный и гоняет по всем закоулкам языка и стандартной библиотеки. Хотя я на Java к тому времени писал уже давно и знал её хорошо, тем не менее с наскока вряд ли бы сдал, книжка помогла и я таки узнал много мелочей, которые проходили мимо меня. А уж всё по базе языка там точно есть.

Вот именно такой путь и посоветую. Сдавать экзамен не обязательно, но попробуй поискать книги для подготовки к экзамену по интересующей тебя версии, экзаменационные вопросы, это всё в сети должно быть.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 2)

Я сам в такой ситуации оказался. Всю жизнь сишка и плюсы, а тут надо кровавый энтерпрайз пилить. Что скажу… core java надо быстро проходить, для плюсовика там нет ничего сложного. Одна из запар - имена и положение классов в пакетах. Чуть пропустишь компонент пути - и всё, нихрена не ищется. Но потом, когда понимаешь джавовскую систему пакетирования, неймспейсов и classpath, начинаешь ценить её больше, чем сишно-плюсовый зоопарк из заголовочных файлов и модули, которые непонятно, допилили уже до конца или нет.

Сразу надо минимум-миниморум сборочной системы освоить. И унит-тест фреймворк. Чтобы сразу знать, как в едином древе исходников и прод-код, и юнит-тесты собирать. Мне по синтаксису лично импонирует gradle. Но, к сожалению, в литературе и индустрии до сих пор много XMLной лапши на maven. И, по всей видимости, он никуда не собирается уходить. Так что maven надо хотя бы уметь читать.

Дальше, если бэкенд-фреймворк выбирать, Spring/Boot - это типа старое, проверенное временем решение. До JIT/GraalVM-истерии, до кубер-истерии, это была (да и есть) рабочая лошадка бэка. Но есть нюанс - хоть оно и старое-проверенное, там тоже меняют API. Например, читал книгу Кристиана Улленбума про Spring/Boot (не важно, что книга, в курсах будет та же, нижеописанная, проблема). Там он первый пример аппа на Spring приводит, который «консольный API», ну т.е. компоненты связаны не с REST API, и тем более не с HTTP+фронт, а чисто для консольки можно программировать классы, и вызывать логику реализованных бизнес-компонент из консольки, для чего есть (были) в спринге батарейки. Надо сказать, с т.з. обучения - очень грамотный ход. Да и даже в проде такая консолька не лишняя, если что-то надо прицельно, но очень инвазивно подкрутить в раком вставшей системе. Так вот, методически ход грамотный, но в последней версии 4.<чего-то-там> спринга или бута, эти батарейки выкинули, и теперь они часть какой-то другой, внешней зависимости. И всё, примерчик не соберётся. Т.о. надо понимать, что ты либо будешь использовать немного устаревшие версии, чтобы учебный материал вообще имело смысл читать/пробовать. Либо ты будешь по-ковбойски разруливать проблемы несовместимости в новых версиях фреймворка сам. А зависимостей в таких толстых фреймворках до хрена и больше. И далеко не факт, что LLM справиться с подобным разруливанием.

Это я к тому, что простых путей в обучении тут нет, и надо все доступные способы пробовать. И книги, и статьи, и курсы, и LLM, если поможет.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Ах да, ещё такой момент. Если эта вся джава не для хобби, а для профессии выбирается, особенно если в команде работать, у которой уже есть давние наработки, нет смысла непременно пердолиться с фичами последней версии Джава.

Потому что люди используют старьё, например, Java 11.

Но если ты сам себе кулибин, инертность индустрии по барабану, то вообще лучше взять Kotlin.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от chebo7

А какие есть реальные преимущества Scala над Java?

Если хочешь с умным профессорским видом троллить на форумах тех, кто не осилил современное ФП - тебе дорога к Скале. А если тупо нужен «рабоче-крестьянский» скилл в резюме, который востребован - тогда Java или Kotlin.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария