Найти тему
JavaGuru

"Я не применяю многопоточность на работе!"

Всем привет! Просто не могу не написать про это.

Я регулярно провожу техническое интервью по Java. Интервью по Java в нашей компании состоит из нескольких частей (секций): коде ревью, поиск проблем, базы данных, многопоточность и вопросы по JDK.

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

На этой неделе проводил интервью у кандидата, который сам себя до интервью оценил как Middle.

Перед интервью я всегда изучаю присланное кандидатом CV, для того что бы составить о нем первое впечатление и понять, что можно ожидать от кандидата, с какими технологиями он работал, какую работу в проекте выполнял. По присланному CV у кандидата за плечами 4 - 5 лет реального опыта работы в хороших компаниях.


Такой кандидат на мой взгляд обязан претендовать на позицию Middle и выше. Так что самооценка кандидата по крайней мере не завышена и выглядела
вполне реальной.

К сожалению само интервью показало обратное.

В этой статье хочу сконцентрироваться на многопоточности.

Добравшись до этой секции кандидат сказал буквально следующее:

"Я не применяю многопоточность на работе!"

После этой фразы я просто выпал в осадок.

Думаю про себя, а как это вообще возможно?

Кандидат программирует Java Backend приложение и не использует многопоточность? Это простите как?

Далее кандидат сказал, что осваивал многопоточность только самостоятельно. Эх ... вот к чему приводит изучение фундаментальных вещей в ИТ самостоятельно.

Кандидат не понимает, что его Java Backend приложение использует многопоточность, что многопоточность при обработке HTTP запросов обычно обеспечивает сам web контейнер (web сервер) при помощи пула потоков.

Это пример как одной фразой можно поставить крест на любом техническом интервью по Java Backend.

В современных реалиях многопоточность (особенно при разработке Java Backend) является одной из фундаментальных вещей о которой нужно знать и
которую нужно уметь использовать.

Многопоточность одна из самых сложных тем. Для ее понимания нужно разбираться в устройстве железа (hardware), устройстве операционной системы, и самой платформы Java (Java Memory Model, Threads, etc.).

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

PS: не забудь подписаться на наш канал, так ты точно не пропустишь интересные посты и анонсы.


С заботой о вашем образовании,
{JG}