PROdlenka @prodlenka_channel Channel on Telegram

PROdlenka

@prodlenka_channel


Это личный канал @dmsol.

Тут я буду размещать свои посты на следующие темы:

- Программирование
- Проектирование и архитектура ПО
- Карьера , поиск работы, подготовка к собеседованиям
- Стартапы

PROdlenka (Russian)

Добро пожаловать в канал PROdlenka! Этот канал является личным каналом @dmsol, где будут размещаться посты на различные темы. Если вы интересуетесь программированием, проектированием и архитектурой ПО, карьерой, поиском работы или подготовкой к собеседованиям, а также стартапами, то вы попали по адресу. Здесь вы найдете полезную информацию, советы, идеи и мотивацию для развития профессиональных навыков и достижения успеха в IT-индустрии. Присоединяйтесь к нашему каналу и не пропустите ни одного поста, который может стать для вас ключом к новым возможностям и достижениям в карьере! Успехов и позитива вам в вашем профессиональном росте!

PROdlenka

31 Dec, 20:10


Мои выводы по итогам 2024 года и прогноз на 2025 год


- Лучшая инвестиция - в себя: здоровье, отдых, обучение.
- Ценить каждого, кто тебя всегда поддерживает и разделяет твои идеи, дистанцироваться от токсичных людей и тех, кто раз за разом подрывает ваше доверие. Первая ошибка - случайность, вторая - совпадение, третья - закономерность.
- Уровень IT-компании определяется не уровнем зарплаты, компенсационным пакетом или продуктом, а инженерной культурой и квалификацией руководителей.
- C ростом квалификации и набором опыта, хаос идей в голове трансформируется в ясное видение того, как улучшить себя и помочь другим: будь то новый продукт, проект на гитхабе, пост в блоге, помощь в коммьюнити или развитие инженерных практик на работе. Если этого нет, то значит надо сделать шаг назад и отрефлексировать. Обучение ради обучения - тупиковый путь.
- ИИ изменил подходы к работе с информацией и к тому, как мы обучаемся, это не хайп, а наша новая реальность.

Прогноз на 2025:

ИИ не заменит программистов, но их заменят программисты, которые используют ИИ.

PROdlenka

31 Dec, 19:15


Неожиданный подарок от Т-Банка🎁

PROdlenka

23 Dec, 16:19


Понедельник начинается в субботу

Многие написали мне в личные сообщения после смены авы канала.

Нет, это не криптоскам и я не продал канал мошенникам.

Очень скоро я буду готов с вами поделиться информацией о том, над чем я работал в свободное время последние несколько месяцев.

Это моё основание и взгляд на проблемы в IT-индустрии.

PROdlenka

23 Dec, 16:02


Channel photo updated

PROdlenka

16 Dec, 11:26


Заменить незаменимое

После блокировок российских аккаунтов компанией JetBrains встал острый вопрос о замене продукта. Sber совершил серьезную ошибку, когда решил разрабатывать GigaIDE не в open-source. Да и лично мне IDE от Sber показалась очень сырой. На инициативу OpenIDE смотрю с оптимизмом, ведь продукт сможет развиваться не только силами 1 коммерческой команды.

https://habr.com/ru/companies/haulmont/articles/866388/

PROdlenka

07 Nov, 16:12


Open Source ли Open Source в 2024?

https://github.com/reactor/reactor-core/pull/3897

Люди с правильной формой черепа совсем забыли, что импорт != экспорт и что Project Reactor под лицензией Apache 2.0.

PROdlenka

05 Nov, 12:52


https://habr.com/ru/companies/axiomjdk/news/854356/

PROdlenka

30 Oct, 06:48


Скандал в благородном семействе

В инфоцыганской пирамиде волков-менторов произошла чудовищная ошибка.

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

Только вот обман со стороны этого волкоментора другим волкам не понравился.

Как же так?🤷‍♂️

PROdlenka

17 Sep, 17:31


🚀 Вышел релиз JDK 23!

Большинство нововведений находится в Preview:

1. Primitive Types in Patterns, instanceof, and switch (JEP 455, Preview)
- Расширяет возможности паттерн-матчинга для примитивных типов и позволяет использовать примитивные типы в switch

Пример:

