
Получите клиентов в любой нише!
Делегируйте запуск рекламы нам — бесплатно
Подробнее
42.9

BackendQuiz - задачи с собеседований по бэкенду
4.8
17
Задачки на алгоритмы, на понимание HTTP и сетевого стека вцелом, так же базы данных и хранилища. Подойдет как для начинающих так и для опытных. Языки и технологии: Java, PHP, Ruby, Javascript, SQL
Поделиться
В избранное
Канал временно
не принимает заявки
не принимает заявки
Выберите другой из рекомендаций или получите готовую корзину под ваш бюджет с помощью AI
Персональный AI-подбор
Последние посты канала
🤔 Что такое cherry-pick?
Это команда, которая позволяет перенести коммит из одной ветки в другую, не сливая всю историю. Она используется, когда нужно выбрать определённые изменения и применить их в другой ветке, например, для исправления ошибки без переноса всех новых функций.
@backendquiz
Это команда, которая позволяет перенести коммит из одной ветки в другую, не сливая всю историю. Она используется, когда нужно выбрать определённые изменения и применить их в другой ветке, например, для исправления ошибки без переноса всех новых функций.
@backendquiz
114
18:51
20.03.2025
🤔 Что такое чистый код?
Это термин в программировании, который описывает код, легко читаемый, понятный и поддерживаемый. Принципы чистого кода помогают разработчикам создавать качественные и адаптируемые программы. Вот основные характеристики и принципы чистого кода:
🚩Основные характеристики чистого кода
🟠Читаемость
Код должен быть понятным и легким для чтения другими разработчиками. Имена переменных, функций и классов должны быть осмысленными и описательными.
🟠Простота
Код должен быть простым и ясным, избегая излишней сложности. Это делает его более понятным и легким в поддержке.
🟠Последовательность
Следование единому стилю кодирования и соглашениям по наименованию упрощает чтение и понимание кода.
🟠Минимум избыточности
Нужно избегать дублирования кода, что способствует его упрощению и уменьшению ошибок.
🟠Модульность
Код следует разделять на независимые модули или компоненты, которые можно разрабатывать, тестировать и поддерживать отдельно.
🟠Тестируемость
Код должен быть простым для тестирования. Хорошо написанный код обычно легко покрывается юнит-тестами.
🚩Принципы чистого кода
🟠Именование
Имена переменных, функций и классов должны быть осмысленными и отражать их назначение.
int age; // Ясно, что переменная хранит возраст
🟠Функции
Функции должны быть короткими и выполнять одну задачу.
void calculateAndPrintTotal() {
int total = calculateTotal();
printTotal(total);
}
🟠Комментарии
Комментарии должны объяснять, почему был написан определенный код, а не что он делает. Хорошо написанный код должен быть самодокументируемым.
// Рассчитываем общую цену с учетом налога
int totalPrice = calculateTotalPrice();
🟠Форматирование
Единый стиль форматирования делает код более читабельным. Используйте отступы, пробелы и пустые строки для улучшения структуры кода.
if (isValid) {
process();
} else {
handleError();
}
🟠Обработка ошибок
Обработка ошибок должна быть понятной и не загромождать основной код.
try {
processFile(file);
} catch (IOException e) {
logError(e);
}
🟠Магические числа и строки
Следует избегать использования магических чисел и строк. Вместо этого используйте константы с осмысленными именами.
static final int MAX_USERS = 100;
Ставь 👍 и 📚
@backendquiz
Это термин в программировании, который описывает код, легко читаемый, понятный и поддерживаемый. Принципы чистого кода помогают разработчикам создавать качественные и адаптируемые программы. Вот основные характеристики и принципы чистого кода:
🚩Основные характеристики чистого кода
🟠Читаемость
Код должен быть понятным и легким для чтения другими разработчиками. Имена переменных, функций и классов должны быть осмысленными и описательными.
🟠Простота
Код должен быть простым и ясным, избегая излишней сложности. Это делает его более понятным и легким в поддержке.
🟠Последовательность
Следование единому стилю кодирования и соглашениям по наименованию упрощает чтение и понимание кода.
🟠Минимум избыточности
Нужно избегать дублирования кода, что способствует его упрощению и уменьшению ошибок.
🟠Модульность
Код следует разделять на независимые модули или компоненты, которые можно разрабатывать, тестировать и поддерживать отдельно.
🟠Тестируемость
Код должен быть простым для тестирования. Хорошо написанный код обычно легко покрывается юнит-тестами.
🚩Принципы чистого кода
🟠Именование
Имена переменных, функций и классов должны быть осмысленными и отражать их назначение.
int age; // Ясно, что переменная хранит возраст
🟠Функции
Функции должны быть короткими и выполнять одну задачу.
void calculateAndPrintTotal() {
int total = calculateTotal();
printTotal(total);
}
🟠Комментарии
Комментарии должны объяснять, почему был написан определенный код, а не что он делает. Хорошо написанный код должен быть самодокументируемым.
// Рассчитываем общую цену с учетом налога
int totalPrice = calculateTotalPrice();
🟠Форматирование
Единый стиль форматирования делает код более читабельным. Используйте отступы, пробелы и пустые строки для улучшения структуры кода.
if (isValid) {
process();
} else {
handleError();
}
🟠Обработка ошибок
Обработка ошибок должна быть понятной и не загромождать основной код.
try {
processFile(file);
} catch (IOException e) {
logError(e);
}
🟠Магические числа и строки
Следует избегать использования магических чисел и строк. Вместо этого используйте константы с осмысленными именами.
static final int MAX_USERS = 100;
Ставь 👍 и 📚
@backendquiz
117
12:53
20.03.2025
imageИзображение не доступно для предпросмотра
На easyoffer 2.0 появится новый раздел:
Задачи с собеседований
🟠 Задачи на алгоритмические, live-coding и системный дизайн из реальных собеседований
🟠 Вероятность встретить ту или иную задачу
🟠 Возможность подготовиться к задачам конкретной компании
Существует множество сайтов, где можно тренироваться решать задачи, но у всех них есть одна проблема – задачи выдуманы людьми. На easyoffer 2.0 вы сможете готовиться к секциям live-coding и системного дизайна на основе задач из реальных собеседований. Вы сможете найти самые распространенные задачи и сосредоточиться на их решении.
Осталось совсем немного дней до начала краудфандинговой кампании, чтобы ускорить разработку easyoffer 2.0. Все, кто поддержит проект на этом этапе, смогут получить год доступа к сайту по цене месячной подписки, а те, кто поддержит проект раньше других, получат даже более выгодные условия и существенный бонус. Следите за стартом 👉 в этом телеграм-канале (https://t.me/+b2fZN17A9OQ3ZmJi).
@backendquiz
Задачи с собеседований
🟠 Задачи на алгоритмические, live-coding и системный дизайн из реальных собеседований
🟠 Вероятность встретить ту или иную задачу
🟠 Возможность подготовиться к задачам конкретной компании
Существует множество сайтов, где можно тренироваться решать задачи, но у всех них есть одна проблема – задачи выдуманы людьми. На easyoffer 2.0 вы сможете готовиться к секциям live-coding и системного дизайна на основе задач из реальных собеседований. Вы сможете найти самые распространенные задачи и сосредоточиться на их решении.
Осталось совсем немного дней до начала краудфандинговой кампании, чтобы ускорить разработку easyoffer 2.0. Все, кто поддержит проект на этом этапе, смогут получить год доступа к сайту по цене месячной подписки, а те, кто поддержит проект раньше других, получат даже более выгодные условия и существенный бонус. Следите за стартом 👉 в этом телеграм-канале (https://t.me/+b2fZN17A9OQ3ZmJi).
@backendquiz
109
12:52
20.03.2025
🤔 Как обезопасить куки от кражи и подделки?
- HttpOnly – не позволяет доступ к куки через JavaScript (защита от XSS).
- Secure – куки передаются только по HTTPS.
- SameSite – защита от CSRF (Strict, Lax).
- Подпись (HMAC) – контроль целостности данных.
- Короткий TTL – сокращение времени жизни куки.
- Сессии на сервере – снижение рисков утечки данных на клиенте.
@backendquiz
- HttpOnly – не позволяет доступ к куки через JavaScript (защита от XSS).
- Secure – куки передаются только по HTTPS.
- SameSite – защита от CSRF (Strict, Lax).
- Подпись (HMAC) – контроль целостности данных.
- Короткий TTL – сокращение времени жизни куки.
- Сессии на сервере – снижение рисков утечки данных на клиенте.
@backendquiz
122
18:55
19.03.2025
🤔 Что такое SQL?
Это язык запросов, который используется для управления и работы с данными в реляционных базах данных. SQL позволяет выполнять различные операции с данными, такие как создание, изменение, удаление и извлечение информации.
🚩 Основные возможности SQL
🟠 Создание и изменение структуры базы данных
DDL (Язык определения данных): Команды, которые дают возможность создавать и изменять структуру базы данных, включая таблицы, индексы, представления и другие объекты базы данных.
CREATE: Создание новых таблиц, баз данных и индексов.
ALTER: Изменение структуры существующих объектов базы данных.
DROP: Удаление объектов из базы данных.
🟠 Управление данными
DML (Язык манипуляции данными): Команды, используемые для работы с данными в базе данных.
SELECT: Извлечение данных из таблиц.
INSERT: Вставка новых данных в таблицы.
UPDATE: Обновление существующих данных в таблицах.
DELETE: Удаление данных из таблиц.
🟠 Управление доступом к данным
DCL (Язык управления данными): Команды, которые управляют доступом пользователей к данным в базе данных.
GRANT: Предоставление прав пользователям.
REVOKE: Отзыв ранее предоставленных прав.
🟠 Транзакции
TCL (Язык управления транзакциями): Команды, которые управляют транзакциями в базе данных.
COMMIT: Сохранение всех изменений, выполненных в транзакции.
ROLLBACK: Отмена всех изменений, выполненных в транзакции.
🚩 Пример использования SQL
Создание таблицы
CREATE TABLE Employees (
id INT PRIMARY KEY,
name VARCHAR(100),
department_id INT,
salary DECIMAL(10, 2)
);
Вставка данных в таблицу
INSERT INTO Employees (id, name, department_id, salary)
VALUES (1, 'John Doe', 10, 50000.00);
Извлечение данных из таблицы
SELECT name, salary
FROM Employees
WHERE department_id = 10;
Обновление данных в таблице
UPDATE Employees
SET salary = 55000.00
WHERE id = 1;
Удаление данных из таблицы
DELETE FROM Employees
WHERE id = 1;
🚩 Зачем нужен SQL
🟠 Управление данными
SQL предоставляет мощные инструменты для извлечения, вставки, обновления и удаления данных, что позволяет эффективно управлять большими объемами информации.
🟠 Определение структуры данных
С помощью SQL можно создавать и изменять структуру базы данных, что обеспечивает гибкость в управлении схемой данных.
🟠 Управление доступом
SQL позволяет контролировать доступ к данным, гарантируя безопасность и конфиденциальность информации.
🟠 Обеспечение целостности данных
SQL поддерживает механизмы транзакций и ограничения, которые помогают сохранять целостность данных и предотвращают их неправильное изменение.
Ставь 👍 и 📚
@backendquiz
Это язык запросов, который используется для управления и работы с данными в реляционных базах данных. SQL позволяет выполнять различные операции с данными, такие как создание, изменение, удаление и извлечение информации.
🚩 Основные возможности SQL
🟠 Создание и изменение структуры базы данных
DDL (Язык определения данных): Команды, которые дают возможность создавать и изменять структуру базы данных, включая таблицы, индексы, представления и другие объекты базы данных.
CREATE: Создание новых таблиц, баз данных и индексов.
ALTER: Изменение структуры существующих объектов базы данных.
DROP: Удаление объектов из базы данных.
🟠 Управление данными
DML (Язык манипуляции данными): Команды, используемые для работы с данными в базе данных.
SELECT: Извлечение данных из таблиц.
INSERT: Вставка новых данных в таблицы.
UPDATE: Обновление существующих данных в таблицах.
DELETE: Удаление данных из таблиц.
🟠 Управление доступом к данным
DCL (Язык управления данными): Команды, которые управляют доступом пользователей к данным в базе данных.
GRANT: Предоставление прав пользователям.
REVOKE: Отзыв ранее предоставленных прав.
🟠 Транзакции
TCL (Язык управления транзакциями): Команды, которые управляют транзакциями в базе данных.
COMMIT: Сохранение всех изменений, выполненных в транзакции.
ROLLBACK: Отмена всех изменений, выполненных в транзакции.
🚩 Пример использования SQL
Создание таблицы
CREATE TABLE Employees (
id INT PRIMARY KEY,
name VARCHAR(100),
department_id INT,
salary DECIMAL(10, 2)
);
Вставка данных в таблицу
INSERT INTO Employees (id, name, department_id, salary)
VALUES (1, 'John Doe', 10, 50000.00);
Извлечение данных из таблицы
SELECT name, salary
FROM Employees
WHERE department_id = 10;
Обновление данных в таблице
UPDATE Employees
SET salary = 55000.00
WHERE id = 1;
Удаление данных из таблицы
DELETE FROM Employees
WHERE id = 1;
🚩 Зачем нужен SQL
🟠 Управление данными
SQL предоставляет мощные инструменты для извлечения, вставки, обновления и удаления данных, что позволяет эффективно управлять большими объемами информации.
🟠 Определение структуры данных
С помощью SQL можно создавать и изменять структуру базы данных, что обеспечивает гибкость в управлении схемой данных.
🟠 Управление доступом
SQL позволяет контролировать доступ к данным, гарантируя безопасность и конфиденциальность информации.
🟠 Обеспечение целостности данных
SQL поддерживает механизмы транзакций и ограничения, которые помогают сохранять целостность данных и предотвращают их неправильное изменение.
Ставь 👍 и 📚
@backendquiz
120
12:56
19.03.2025
🤔 Что такое интерполяция?
Это метод добавления значений переменных в строку.
- В Python, JS, Swift – f"Hello, {name}!", ${variable}.
- В CSS (SASS, LESS) – использование переменных в стилях.
- В математике – определение промежуточных значений между известными точками (линейная, полиномиальная интерполяция).
@backendquiz
Это метод добавления значений переменных в строку.
- В Python, JS, Swift – f"Hello, {name}!", ${variable}.
- В CSS (SASS, LESS) – использование переменных в стилях.
- В математике – определение промежуточных значений между известными точками (линейная, полиномиальная интерполяция).
@backendquiz
135
18:59
18.03.2025
🤔 Что ты знаешь о принципах программирования KISS?
Это принцип разработки, который требует, чтобы системы и решения были как можно более простыми и избегали ненужной сложности. Он особенно важен в программировании и инженерии, так как способствует созданию более понятных, поддерживаемых и надежных систем.
🚩Аспекты
🟠Простота
Системы должны быть легкими для понимания и использования. Чем проще система, тем меньше вероятность ошибок. Простота достигается за счет сокращения количества компонентов и взаимодействий между ними.
🟠Ясность
Код должен быть понятным и легко читаемым. Это облегчает его поддержку и модификацию. Использование ясных имен для переменных, функций и классов, а также четкая структура кода помогают достичь ясности.
🟠Избегание избыточности
Следует избегать компонентов или функциональности, которые не приносят реальной ценности. Если элемент системы не полезен, его нужно убрать. Это касается как аппаратного, так и программного обеспечения.
🟠Модульность
Системы должны быть разделены на небольшие, независимые модули, каждый из которых выполняет свою конкретную задачу. Модульность помогает в тестировании, повторном использовании и поддержке кода.
🚩Примеры применения
🟠Программирование
При создании функций или методов стоит избегать слишком сложных алгоритмов, если можно использовать более простые решения. Лучше использовать стандартные библиотеки и инструменты, чем писать собственный код с нуля, когда это возможно.
🟠Проектирование систем
В системной архитектуре нужно избегать излишнего усложнения связей между компонентами. Лучше применять простые и проверенные шаблоны проектирования, чем сложные и экспериментальные решения.
🟠Документация
Документация должна быть простой и понятной, избегая слишком технических или сложных объяснений. Хорошо структурированная и лаконичная документация помогает пользователям и разработчикам быстрее разобраться в системе.
🚩Плюсы
➕Легкость понимания и поддержки
Простые системы легче понять и поддерживать, что снижает затраты на обучение и поддержку.
➕Снижение количества ошибок
Чем проще система, тем меньше вероятность ошибок и проблем при её использовании.
➕Повышение производительности
Простые решения часто требуют меньше ресурсов и могут работать быстрее и эффективнее.
➕Улучшение масштабируемости
Простые и модульные системы легче масштабировать и расширять по мере необходимости.
Ставь 👍 и 📚
@backendquiz
Это принцип разработки, который требует, чтобы системы и решения были как можно более простыми и избегали ненужной сложности. Он особенно важен в программировании и инженерии, так как способствует созданию более понятных, поддерживаемых и надежных систем.
🚩Аспекты
🟠Простота
Системы должны быть легкими для понимания и использования. Чем проще система, тем меньше вероятность ошибок. Простота достигается за счет сокращения количества компонентов и взаимодействий между ними.
🟠Ясность
Код должен быть понятным и легко читаемым. Это облегчает его поддержку и модификацию. Использование ясных имен для переменных, функций и классов, а также четкая структура кода помогают достичь ясности.
🟠Избегание избыточности
Следует избегать компонентов или функциональности, которые не приносят реальной ценности. Если элемент системы не полезен, его нужно убрать. Это касается как аппаратного, так и программного обеспечения.
🟠Модульность
Системы должны быть разделены на небольшие, независимые модули, каждый из которых выполняет свою конкретную задачу. Модульность помогает в тестировании, повторном использовании и поддержке кода.
🚩Примеры применения
🟠Программирование
При создании функций или методов стоит избегать слишком сложных алгоритмов, если можно использовать более простые решения. Лучше использовать стандартные библиотеки и инструменты, чем писать собственный код с нуля, когда это возможно.
🟠Проектирование систем
В системной архитектуре нужно избегать излишнего усложнения связей между компонентами. Лучше применять простые и проверенные шаблоны проектирования, чем сложные и экспериментальные решения.
🟠Документация
Документация должна быть простой и понятной, избегая слишком технических или сложных объяснений. Хорошо структурированная и лаконичная документация помогает пользователям и разработчикам быстрее разобраться в системе.
🚩Плюсы
➕Легкость понимания и поддержки
Простые системы легче понять и поддерживать, что снижает затраты на обучение и поддержку.
➕Снижение количества ошибок
Чем проще система, тем меньше вероятность ошибок и проблем при её использовании.
➕Повышение производительности
Простые решения часто требуют меньше ресурсов и могут работать быстрее и эффективнее.
➕Улучшение масштабируемости
Простые и модульные системы легче масштабировать и расширять по мере необходимости.
Ставь 👍 и 📚
@backendquiz
141
13:00
18.03.2025
🤔 Что представляет собой git-flow?
Это подход к работе с Git, который включает ветки для различных этапов разработки:
- master – для стабильных релизов.
- develop – для текущих разработок.
- feature – ветки, предназначенные для новых функций.
- release – для подготовки к релизу.
- hotfix – для исправления критических ошибок.
Данная модель используется в командах для удобного управления версиями и релизами.
@backendquiz
Это подход к работе с Git, который включает ветки для различных этапов разработки:
- master – для стабильных релизов.
- develop – для текущих разработок.
- feature – ветки, предназначенные для новых функций.
- release – для подготовки к релизу.
- hotfix – для исправления критических ошибок.
Данная модель используется в командах для удобного управления версиями и релизами.
@backendquiz
157
19:03
17.03.2025
imageИзображение не доступно для предпросмотра
📺 Уникальная коллекция собеседований в IT
Более 456 реальных собеседований для программистов, тестировщиков, аналитиков и других IT специалистов.
Есть собеседования от крупных компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и других.
🎯 Переходи по ссылке и присоединяйся к этой коллекции, чтобы увеличить свои шансы на успешное трудоустройство!
@backendquiz
Более 456 реальных собеседований для программистов, тестировщиков, аналитиков и других IT специалистов.
Есть собеседования от крупных компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и других.
🎯 Переходи по ссылке и присоединяйся к этой коллекции, чтобы увеличить свои шансы на успешное трудоустройство!
@backendquiz
167
13:05
17.03.2025
🤔 Что такое join'ы?
Это операции в SQL, которые позволяют объединять строки из двух и более таблиц на основе логических связей между ними. Существуют различные типы JOIN'ов, каждый из которых подходит для определенных сценариев объединения данных.
🚩Основные типы JOIN'ов
🟠INNER JOIN
Возвращает только те строки, которые имеют совпадающие значения в обеих таблицах.
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
🟠LEFT JOIN (LEFT OUTER JOIN)
Возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если совпадений нет, то в столбцах правой таблицы будут NULL.
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
🟠RIGHT JOIN (RIGHT OUTER JOIN)
Возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если совпадений нет, то в столбцах левой таблицы будут NULL.
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;
🟠FULL JOIN (FULL OUTER JOIN)
Возвращает все строки, когда есть совпадения в одной из таблиц. Если совпадений нет, то в соответствующих столбцах будут NULL.
SELECT employees.name, departments.department_name
FROM employees
FULL JOIN departments ON employees.department_id = departments.id;
🟠CROSS JOIN
Возвращает декартово произведение строк из двух таблиц. Каждая строка из первой таблицы соединяется со всеми строками из второй таблицы.
SELECT employees.name, departments.department_name
FROM employees
CROSS JOIN departments;
🟠SELF JOIN
Использует JOIN для объединения таблицы с самой собой. Это полезно, когда нужно сравнить строки внутри одной таблицы.
SELECT e1.name AS Employee1, e2.name AS Employee2
FROM employees e1
INNER JOIN employees e2 ON e1.manager_id = e2.id;
Ставь 👍 и 📚
@backendquiz
Это операции в SQL, которые позволяют объединять строки из двух и более таблиц на основе логических связей между ними. Существуют различные типы JOIN'ов, каждый из которых подходит для определенных сценариев объединения данных.
🚩Основные типы JOIN'ов
🟠INNER JOIN
Возвращает только те строки, которые имеют совпадающие значения в обеих таблицах.
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
🟠LEFT JOIN (LEFT OUTER JOIN)
Возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если совпадений нет, то в столбцах правой таблицы будут NULL.
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
🟠RIGHT JOIN (RIGHT OUTER JOIN)
Возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если совпадений нет, то в столбцах левой таблицы будут NULL.
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;
🟠FULL JOIN (FULL OUTER JOIN)
Возвращает все строки, когда есть совпадения в одной из таблиц. Если совпадений нет, то в соответствующих столбцах будут NULL.
SELECT employees.name, departments.department_name
FROM employees
FULL JOIN departments ON employees.department_id = departments.id;
🟠CROSS JOIN
Возвращает декартово произведение строк из двух таблиц. Каждая строка из первой таблицы соединяется со всеми строками из второй таблицы.
SELECT employees.name, departments.department_name
FROM employees
CROSS JOIN departments;
🟠SELF JOIN
Использует JOIN для объединения таблицы с самой собой. Это полезно, когда нужно сравнить строки внутри одной таблицы.
SELECT e1.name AS Employee1, e2.name AS Employee2
FROM employees e1
INNER JOIN employees e2 ON e1.manager_id = e2.id;
Ставь 👍 и 📚
@backendquiz
137
13:04
17.03.2025
close
С этим каналом часто покупают
Новинки в тематике
Лучшие в тематике
Выбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий