📓 Книги по Java
870 subscribers
340 photos
27 videos
5 files
835 links
📓 Книги по Java

Самый крутой канал c подборкой книг, статей, но и как без рекламы все в одном месте
По ворпосам размещения @qa_autom
Download Telegram
🫵«Тебе никогда не стать программистом». «У тебя не тот склад ума и нет IT-образования». «В таком возрасте уже поздно менять профессию». Так, стоп!

🤔А что, если все получится?

😕
Всегда легче сказать «не стоит даже пытаться». Но если не рискнешь, тогда 100% ничего не получится. Тем более что сейчас есть ускоренные форматы онлайн-курсов, где обучение не растягивается на год и больше.

⚡️Один из таких курсов — это буткемп «Java Developer» от OTUS. В его основе лежит методика интенсивного обучения через погружение в среду.

🔥 3 месяца обучения 4 дня в неделю по 8 часов вы будете погружаться в профессию Java-разработчика с нуля и дорастете до Junior+.

На буткемпе есть карьерная поддержка: эксперты в IT учат, как правильно составлять резюме и проходить собеседования, а также можно получать приглашения на собеседования от партнеров OTUS.

⭐️ Какие еще фишки есть в буткемпе?
— Антистресс-сессии с коммьюнити-менеджером
— Работа с ментором и в команде
— Практика решения реальных задач
— Первый проектный опыт в Agi...
#Вопросы_с_собеседования

🎙️ Какой из following string классов следует использовать, когда необходимо часто обновлять данные?

Класс StringBuffer следует использовать в случае частых обновлений, поскольку он изменчив и, следовательно, пул строк не будет перегружен.
Красивый код с Java Optional и Either

Многие из Java разработчиков, особенно начинающие, упускают из вида возможности функционального программирования. 😒

Предложенная сегодня статья научит вас последовательному соединению экземпляров Optional и Either для написания лаконичного и красивого кода.

Хорошей практики!

https://dzone.com/articles/the-beauty-of-java-optional-and-either
Ведущий Java- разработчик (middle)
#полныйдень #удаленка
Компания: УБРиР

Чем тебе предстоит заниматься:
- Разработка архитектуры и самого решения для backend части приложения;
- Проектирование и разработка интерфейсов приложений/ключевых технологических и прикладных микросервисов платформы;
- Внедрять новые фичи - мы активно работаем с фидбеком клиентов и постоянно улучшаем наши продукты
- Оптимизировать скорость работы приложений (куда без этого);
- Взаимодействие с разработчиками, аналитиками, дизайнерами и другими командами

Для нас важно:
- Высшее техническое, математическое или другое профильное образование (в том числе курсы повышения квалификации) в сфере ИТ;
- Java SE 8 или выше, Spring Framework 5, принципы SOLID;
- Знание паттернов проектирования;
- Знание методологии TDD и понимание, как правильно писать тесты (модульные, интеграционные);
Spring: новости за прошедшую неделю / 28-е февраля

Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long).

Приятного чтения! 😃

Читать статью
Не бойтесь использовать Gradle

Дорогие junior и все, кто занимается copy-past конфигов Gradle.

В этой статье я хочу простым языком рассказать вам о gradl'овой конфигурации сборки вашего проекта, чтобы вы не боялись использовать Gradle.

Читать статью
Какими коллекциями пользоваться в многопоточной среде?

Первый
вариант – превратить в синхронизированную обычную коллекцию, вызвав соответствующий ее типу метод Collections.synchronized*(). Самый общий и самый примитивный способ, создает обертку с синхронизацией всех операций с помощью synchronized.

Если работа с коллекцией состоит в основном из чтения, лучшая в плане производительности альтернатива – CopyOnWriteArrayList, и содержащий его в реализации CopyOnWriteArraySet. Потокобезопасность достигается копированием внутреннего массива при любой модификации, оригинальный массив остается immutable. Program order достигается модификатором volatile на внутреннем массиве.

Третий вариант – использование Concurrent-коллекций:
• Неблокирующие хэш-таблицы ConcurrentSkipListMap, ConcurrentHashMap и ConcurrentSkipListSet (хэш-таблица в основе реализации)
• Неблокирующие очереди ConcurrentLinkedQueue и ConcurrentLinkedDeque
• Большой набор различных блокирующих очередей
Java Преподаватель онлайн-курса на английском
#удаленка #неполныйдень
З/П: за 1 урок (полтора часа) – от 80 до 120 евро.
Компания: OTUS

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

У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.

Хотите узнать больше?
Контакты: @anna_phoenix7
Мы ищем бэкенд-разработчиков сразу в несколько сервисов и команд!

Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:

👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка  входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.

➡️ Посмотреть все вакансии
🔥 На канале IT Jobs стартанул вебинар на тему: «Полный цикл - пишем Telegram-бота Chatgpt на Python. От проекта до деплоя за час!»

Скорее подключайся!
Мы ищем бэкенд-разработчиков сразу в несколько сервисов и команд!

Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:

👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.

➡️ Посмотреть все вакансии
Какая из переменных проинициализируется быстрее всех?
С каждым годом востребованность Kafka растет, а работа с этим инструментом входит в топ-10 ключевых навыков IT-специалистов.

Только за последний месяц можно найти больше 3000 вакансий, где требуется знание Кафки.