switch (x.getStatus()) {
case 0 -> "okay";
case 1 -> "warning";
case 2 -> "error";
case int i -> "unknown status: " + i;
}


2. Class-File API (JEP 466, Second Preview)
- Стандартизированный API для работы с байткодом Java
- Упрощает разработку инструментов анализа и генерации кода

3. Markdown Documentation Comments (JEP 467)
- Позволяет использовать Markdown в JavaDoc
- Улучшает читаемость документации в исходном коде

4. Vector API (JEP 469, Eighth Incubator)
- Улучшает производительность векторных вычислений
- Оптимизирует использование SIMD-инструкций процессора

5. Stream Gatherers (JEP 473, Second Preview)
- Вводит интерфейс Gatherer для определения пользовательских операций над стримами

Пример:

static <T> Gatherer<T, ?, List<T>> fixedSizeChunks(int size) {
return Gatherer.ofSequential(
() -> new ArrayList<T>(size),
(chunk, element, downstream) -> {
chunk.add(element);
if (chunk.size() == size) {
downstream.push(new ArrayList<>(chunk));
chunk.clear();
}
return true;
},
(chunk, downstream) -> {
if (!chunk.isEmpty()) {
downstream.push(chunk);
}
}
);
}

List<List<Integer>> result = Stream.of(1, 2, 3, 4, 5, 6, 7)
.gather(fixedSizeChunks(3))
.toList();


6. ZGC: Generational Mode by Default (JEP 474)
- Улучшает производительность сборщика мусора ZGC

7. Module Import Declarations (JEP 476, Preview)
- Упрощает импорт всех экспортируемых пакетов модуля
- Уменьшает количество import-statements в коде

Пример:

import module java.base;

// Теперь доступны все классы из java.base без дополнительных импортов
var list = new ArrayList<String>();
var path = Path.of("file.txt");


8. Implicitly Declared Classes and Instance Main Methods (JEP 477, Third Preview)
- Упрощает написание небольших программ
- Позволяет запускать код без явного объявления класса

Пример:

void main() {
System.out.println("Hello, World!");
}


9. Structured Concurrency (JEP 480, Third Preview)
- Вводит класс StructuredTaskScope для управления группами связанных задач
- Позволяет рассматривать несколько задач как единую рабочую единицу
- Автоматизирует обработку ошибок и отмену задач


try (var scope = new StructuredTaskScope.ShutdownOnFailure()) {
Future<String> user = scope.fork(() -> findUser());
Future<Integer> order = scope.fork(() -> fetchOrder());

scope.join();
scope.throwIfFailed();

processData(user.resultNow(), order.resultNow());
}


10. Scoped Values (JEP 481, Third Preview)
- Вводит класс ScopedValue как альтернативу ThreadLocal
- Обеспечивает неизменяемость данных в рамках определенной области видимости.
- Эффективно работает с виртуальными потоками

Пример:

final static ScopedValue<String> USER_ID = ScopedValue.newInstance();

void processRequest(String userId) {
ScopedValue.where(USER_ID, userId).run(() -> {
String id = USER_ID.get();
performTask();
auditLog();
});
}

void performTask() {
String id = USER_ID.get();
//...
}

void auditLog() {
String id = USER_ID.get();
logger.info("Operation performed for user: " + id);
}


11. Flexible Constructor Bodies (JEP 482, Second Preview)
- Позволяет размещать код до вызова super() или this()

Пример:

class Example extends Parent {
private final int value;

Example(int value) {
if (value < 0) throw new IllegalArgumentException("Value must be non-negative");
this.value = value;
super(value);
}
}


Подробнее: https://openjdk.org/projects/jdk/23/

PROdlenka

31 Aug, 12:45


ИИ заменит программистов?

Некоторое время назад один из подписчиков канала спросил у меня в личке, что я думаю по поводу ИИ и заменит ли он разработчиков? Я пообещал написать про это пост, но не спешил с ответом, так как хотел лично проверить свои тезисы.

На сегодняшний день в головах обывателей ИИ неразрывно ассоциируется с ChatGPT и подобными проектами. В их основе лежат большие языковые модели (LLMs). 11 июня 2018 года компания OpenAI представила особую языковую модель для генерации текста под названием Generative Pre-trained Transformer (GPT). Эта модель положила начало целому семейству моделей GPT.

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

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

Из этого следует, что чем вы опытней в своей области, тем намного полезней для вас будет взаимодействие с LLM. Чем точнее будет ваш promt (подсказка в запросе к LLM), тем точнее будет ответ.

LLMs не заменят программиста, но сделают его намного более продуктивным.

Генерация тестов, документации, прототипов и болванок проектов — все это задачи, в которых ИИ может оказаться весьма полезным. Однако, самая главная фича — это доступ к обширной базе знаний в одном месте и взаимодействие с ней на натуральном языке. Обучение новому или повторение старого теперь не требует часов гуглежки и перебирания блогов/документации, LLM выдаст выжимку и ссылки.

Для знакомства и взаимодействия с различными LLMs необязательно регистрироваться и покупать подписку ChatGPT.
Достаточно установить LM Studio или Ollama, выбрать языковую модель и начать эксперименты!

Важно лишь помнить, что даже при работе с такими мощными инструментами, как LLM, критическое мышление и способность к творческому решению проблем остаются важными навыками программиста. ИИ — это всего лишь инструмент, который дополняет наши возможности, но не заменяет их.

PROdlenka

30 Aug, 12:12


Эластик снова открытое ПО под AGPL лицензией

Спустя три года с момента конфликта с Amazon и появления форка эластика: OpenSearch.

https://www.elastic.co/blog/elasticsearch-is-open-source-again

PROdlenka

03 Aug, 11:21


Valhalla грядет

Project Valhalla - один из самых ожидаемых JEP в JDK. Он привнесет в язык value objects - классы и рекорды, инстансы которых отличаются только по значению их полей и у которых отсутсвует ссылочная идентичность. Мы увидим примитивы в качестве дженериков, nullable и null-restricted типы, heap flattening для оптимального хранения таких объектов.

Больше не будет нужды в таких библиотеках, как fastutil и eclipse collections, а приложения с интесивной in-memory обработкой данных станут потреблять меньше памяти и cpu.

На днях стал доступен ранний релиз JDK23 с этим JEP.

А потыкать его в онлайне можно тут.

PROdlenka

22 Jul, 10:32


По стопам бизнес-молодости и криптоскамеров

В мои чаты по java залетел один персонаж вот с такой рекламой.

Маски сброшены, легенды про преодоления барьера HR забыты.

Просто бабки и обман, а там хоть трава не расти.

PROdlenka

22 Jul, 10:03


Я нашел идеальные беспроводные наушники

Наконец-то приехал из США подарок от жены на мой ДР. После длительного использования Sony 1000xm4 я долго не мог найти схожие по звучанию и удобству беспроводные наушники. Недаром их очень часто в обзорах называют лучшими в мире.

Однако, их нельзя использовать с игровыми приставками PS5 и Xbox Series X, при подключении к Apple TV они не могут воспроизводить Spatial Audio или Dolby Atmos. Поэтому в свое время мне пришлось купить фирменные гарнитуры Sony/Microsoft для игровых приставок. А для просмотра кино на Apple TV со Spatial Audio использовать AirPods Max.

Sonos Ace заменил 4 гарнитуры в моем доме. Все благодаря главной фичи наушников - перенос звука с саундбаров Sonos. Подключенная к телевизору техника просто воспроизводит звук на саундбаре, а в это время звук транслируется по локальной сети в наушники, в Dolby Atmos.

Magic

PROdlenka

16 Jul, 07:03


Без лишних слов

PROdlenka

25 Jun, 12:10


Подписчик поделился своей находкой. На рынке сформировалась новая профессия.

🐳🐳🐳

PROdlenka

25 Jun, 11:46


Большой толстый лжец

Занимаюсь подбором людей в свою команду. Больше половины резюме - с накрученным опытом.

Я уверен, что где-то на территории России находится заводик, где 24/7 вкатыши с курсов занимаются производством дто, контроллеров и сервисных слоев. Иначе не объяснить, почему это топорное косноязычное описание своей работы почти в каждом липовом резюме.

Поражают и аппетиты этих пассажиров. Друг поделился историей, что вчерашний выпускник каты после полугода работы хочет искать работу сразу на сениора, так как «набрался опыта».

На 600 000 рублей на руки.

При этом не понимает, в чем отличие сквоша от мержа в гите.

