Forwarded from Реальные задачи с собеседований | Java
Ozon #sql
#ozon
Прислать задачу | Подписаться
-- // user
-- id | firstname | lastname | birth
-- 1 | Ivan | Petrov | 1996-05-01
-- 2 | Anna | Petrova | 1999-06-01
-- 3 | Anna | Petrova | 1990-10-02
-- // purchase
-- sku | price | user_id | date
-- 1 | 5500 | 1 | 2021-02-15
-- 1 | 5700 | 1 | 2021-01-15
-- 2 | 4000 | 1 | 2021-02-14
-- 3 | 8000 | 2 | 2021-03-01
-- 4 | 400 | 2 | 2021-03-02
-- // ban_list
-- user_id | date_from
-- 1 | 2021-03-08
-- Нужно вывести:
-- 1. Вывести уникальные комбинации пользователя и id товара
-- для всех покупок, совершенных пользователями до того,
-- как их забанили.
-- Отсортировать сначала по имени пользователя, потом по SKU
-- TODO
-- 2. Найти пользователей, которые совершили покупок
-- на сумму больше 5000р. Вывести их имена в формате:
-- id пользователя | имя | фамилия | сумма покупок
-- TODO
#ozon
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Forwarded from Реальные задачи с собеседований | Java
CallbackSchedulerTest1.java
1.1 KB
Яндекс Маркет
Даны тест и интерфейс, нужно заимплементировать шедулер, чтобы он был потокобезопасный. Экзекуторы для этого использовать нельзя.
Сразу спойлер -интервьюер видел идеальное решение через PriorityQueue, но ConcurrentHashMap вроде тоже зашел.
#yandex
Прислать задачу | Подписаться
Даны тест и интерфейс, нужно заимплементировать шедулер, чтобы он был потокобезопасный. Экзекуторы для этого использовать нельзя.
Сразу спойлер -
#yandex
Прислать задачу | Подписаться
Forwarded from RR | Бегущий по легаси
Появились разговоры, что хедхантер будет бороться с накруткой опыта через Госуслуги и подтверждение по ЭТК, а компании все чаще требуют подтвердить опыт перед собеседованием или наймом. Поэтому провел опрос у себя в канале среди работающих Java-разработчиков.
Получилось:
— ~82% работают по ТК
— ~18% - ГПХ / ИП / самозанятость / неофициально
1. У кого ТК, бояться нечего, им даже станет легче, если хх будет отсеивать кандидатов с неподтвержденным опытом.
2. Тем, кто оформлен по гпх, ип, самозанятость, неофициально, будет сложнее доказать свой опыт. Рекомендую заранее сохранять договоры, акты и т.д.
3. Кто вкатывается🫡
История "нарисую 3 года и прокатит" постепенно умирает.
Раньше "умеешь — берём"
Сейчас "докажи, что умеешь и где работал"
Получилось:
— ~82% работают по ТК
— ~18% - ГПХ / ИП / самозанятость / неофициально
1. У кого ТК, бояться нечего, им даже станет легче, если хх будет отсеивать кандидатов с неподтвержденным опытом.
2. Тем, кто оформлен по гпх, ип, самозанятость, неофициально, будет сложнее доказать свой опыт. Рекомендую заранее сохранять договоры, акты и т.д.
3. Кто вкатывается🫡
История "нарисую 3 года и прокатит" постепенно умирает.
Раньше "умеешь — берём"
Сейчас "докажи, что умеешь и где работал"
Forwarded from Реальные задачи с собеседований | Java
С 2024 года веду этот канал.
И всё это время… ни разу нормально не показал свой личный блог. Хотя именно с него всё начиналось.
Подписывайтесь, ставьте лайки, жмите на колокольчик - https://t.me/+MQKYKZ5jr4owNzU6
И всё это время… ни разу нормально не показал свой личный блог. Хотя именно с него всё начиналось.
Подписывайтесь, ставьте лайки, жмите на колокольчик - https://t.me/+MQKYKZ5jr4owNzU6
Forwarded from Реальные задачи с собеседований | Java
ВТБ (2025)
#vtb
Прислать задачу | Подписаться
/**
* Что будет выведено в консоль?
*/
public static void main(String[] args) {
Map<Person, String> map = new HashMap<>();
Person person1 = new Person("Alice");
Person person2 = new Person("Alice");
map.put(person1, "Person 1");
System.out.println(map.get(person2));
}
#vtb
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
ВТБ (2025)
#vtb
Прислать задачу | Подписаться
/**
* Необходимо получить список пользователей,
* которые состоят в группе, начинающейся на "Х"
*/
class SomeConsumer {
public List<User> consume(Stream<User> usersStream) {
//TODO
return usersStream.
}
}
@Data
class User {
private String username;
private Integer age;
private List<Group> groups;
}
@Data
class Group {
private String name;
private String description;
}
#vtb
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
ВТБ (2025)
#vtb
Прислать задачу | Подписаться
/**
* Оцени данный код на предмет работоспособности и потенциальных проблем
*/
@Service
@Transactional
public class UserService {
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void createUser(User user) {
userRepository.save(user);
sendWelcomeEmail(user);
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
private void sendWelcomeEmail(User user) {
sendwelcome(user.getId());
}
}
#vtb
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Сбер стахование
Что будет выведено?😏
#sber
Прислать задачу | Подписаться
Что будет выведено?😏
public class Main {
public static void main(String[] args) throws Exception {
throwException();
}
static void throwException() throws Exception {
try {
throw new IOException();
} catch (IOException ex) {
System.err.println("IOException");
throw new IOException();
} catch (Exception ex) {
System.err.println("Exception");
throw new IOException();
} finally {
System.err.println("Finally");
throw new Exception();
}
}
}
#sber
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Сбер стахование
#sber
Прислать задачу | Подписаться
//что будет выведено и почему?
public class Main {
public static void main(String[] args) throws Exception {
First first = new Second();
first.useTest();
Second second = new Second();
second.useTest();
second.callTest();
}
}
class First {
protected void test() {
System.out.println("First");
}
public void useTest() {
test();
}
}
class Second extends First {
@Override
protected void test() {
System.out.println("Second");
}
public void callTest() {
super.test();
}
}
#sber
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Сбер стахование
#sber
Прислать задачу | Подписаться
//что будет выведено и почему?
public class Main {
public static void main(String[] args) throws Exception {
A a = new A();
List<String> list = new ArrayList<>();
a.f(list);
}
}
class A {
void f(Iterable<String> l) {
System.out.println("A");
}
void f(Collection<String> l) {
System.out.println("B");
}
void f(ArrayList<String> l) {
System.out.println("C");
}
void f(LinkedList<String> l) {
System.out.println("D");
}
}
#sber
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
какой-то банк (мб альфа или райф) #unknown
Прислать задачу | Подписаться
Есть таблица Person(name, age).
1. Написать запрос, который выведет имена и максимальный возраст для каждого имени
2. SQL вывести дубликаты по name+age
3.Реализовать метод List<Person> getTopAgeForName(List<Person> persons), который повторяет логику из первой задачи
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
[JUN] Какая у вас зарплата?
Anonymous Poll
55%
Посмотреть результат / Я не джун / не в айти
10%
0 (в поиске, не работаю)
2%
0-50
5%
51-100
5%
101-150
5%
151-200
4%
201-250
7%
больше 250
7%
.
Forwarded from Реальные задачи с собеседований | Java
[MID] Какая у вас зарплата?
Anonymous Poll
37%
Посмотреть результат / Я не миддл / не в айти
8%
0 (в поиске, не работаю)
2%
меньше 100
3%
101-150
8%
151-200
12%
201-250
12%
251-300
7%
301-350
6%
больше 350
6%
.
Forwarded from Реальные задачи с собеседований | Java
Сбер страхование
#sber
Прислать задачу | Подписаться
//что не так в таком api?
//что если мы захотим расширить профиль, добавляя еще какой-то тип документа, как будем это делать?
GET https://hr-test.ru/api/user-profile/8001
Auth Type: Bearer Token
Response
{
"error": null,
"data": {
"id": 8001,
"FIO": "John Doe",
"seriesNumber": 4352 479893
}
}
#sber
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Реальные задачи с собеседований | Java
Сбер страхование
Какая сложность у этого цикла?
#sber
Прислать задачу | Подписаться
Какая сложность у этого цикла?
for (int i = 0; i < n; ++i) {
for (int j = 1; j < n; j *= 2) {
//something
}
}
#sber
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Яндекс
Написать без спринга и с юнитами(за час)
#yandex
Прислать задачу | Подписаться
Написать без спринга и с юнитами
/*
Вы — backend-разработчик в финтех компании.
Компания предоставляет платежные услуги и должна контролировать лимиты пользователей.
Product owner просит создать систему проверки лимитов перед проведением платежей.
## Определения
Платеж:
- id пользователя
- сумма (в рублях с копейками)
- тип операции (только списание)
- время операции
Лимиты пользователя:
- суточный лимит по сумме (за 24 часа)
- максимальный размер одной операции
История операций:
- список совершенных платежей пользователя
## Важно
Настройки лимитов пользователей и история платежей предоставляются другими компонентами системы.
Вам необходимо спроектировать контракты для получения этих данных.
Реализацию этих компонентов делать не нужно.
## Задача
Написать систему проверки лимитов, которая:
- на вход получает платеж
- проверяет лимиты
- возвращает результат проверки: можно ли провести операцию
- если нельзя, то указывает причину (какой именно лимит будет превышен)
Проведение платежа не входит в вашу задачу - другая команда займется обработкой платежей после проверки.
Ваша задача - только проверка возможности проведения платежа.
## Ограничения
В рамках данной задачи считаем, что все платежи одного пользователя происходят строго последовательно.
Во время проверки лимита не может быть проведен платеж того же пользователя.
*/
class PaymentsChecker {
public ??? checkPayment(??? payment) {
Написать систему проверки лимитов, которая:
- на вход получает платеж
- проверяет лимиты
- возвращает результат проверки: можно ли провести операцию
- если нельзя, то указывает причину (какой именно лимит будет превышен)
// TODO implement
}
}
interface PaymentsHistoryService {
// TODO any functions
}
interface UserLimitsService {
// TODO any functions
}
#yandex
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Uzum
Прислать задачу | Подписаться
Описать как такое будет работать от этапа что код написан до его выполнения на процессоре. Описать как можно данный код выполнить.
Что такое интерпретаторы? Какие бывают? Что такое JIT и GraalVM?
public class MainClass {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Прислать задачу | Подписаться
Forwarded from Реальные задачи с собеседований | Java
Тбанк (стажировка)
#tbank
Прислать задачу | Подписаться
/*
* Дана строка s, которая содержит только цифры от 0 до 9,
* в которой не все элементы равны 0.
* Нужно переставить в ней цифры таким образом, чтобы число,
* которое представляет данная строка, было минимально возможным,
* а также чтобы в этой строке не было ведущих нулей.
*
* Число содержит ведущие нули, если число не равно нулю,
* но при этом в начале числа стоит цифра 0.
* Так, например, числа 01, 0303 содержат ведущие нули,
* тогда как 0, 30000 нет.
*
* Входные данные:
* Строка s, где 1 <= |s| <= 9
* Гарантируется, что в строке есть элемент, отличный от 0.
*
* Выходные данные:
* Строка — минимально возможное число без ведущих нулей.
*
* Примеры:
* "682902" -> "202689"
* "01" -> "10"
*/
public static String solve(String s) {
// TODO
}
#tbank
Прислать задачу | Подписаться