Python Backend | YeaHub
1.44K subscribers
187 photos
49 videos
6 files
296 links
Теория, подготовка к интервью и курсы для Python разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
🖥 Middle Python Backend-разработчик в компанию Yappy.

Техническое собеседование, зима 2025. 300к+. Проект: вертикальные видео. Опыт в резюме: 3.3 года. В начале спрашивали про предыдущий опыт.

Вопросы:
- Что такое команда git cherry-pick?
- Как создать генератор с помощью yield?
- Какие дандер-методы нужно реализовать для своего контекстного менеджера?
- Как создать асинхронный контекстный менеджер?

Все вопросы можно посмотреть на нашей платформе

#собес
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2🤝2
#статьи
📞 Фундаментальные шаблоны проектирования на Python

Разбираются классические паттерны на языке программирования python:

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥2
#полезное
📞 Совет по Python:

Для асинхронного чтения файлов используй aiofiles вместе с асинхронными генераторами — это позволит не блокировать event loop при работе с большими файлами.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #RabbitMQ
🤔 Что такое обмен сообщениями?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
👋 Чувак собрал простого голосового ассистента на 70 строках кода на Python.

В проекте используются:

🔵 livekit — голосовой агент
🔵 AssemblyAI — для преобразования речи в текст
🔵 OpenAI — «мозг» агента, а также генерация аудио из текста

Что особенно классно —
он использовал turn detection от AssemblyAI, и это работает действительно круто

Turn detection сообщает ассистенту, когда собеседник закончил говорить, и пора отвечать.

Раньше для этого использовали паузы и тишину, но такой подход не всегда корректен (представьте, что человек делает паузу, диктуя номер карты). Новая версия turn detection гораздо надёжнее.

Запусти код и поговори с ассистентом. Всё ощущается гораздо естественнее, чем раньше.

Вот репозиторий: https://github.com/svpino/voice-assistant

Инструкции по запуску смотри в файле README.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
#Собес #RabbitMQ
🤔 Как работает RabbitMQ?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2😁2
#Собес #RabbitMQ
🤔 Каковы недостатки RabbitMQ?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 669. Trim a Binary Search Tree

Дано корневое дерево двоичного поиска и нижняя и верхняя границы как low и high. Обрежьте дерево так, чтобы все его элементы лежали в диапазоне [low, high]. Обрезка дерева не должна изменять относительную структуру элементов, которые останутся в дереве (то есть любой потомок узла должен оставаться потомком). Можно доказать, что существует единственный ответ.

Верните корень обрезанного дерева двоичного поиска. Обратите внимание, что корень может измениться в зависимости от заданных границ.

Пример:
Input: root = [1,0,2], low = 1, high = 2
Output: [1,null,2]


👨‍💻 Алгоритм:

1⃣Если node.val > high, то обрезанное двоичное дерево должно находиться слева от узла.

2⃣Если node.val < low, то обрезанное двоичное дерево должно находиться справа от узла.

3⃣В противном случае обрезаем обе стороны дерева.

😎 Решение:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right

class Solution:
def trimBST(self, root: TreeNode, low: int, high: int) -> TreeNode:
if not root:
return None
if root.val > high:
return self.trimBST(root.left, low, high)
if root.val < low:
return self.trimBST(root.right, low, high)
root.left = self.trimBST(root.left, low, high)
root.right = self.trimBST(root.right, low, high)
return root


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM