👨💻Привет! Меня зовут Артем. Я Java-разработчик с 2017 года.
Сейчас на синьор позиции в крупном банке. Веду интервью и онбординги.
Здесь публикую:
- Авторские посты 🧠
- Материалы для подготовки к интервью 👀
- Реальные кейсы и разборы вопросов с собеседований 🎯
Материалы для подготовки здесь (список все время наполняется):
https://t.me/java_interview_tips/19
По любым вопросам пиши мне, я постараюсь ответить. Можешь даже скинуть резюме на ревью
#Java #собеседования #интервью #работа
Сейчас на синьор позиции в крупном банке. Веду интервью и онбординги.
Здесь публикую:
- Авторские посты 🧠
- Материалы для подготовки к интервью 👀
- Реальные кейсы и разборы вопросов с собеседований 🎯
Материалы для подготовки здесь (список все время наполняется):
https://t.me/java_interview_tips/19
По любым вопросам пиши мне, я постараюсь ответить. Можешь даже скинуть резюме на ревью
#Java #собеседования #интервью #работа
🤗1
Материалы для подготовки к интервью на Java Dev
Об авторе: https://t.me/java_interview_tips/17
📌 Базовая теория, мой список из 21 простого вопроса, которые чаще всего попадаются:
https://github.com/purple-drunk/java-junior-interview-prep
📌 Код-ревью на собеседовании (супер-актуально для Middle и выше). Как его делать правильно? Серия постов:
https://t.me/java_interview_tips/31
📌 Системный дизайн (для Senior и выше):
-Шпаргалка (в разработке)
-Вся теория в одном месте:
https://github.com/donnemartin/system-design-primer
-Как проходит (видео-пример):
https://youtu.be/ioEHnd_fpFA?si=dK1CDl5wnjmFcG-y
📌 Опыт (в разработке)
- Maintainability (серия постов)
https://t.me/java_interview_tips/38
📌 Алгоритмы
- шпаргалка:
https://t.me/java_interview_tips/44
📌 Реляционные БД (этап в разработке)
- тренажер по SQL
https://t.me/java_interview_tips/21
📌 Что еще почитать?
- Как устроен процесс интервью в IT
https://t.me/java_interview_tips/22
- Куда идти - в бигтех или маленькую компанию?
https://t.me/java_interview_tips/23
#Java #собеседования #интервью #работа #вопросы_на_интервью
Об авторе: https://t.me/java_interview_tips/17
📌 Базовая теория, мой список из 21 простого вопроса, которые чаще всего попадаются:
https://github.com/purple-drunk/java-junior-interview-prep
📌 Код-ревью на собеседовании (супер-актуально для Middle и выше). Как его делать правильно? Серия постов:
https://t.me/java_interview_tips/31
📌 Системный дизайн (для Senior и выше):
-Шпаргалка (в разработке)
-Вся теория в одном месте:
https://github.com/donnemartin/system-design-primer
-Как проходит (видео-пример):
https://youtu.be/ioEHnd_fpFA?si=dK1CDl5wnjmFcG-y
📌 Опыт (в разработке)
- Maintainability (серия постов)
https://t.me/java_interview_tips/38
📌 Алгоритмы
- шпаргалка:
https://t.me/java_interview_tips/44
📌 Реляционные БД (этап в разработке)
- тренажер по SQL
https://t.me/java_interview_tips/21
📌 Что еще почитать?
- Как устроен процесс интервью в IT
https://t.me/java_interview_tips/22
- Куда идти - в бигтех или маленькую компанию?
https://t.me/java_interview_tips/23
#Java #собеседования #интервью #работа #вопросы_на_интервью
Очень часто на собеседованиях встречается небольшая задачка на SQL. Далеко не все и не всегда пишут SQL запросы на работе, на моем текущем проекте, например, вообще нет базы данных, а на предущем она была простая как 5 копеек.
Поэтому, перед собеседованием однозначно стоит вспомнить как пишутся простые запросы - SELECT, GROUP BY, HAVING.
Потренироваться можно на бесплатном тренажере:
https://sql-academy.org/ru/trainer
Также небольшой чек-лист для повторения по реляционкам:
1) Индексы, какие бывают, для чего нужны
2) Блокировки - оптимистичные, пессимистичные
3) Транзакции - для чего нужны, уровни изоляции
Поэтому, перед собеседованием однозначно стоит вспомнить как пишутся простые запросы - SELECT, GROUP BY, HAVING.
Потренироваться можно на бесплатном тренажере:
https://sql-academy.org/ru/trainer
Также небольшой чек-лист для повторения по реляционкам:
1) Индексы, какие бывают, для чего нужны
2) Блокировки - оптимистичные, пессимистичные
3) Транзакции - для чего нужны, уровни изоляции
Как устроен процесс интервью в IT сейчас? 💻
Маленькие и средние компании обычно ищут разработчика сразу на конкретную позицию. Это значит, что процесс не особо формализован:
1) Скрининг с HR, общие вопросы по чеклисту.
2) Фит-интервью сразу с целевой командой, обычно собеседует лид и еще кто-то. Будет солянка, но в целом вопросы по опыту, технологиям, задачам, которые придется решать. Вопросы по алгоритмам и дизайну могут быть, а могут и не быть - зависит от компании и позиции.
Здесь вторичны общие знания. Важнее показать хороший мэтч с вакансией. К собеседованию желательно готовиться, изучив вакансию и информацию о проекте, чтобы показать заинтересованность конкретно в этой работе.
Небольшая или средняя компания - неплохой вариант для старта, но расти там скорее всего не получится.
📌 Интереснее дело с наймом обстоит в крупных компаниях.
Собеседования часто идут в общий пул кандидатов:
1) Скрининг с HR - те же общие вопросы по чеклисту.
2) Технические секции - алгоритмы, лайвкодинг, дизайн, Java, опыт (любые комбинации этих секций) - каждую из них чуть позже рассмотрим подробнее. Все они идут как по методичке, их цель - выявить мимокрокодилов и сматчить зарплатные ожидания.
По результату - если секции пройдены хорошо - ищется команда для финального интервью.
3) Фит с заинтересовавшейся командой: здесь мы общаемся с лидом, уточняем вопросы, что вообще придется делать на проекте (чек-лист обязательных вопросов - тема для отдельного поста).
Что, на мой взгляд, важно об этом всем знать, но это никто не учитывает: почти всё в итоге зависит от впечатления интервьювера - именно он пишет краткий вывод в отчет и выставляет оценку, которые затем влияют на итоговое решение о найме.
🎯 Несколько хинтов, которые драматически повышают шансы на успешное интервью:
- Хорошее настроение - прийти на позитиве за несколько минут до начала, поздоровавшись - улыбнуться, небольшой смолл-толк - это плюс. 😊
- Ставить интервью на первую половину дня и НИКОГДА на вечер пятницы - после рабочего дня уже ничего никому не хочется, и в среднем оценка будет ниже.
- Если не знаешь ответ на конкретный вопрос и нет задачи придумать решение - никогда не старайся придумать ответ на ходу. Скажи, что не знаешь, и идите дальше, потому что время на интервью очень ценное. Лучше потратить время на вопрос, в котором ты отлично разбираешься. Если начинаешь фантазировать - всё хорошее впечатление мгновенно портится.
Маленькие и средние компании обычно ищут разработчика сразу на конкретную позицию. Это значит, что процесс не особо формализован:
1) Скрининг с HR, общие вопросы по чеклисту.
2) Фит-интервью сразу с целевой командой, обычно собеседует лид и еще кто-то. Будет солянка, но в целом вопросы по опыту, технологиям, задачам, которые придется решать. Вопросы по алгоритмам и дизайну могут быть, а могут и не быть - зависит от компании и позиции.
Здесь вторичны общие знания. Важнее показать хороший мэтч с вакансией. К собеседованию желательно готовиться, изучив вакансию и информацию о проекте, чтобы показать заинтересованность конкретно в этой работе.
Небольшая или средняя компания - неплохой вариант для старта, но расти там скорее всего не получится.
📌 Интереснее дело с наймом обстоит в крупных компаниях.
Собеседования часто идут в общий пул кандидатов:
1) Скрининг с HR - те же общие вопросы по чеклисту.
2) Технические секции - алгоритмы, лайвкодинг, дизайн, Java, опыт (любые комбинации этих секций) - каждую из них чуть позже рассмотрим подробнее. Все они идут как по методичке, их цель - выявить мимокрокодилов и сматчить зарплатные ожидания.
По результату - если секции пройдены хорошо - ищется команда для финального интервью.
3) Фит с заинтересовавшейся командой: здесь мы общаемся с лидом, уточняем вопросы, что вообще придется делать на проекте (чек-лист обязательных вопросов - тема для отдельного поста).
Что, на мой взгляд, важно об этом всем знать, но это никто не учитывает: почти всё в итоге зависит от впечатления интервьювера - именно он пишет краткий вывод в отчет и выставляет оценку, которые затем влияют на итоговое решение о найме.
🎯 Несколько хинтов, которые драматически повышают шансы на успешное интервью:
- Хорошее настроение - прийти на позитиве за несколько минут до начала, поздоровавшись - улыбнуться, небольшой смолл-толк - это плюс. 😊
- Ставить интервью на первую половину дня и НИКОГДА на вечер пятницы - после рабочего дня уже ничего никому не хочется, и в среднем оценка будет ниже.
- Если не знаешь ответ на конкретный вопрос и нет задачи придумать решение - никогда не старайся придумать ответ на ходу. Скажи, что не знаешь, и идите дальше, потому что время на интервью очень ценное. Лучше потратить время на вопрос, в котором ты отлично разбираешься. Если начинаешь фантазировать - всё хорошее впечатление мгновенно портится.
Почему стоит идти работать в крупную компанию? 🏦
5 причин за:
1) Ты будешь работать с опытными коллегами, у которых есть чему поучиться
2) Ты узнаешь как строить высоконагруженные системы, мониторинг и алертинг для них, как это работает в реальной жизни
3) Ты увидишь как устроены процессы разработки у профессионалов, получишь качественный фидбек
4) Ты сможешь поучаствовать в создании сервисов для миллионов пользователей
5) Ты получишь неограниченный потенциал роста, который зависит только от амбиций
До того как я пришел работать в желтый банк, я мог писать код, но практически ничего не знал о процессах разработки - например, о нормальном код-ревью.
Очень здорово, когда на работе ты можешь потрогать нагруженные сервисы и посмотреть, как коллеги решают проблемы, о которых ты даже не слышал.
Работа в крупной компании дает возможность участвовать в проектировании и разработке действительно сложных систем, хотя цена этому - бюрократия и огромное количество коммуникаций.
Я очень благодарен текущей работе, я узнал как действительно правильно разрабатывать системы (а не просто писать код). Узнал как выстраивать процессы работы нескольких команд для доставки ценности. И это на позиции разработчика. Поразительный уровень свободы.
Если у тебя есть возможность пойти работать в крупную компанию - это лучший шанс из возможных. 👍
#Java #собеседования #интервью #работа #поиск_работы #карьера #стажировка
5 причин за:
1) Ты будешь работать с опытными коллегами, у которых есть чему поучиться
2) Ты узнаешь как строить высоконагруженные системы, мониторинг и алертинг для них, как это работает в реальной жизни
3) Ты увидишь как устроены процессы разработки у профессионалов, получишь качественный фидбек
4) Ты сможешь поучаствовать в создании сервисов для миллионов пользователей
5) Ты получишь неограниченный потенциал роста, который зависит только от амбиций
До того как я пришел работать в желтый банк, я мог писать код, но практически ничего не знал о процессах разработки - например, о нормальном код-ревью.
Очень здорово, когда на работе ты можешь потрогать нагруженные сервисы и посмотреть, как коллеги решают проблемы, о которых ты даже не слышал.
Работа в крупной компании дает возможность участвовать в проектировании и разработке действительно сложных систем, хотя цена этому - бюрократия и огромное количество коммуникаций.
Я очень благодарен текущей работе, я узнал как действительно правильно разрабатывать системы (а не просто писать код). Узнал как выстраивать процессы работы нескольких команд для доставки ценности. И это на позиции разработчика. Поразительный уровень свободы.
Если у тебя есть возможность пойти работать в крупную компанию - это лучший шанс из возможных. 👍
#Java #собеседования #интервью #работа #поиск_работы #карьера #стажировка
👍2
Есть много рутинной работы, но нет денег? 💸
Купи клауд, а, нет, крути "карусель стажеров"! 🧑💻
Кейс одного коллеги, который имея год опыта работы в веб-студии бекендером пытался устроиться на стажировку в один крупный бигтех.
Он успешно прошел скрининг и предварительное интервью
Ему сказали - что лучших кандидатов отбирают в штат, но работать придется бесплатно. При этом будет ментор и отличный шанс прокачать навыки на реальном проекте
Краткие итоги:
Он с ребятами переписал небольшой легаси сервис с SOAP на REST бесплатно, и покрыл его тестами
Ментор был один на много человек и "очень занятой", отвечал пару раз в неделю
Он действительно получил опыт, а за него, сколько не плати, не переплатишь. И сказал что теперь никаких бесплатных стажировок, только ИС в штате😆
Но всегда есть следующий стажер, желающий получить ачивку "работал в крутой компании N".
#карьера
Купи клауд, а, нет, крути "карусель стажеров"! 🧑💻
Кейс одного коллеги, который имея год опыта работы в веб-студии бекендером пытался устроиться на стажировку в один крупный бигтех.
Он успешно прошел скрининг и предварительное интервью
Ему сказали - что лучших кандидатов отбирают в штат, но работать придется бесплатно. При этом будет ментор и отличный шанс прокачать навыки на реальном проекте
Краткие итоги:
Он с ребятами переписал небольшой легаси сервис с SOAP на REST бесплатно, и покрыл его тестами
Ментор был один на много человек и "очень занятой", отвечал пару раз в неделю
Он действительно получил опыт, а за него, сколько не плати, не переплатишь. И сказал что теперь никаких бесплатных стажировок, только ИС в штате😆
Но всегда есть следующий стажер, желающий получить ачивку "работал в крутой компании N".
#карьера
Джун или миддл: ну тут будет ошибка
Синьор: надо пробовать запустить и подебажить, чота падазрительна
Авторы JDK: т.к. это предпоследний элемент массива - тут корнер кейс, и в этом случае код отработает :D
Интересный корнер кейс, поскольку проверка на модификацию массива в цикле проходит каждую итерацию цикла кроме последней, но в данном случае т.к. размер массива уменьшился из-за удаления, и получается что курсор уже в финальной позиции, получение следующего элемента не происходит, и исключение не бросается.
#Java #программирование
Синьор: надо пробовать запустить и подебажить, чота падазрительна
Авторы JDK: т.к. это предпоследний элемент массива - тут корнер кейс, и в этом случае код отработает :D
Интересный корнер кейс, поскольку проверка на модификацию массива в цикле проходит каждую итерацию цикла кроме последней, но в данном случае т.к. размер массива уменьшился из-за удаления, и получается что курсор уже в финальной позиции, получение следующего элемента не происходит, и исключение не бросается.
#Java #программирование
🔥2
У меня есть в загашнике контент для пятничного шитпостинга. Свежие мысли из 2020, так скажем
Итак, поехали.
Самым имбалансным критерием оценки компании на мой взгляд ПО СЕЙ ДЕНЬ является толчек.
Да, именно он. Оценив чистоту, убранство, ассортимент гигиенических средств и приборов (крем для рук - базовый минимум?), а также
музыкальное сопровождение, можно сделать самые далеко идущие выводы о компании.
Мягкая и шелковитая бумага говорит о процветании, а приятный аромат о том, что компания очень ценит душевный покой своих сотрудников. 🍑
Футуристичный стиль кричит о креативном мышлении.
Это индикатор динамический. Как только вместо шелковистой бумаги начинает попадаться серая бумага из вторсырья - макрофинансовый отчет компании можно даже не открывать.
Лучше сходить в офис к конкурентам и проверить их фаянсового друга.
#карьера #шитпостинг
Итак, поехали.
Самым имбалансным критерием оценки компании на мой взгляд ПО СЕЙ ДЕНЬ является толчек.
Да, именно он. Оценив чистоту, убранство, ассортимент гигиенических средств и приборов (крем для рук - базовый минимум?), а также
музыкальное сопровождение, можно сделать самые далеко идущие выводы о компании.
Мягкая и шелковитая бумага говорит о процветании, а приятный аромат о том, что компания очень ценит душевный покой своих сотрудников. 🍑
Футуристичный стиль кричит о креативном мышлении.
Это индикатор динамический. Как только вместо шелковистой бумаги начинает попадаться серая бумага из вторсырья - макрофинансовый отчет компании можно даже не открывать.
Лучше сходить в офис к конкурентам и проверить их фаянсового друга.
#карьера #шитпостинг
🔥1😁1
День без встреч. Бустим командные процессы (да и личные)
Год эксперимента подошел к концу - уже год в нашей команде в четверг мы не проводим встреч кроме экстренных разбор инцидентов у дежурных.
Краткие итоги обсудили на ретро:
0) Главное - никто не умер 😆
1) Появилось больше времени для концентрированной работы, без смены контекста и вечных обсуждений
2) Появился день когда можно работать по своему графику, а также сходить и порешать свои дела не парясь и никого не предупреждая
3) Leadtime задач статзначимо не изменился
4) Всем нравится, а это важно.
Эксперимент признан успешным. Попробовать однозначно стоит.
#опыт #it #процессы
Год эксперимента подошел к концу - уже год в нашей команде в четверг мы не проводим встреч кроме экстренных разбор инцидентов у дежурных.
Краткие итоги обсудили на ретро:
0) Главное - никто не умер 😆
1) Появилось больше времени для концентрированной работы, без смены контекста и вечных обсуждений
2) Появился день когда можно работать по своему графику, а также сходить и порешать свои дела не парясь и никого не предупреждая
3) Leadtime задач статзначимо не изменился
4) Всем нравится, а это важно.
Эксперимент признан успешным. Попробовать однозначно стоит.
#опыт #it #процессы
Итак. Астрологи объявили неделю код-ревью. Напишу серию небольших постов о ревью, как его проводить на интервью и разбор реальной задачки.
Поехали. 🚀
Часть 1. Как проводить код-ревью на собеседовании? Чек-лист 📋
Подготовительные пункты:
- Ознакомиться с постановкой задачи, если она есть.
- Просмотреть структуру классов, их названия и контракты.
- Понять, какую задачу должен решать этот код.
Тайминги этого этапа 3-5 минут.
Приступаем к самому ревью:
- Ревью кода проводим построчно, от контроллеров к сервисам.
- По ходу ревью комментируем код — озвучиваем интервьюеру потенциальные проблемы с кодом и наш ход мысли.
- Когда находим проблему — править код не нужно, достаточно подсветить её и предложить решение.
Обычно достаточно подсветить 3–4 минорные проблемы и перейти к поиску мажорной.
Тайминги этого этапа тоже 3-5 минут.
Мажорная проблема всегда подразумевает детальную беседу — нужно раскрыть причины, предложить рефакторинг (2–3 способа).
Это 10-15 минут.
- Общие тайминги ревью кода обычно от 15 минут до получаса, нужно контролировать время, чтобы хватило на поиск и обсуждение мажорной проблемы.
- Важно. Критиковать авторов и код не нужно, важнее предложить хороший фикс.
- Основные проблемы обычно лежат на стыке приложения и БД или сторонних интеграций.
#Java #ревью #собеседования
Поехали. 🚀
Часть 1. Как проводить код-ревью на собеседовании? Чек-лист 📋
Подготовительные пункты:
- Ознакомиться с постановкой задачи, если она есть.
- Просмотреть структуру классов, их названия и контракты.
- Понять, какую задачу должен решать этот код.
Тайминги этого этапа 3-5 минут.
Приступаем к самому ревью:
- Ревью кода проводим построчно, от контроллеров к сервисам.
- По ходу ревью комментируем код — озвучиваем интервьюеру потенциальные проблемы с кодом и наш ход мысли.
- Когда находим проблему — править код не нужно, достаточно подсветить её и предложить решение.
Обычно достаточно подсветить 3–4 минорные проблемы и перейти к поиску мажорной.
Тайминги этого этапа тоже 3-5 минут.
Мажорная проблема всегда подразумевает детальную беседу — нужно раскрыть причины, предложить рефакторинг (2–3 способа).
Это 10-15 минут.
- Общие тайминги ревью кода обычно от 15 минут до получаса, нужно контролировать время, чтобы хватило на поиск и обсуждение мажорной проблемы.
- Важно. Критиковать авторов и код не нужно, важнее предложить хороший фикс.
- Основные проблемы обычно лежат на стыке приложения и БД или сторонних интеграций.
#Java #ревью #собеседования
🔥2
Часть 2. Разбор слегка адаптированной задачи на ревью из одного зеленого банка.
Мы видим сервис, который обрабатывает пользователей. 🔍 Он умеет создавать список пользователей, а также выполнять некую логику после того, как пользователей создал.
Какие в коде есть проблемы? Начнём с минорных.
- Создание зависимостей через new, инжект через сеттеры (с объяснением, почему это плохо).
- Использование строкового типа для region.
- Нет аннотации Service.
Минорных пока достаточно, можно переходить к основным проблемам.
Мы видим сервис, который обрабатывает пользователей. 🔍 Он умеет создавать список пользователей, а также выполнять некую логику после того, как пользователей создал.
Какие в коде есть проблемы? Начнём с минорных.
- Создание зависимостей через new, инжект через сеттеры (с объяснением, почему это плохо).
- Использование строкового типа для region.
- Нет аннотации Service.
Минорных пока достаточно, можно переходить к основным проблемам.
🔥2