LINUX.ORG.RU

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

 ,


0

2

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

Вообщем если кратко: Писал раньше года два на плюсах всякие 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)
Ответ на: комментарий от seiken

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

Во-во! Спасибо за развернутый ответ, да, чета я в тупняке был, сейчас уже норм, что-то думал большой пласт инфы там в core (имею ввиду для перехода с плюсов), на деле вроде и немного, но с ООП я кайфанул конкретно, в плюсах очень уж оно костыльное))

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

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

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

Я думаю если подождать лет 10, то вся эта шушера (типа) бакенда а уж тем более фронтенда свалится на ИИ, и чел. будет пофигу на каком ЯП ИИ выплюнет этот модуль. Тест - проходит, работает, ну и плевать.

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

Если ты из-за стажировки и вообще с меркантильными целями то просто сравни вакансии на хх.ру react/vue/js и spring/java. Можешь ещё 1С (их блевотный серверный стек) в сравнение закинуть.

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

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

Тогда лучше забей на изучение всей этой спрингодребедени, освой базовые алгоритмы, и сруктурки жабы. Это не сортировка, а например троттлер сообщений или там обход дерева.

Ни в одной нормальной конторе от студента/вчерашнего студента не будут требовать знания специфичных загогулин т.к в проекте всегда куча специфики которую заранее не выучить. А вот адекватность и обучаемость нужны. И умение написать простые структурки и алгоритмы без иде и бям нужно.

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

Я сам начиающий Java бекендер. Основы спринга изучал по книге «Spring Boot: Up and Running», но книга 2021 года и уже на тот момент некоторые вещи там устаревшими были. Сейчас бы не советовал. В целом, можно постепенно изучать через документацию спринга и baeldung.com, LLM тоже в целом помогают неплохо

IndexZero
()
Ответ на: комментарий от anonymous

Spring?

Нестандарт. Зачем он сейчас, если все его удачные фишки перенимаются в JavaEE.

Копать в сторону JavaEE/JSP последних версий.

Среда программирования Apache Netbeans.

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

Нестандарт. Зачем он сейчас, если все его удачные фишки перенимаются в JavaEE.

Копать в сторону JavaEE/JSP последних версий.

Среда программирования Apache Netbeans.

Я в шоке просто, офигеть, чуть икрой не подавился.

Есть люди кто сильно юзающие яву? Что разве JavaEE сейчас еще живо?

anonymous
()
Ответ на: комментарий от cetjs2

Я редко ИИ спрашиваю а сейчас даже не выдержал и спросил. Пишет что юзается под именем ЖакартаЕЕ, хм … для меня очень неожиданно. Я думал что оно померло вместе с майнфремами.

Я редко ИИ спрашиваю а сейчас даже не выдержал и спросил. Пишет что юзается под именем ЖакартаЕЕ, хм … для меня очень неожиданно. Я думал что оно померло вместе с майнфремами.

anonymous
()
Ответ на: комментарий от iZEN

Наоборот. Джакарта жива только за счёт легаси кода. Spring надо с boot смотреть. Сам по себе он не такой удобный, вообще там сила не в самом фреймворке, а в его экосистеме. И да, очевидно что легаси джакарта будет всасывать удачные решения с других проектов.

anonymous
()
Ответ на: комментарий от ya-betmen

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

Saakx
()
Ответ на: комментарий от anonymous

Что разве JavaEE сейчас еще живо?

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

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

В последние лет 10 джакарта и эклипс сильно продвинули JavaEE в частностях, но новую цельную JEE7 (к примеру) никто выпустить не смог. А вне JEE, другие направления развиваются динамично в яве - и язык, и отдельные спеки. Тот же JAXB уже 4.0.5 и фишками обрастает, я думал было на уровне JDK8 сдох, ан нет.

Upd: JEE7 оказывается был выпущен, я облажался. Но восьмой нет.

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

специально JEE учить смысла нет, лучше куски из неё по профилю деятельности. Скажем, если сайты и сервлеты - то javax.servlet сам в руки прыгнет (часть JEE7). А если работать с БД по обычному голому JDBC то JEE не потребуется.

chumpa
()
Ответ на: комментарий от Saakx

Если собесить пошлют такого энтузиаста то пофиг что ты там изучал, всё равно фигню будет спрашивать, что не ответишь.

Максимум надо знать как запускать потоки.

Тут люди с 10+ годами опыта многопоточку не осиливают и ничего.

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

Копать в сторону JavaEE/JSP последних версий. Среда программирования Apache Netbeans.

Ага, помнится, была такая книженция «Разработка приложений Java EE 7 в NetBeans 8» Хеффельфингера, года так 2015-16. По вашему совету топикстартеру можно и ей воспользоваться - не сильно там, наверное, все устарело :)

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

В том, что подготовка кадров это его обязанность как лида. И если у него нет учебника, им написанного, то он ССЗБ.

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

Либо выходи параллельно учёбе, либо готовься к тому что будешь работать кем-то другим. Потому что рынку айтишки не просто плохо, он умирает. С одной стороны уход западных фирм, с другой невозможность нормально зарабатывать на других странах (да даже Китаю ты свой софт спокойно не продашь, потому что тебя туда тоже не пустят просто так, там есть свой софт и западный), с третьей ИИ сильно автоматизирует и с ним делать готовые проекты может уже моя мама, с четвёртой чем больше готового софта на рынке, тем меньше его нужно. Короче это ловушка, ещё хуже, чем с юристами и экономистами начала двухтысячных.

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

«Разработка приложений Java EE 7 в NetBeans 8» Хеффельфингера, года так 2015-16.

Эта книжка обучает принципам работы со средой программирования Netbeans и интеграции её с сервером приложений Glassfish и Wildfly. Научиться можно, дальше — сам.

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

Я могу ошибиться но JavaEE это просто набор стандартов (спецификаций). Реализуется они как правило на Java.

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