Уверенно заявляем: каждому backend-специалисту рано или поздно придется столкнуться с Кафкой — поэтому команда Слёрм создала интенсив по Apache Kafka для разработчиков, специально под ваши задачи.

Курс Кафка для разработчиков идеально подойдёт вам, если:

▫️Вы уже владеете языками Java или Go;

▫️Понимаете goroutine, модульность;

▫️Имеете базовые знания ThreadPool.

28 онлайн-уроков с возможностью обучаться из любой точки мира, доступ на 2 года, AMA-сессии со спикерами и закрытый чат с куратором — уменьшите время на рабочие задачи с Кафкой, получив расширенные знания по работе с инструментом!

После курса вы:

▫️Начнете прекрасно разбираться и ориентироваться в терминологии;

▫️Напишете простейшие клиенты, поймёте внутреннюю архитектуру Кафки

▫️Сможете работать со сложными протоколами и наст...
Ты знал что каждый кодер должен знать сети на должном уровне?

🤔 Если ты хочешь по-быстрому разобраться в сетях и не хочешь читать книги по тысячи страниц, то переходи в канал Network Academy где ты быстро сможешь изучить самое важное за несколько минут.

ЗАХОДИ 👉 Network Academy
Шестнадцатеричный формат

Иногда нам нужно преобразовать строки в шестнадцатеричный формат, байты или символы. Начиная с Java 17 вы можете использовать класс HexFormat. Просто создайте экземпляр HexFormat, а затем вы можете отформатировать, например, входную таблицу byte в шестнадцатеричную строку. Вы также можете, например, преобразовать входную шестнадцатеричную строку в таблицу байтов, как показано выше.
Можно ли хранить null в стандартных коллекциях?

Все интерфейсы Collections Framework позволяют своим реализациям самостоятельно решать, поддерживать ли null-значения. Если реализация не может принять null, она выбрасывает NullPointerException или ClassCastException.

Большинство списков (LinkedList, ArrayList) принимают null без проблем. Большинство очередей (Queue и Deque) не хранят null – возвращая из читающего метода null они сообщают пользователю о пустоте коллекции.

Unmodifiable Maps не допускают null-ов совсем. Обычные изменяемые мапы обычно не испытывают трудности со значениями null. А вот с ключами дело обстоит интереснее.

HashMap не может посчитать hash-сумму от null. Но вместо этого для таких ключей просто используется бакет номер 0.

Иногда этот вопрос дается как задача с подвохом про TreeMap. Nullability её ключей зависит от готовности к этому компаратора. Натуральный порядок (который работает для Comparable ключей) не поддерживает null. Раньше в реализации был баг, который позволял положить значение по ключу null в корень дерева без выброса исключения.

Для значений Set-ов действуют те же правила, что для ключей лежащих в основе их Map-ов.

👉@BookJava
Java-разработчик (middle)
#полныйдень #удаленка
Компания: Иннотех

Требования к профессиональным навыкам:
- отличные знания Java SE 8+;
- знание принципов ООП, шаблонов проектирования;
- понимание микросервисной архитектуры;
- опыт enterprise разработки/разработки высоко-нагруженных сервисов;
- отличные знания Spring;
- знание JUnit/TestNG;
- знание Maven/Gradle;
- опыт работы с gRPC (будет плюсом);
- опыт работы с Kafka
- знакомство с Netty, протоколом WebSocket (будет плюсом)
знакомство с Docker
- опыт работы с Kubernetes/Openshift (будет плюсом)
В чём заключается различие между методами submit() и execute() у пула потоков?

Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.

execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.

submit() – перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.
#задача

О неединственном дубликате в массиве целых чисел

Условия
:
Дан лист целых чисел от 1 до 100. В нём есть дубликаты (больше одного). Как найти элементы, которые встречаются больше одного раза (найти сам элемент и указать, сколько раз он встречается)?
Java Developer (Middle)
#полныйдень #удаленка
Компания: Иннотех

Вместе с нами тебе предстоит:
- На старте формировать команду и развивать направление;
- Координация работы кросс-функциональной команды, организация и контроль разработки нового функционала, включая процессы сбора требований, разработки, тестирования и внедрения функционала;
- Постановка задач, работа с мотивацией, организация обучения и развития сотрудников;
- Ведение планов работ команды, оценка трудоёмкости работ;
- Взаимодействие с Solution Architect для проектирования реализации решений;
- Разработка back-end части банковских сервисов в микросервисной архитектуре c использованием фреймворка Spring Boot;
- Стать code owner части уже существующих микросервисов и заниматься их развитием;
- Участие в разработке и согласовании API;
- Участие в разработке архитектуры решения и выборе технологий, построение моделей данных;
- Внедрение новых технологий и решение технических проблем;
R&D ключевых участков подсистем.

Какие знания и навыки для нас важны:
- Опыт работы в аналогичной должности от 2 лет;
- Опыт BE разработки от 5-х лет;
- Готовность принимать решения и брать на себя ответственность;
- Стек Java, spring;
- Опыт проектирования и построения микросервисных архитектур;
- Опыт построения CI/CD;
- Опыт работы с платформой Kubernetes/OpenShift;
- Опыт работы с Message/Streaming-oriented middleware (Kafka/RabbitMQ).
- Коммуникационные навыки, умение находить общий язык как с бизнес-заказчиками, так и с разработчиками и смежными подразделениями.