Текущая тенденция наталкивает меня на мысли, что найм в компаниях будет еще усложняться, потому что вечно такой пузырь накрутки надувать невозможно. Мы сейчас проходим этапы зрелости, которые уже прошли в США и Индии.

И рано или поздно будет сформирован механизм верификации и сертификации кандидатов.

PROdlenka

21 Jun, 09:42


Менее 1 секунды...

Достойная и намного более простая альтернатива GraalVM.

PROdlenka

21 Jun, 09:35


Этот доклад с недавней конференции Spring I/O демонстрирует, как будет выглядеть в ближашее время разработка на Spring Boot.

https://youtu.be/H2tM7EClyx8

Virtual Threads и Leyden. Увеличенная пропускная способность и существенное снижение времени старта сервиса. Идеально в облачной среде при масштабировании и использовании Serverless/Cloud Run и подобных аналогов.

Сегодня как раз вышел EA билд JDK с Leyden. Полагаю, совсем скоро его включат в один из будущих релизов JDK.

А в этом репозитории докладчика можно потрогать Spring Boot + Leyden.

PROdlenka

30 May, 06:42


Сегодня утром многие девопсы нашей страны пройдут внезапный экзамен.

Шпаргалка: https://huecker.io/

https://habr.com/ru/news/818177/

PROdlenka

27 May, 17:09


Просчиталась, но где?

Один мой знакомый занимается Java-репетиторством. Работа не очень сложная, но довольная нервная из-за кучи желающих мимокрокодилов вкатиться в IT с минимальными усилиями. История, которую он мне поведал, выглядит очень иронично на фоне моего опыта взаимодействия со Sber.

Зарисовка:

Молодая красивая девушка полгода назад устроилась в Sber. За 6 месяцев "сделала" всего пару задач силами коллег, опьянённых её красотой. Они помогали ей "править переменные". ВНЕЗАПНО на проект пришла другая девушка - тимлид, которая была шокирована такой производительностью "коллеги" и поставила вопрос ребром. Девушка обратилась к моему знакомому с просьбой обучить с нуля, чтобы не выгнали с работы. С НУЛЯ. Потому что, как оказалось, девушка не знает ни Java (например, что в void не используют return), ни Spring Boot, ни других вещей, которые необходимы для работы.

И самое смешное: эта девушка обучалась на курсах Kata Academy.🤡

Какие выводы?

Развенчан миф, что после устройства на работу вкатыш будет обучаться как не в себя, ведь его останавливал от этого только фильтр найма.🤡

Но реальность такова, что люди с курсов, которые пришли ТОЛЬКО за деньгами и которым плевать на саму работу, будут просто отбывать номер, как девушка из истории выше.

Двери Sber широко открыты для вкатышей/пассажиров/мошенников, но для действительно ценных кадров процесс найма настолько отталкивающий, что люди просто туда не идут.

И никто из адекватных людей не захочет работать с такими "коллегами".

PROdlenka

27 May, 16:31


Sber нанимает лучших *

* только если вы в Москве
* только если вы готовы ездить в офис
* только если вы готовы пройти полиграф
* только если вас устроит часть дохода в виде легендарной премии
* только если вам не очень то нужен Macbook и Docker
* только если вас не пугает Sbergile

Если же вы удаленщик из региона и профессионал с амбициями, то для желаемого уровня дохода и работы в местном офисе вам придется получить 15 грейд - среднее управленческое звено.

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

PROdlenka

10 Apr, 17:05


Что изменилось в найме за последнее время в России?

Пообщался с коллегами из индустрии, обменялся опытом проведения собесов за последние 9 месяцев и вот какая картина сложилась на данный момент.

Все топы рынка с официальным оформлением по ТК РФ теперь:

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

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

Ведь если раньше накрутку опыта такие кандидаты оправдывали желанием пробить определенный HR-фильтр, то сейчас есть целые сообщества людей (те же "волки" Антона Назарова или выпускники Ката академии и подобных курсов), который крутят опыт с нуля, прибавляя себе 2-3-4 года опыта. Очевидно, что такие люди не могут нормально работать на грейде, на который они устроились. И команда с таким "коллегой" и фирма несут убытки.

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

Ведь в итоге все мы хотим работать с настоящими профессионалами.