24940
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Базы данных: t.me/sqlhub
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot -
📕Ит-книги: /channel/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
🧩 Задача:
funcs = []
for i in range(3):
def f():
return i
funcs.append(f)
results = [func() for func in funcs]
print(results)
[0, 1, 2]
[2, 2, 2]
funcs = []
for i in range(3):
def f(i=i):
return i
funcs.append(f)
results = [func() for func in funcs]
print(results) # [0, 1, 2]
🍀 Большая шпаргалка по всем основам Python для подготовки к собеседованию
@python_job_interview
📦 Pydantic Extra Types — коллекция дополнительных типов данных для Pydantic, которые не вошли в основную библиотеку. Проект расширяет возможности валидации данных, предлагая специфические форматы и проверки.
Типы подключаются как опциональные зависимости, позволяя выбирать только нужные компоненты. Например, можно добавить поддержку pendulum для работы с временными зонами.
🤖 GitHub
@python_job_interview
🧠 Хитрая задача по Python — *ловушка с изменяемыми значениями по умолчанию*
Вопрос:
Что выведет следующий код?
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))
[1]
[2]
[3]
python
[1]
[1, 2]
[1, 2, 3]
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list
[1]
[2]
[3]
👾 GREMLLM — теперь у ваших багов есть сознание
GREMLLM — это необычный Python-класс, в котором все методы и свойства создаются динамически с помощью LLM. Вы описываете, *что за объект вы хотите*, и дальше GREMLLM сам решает, что должно происходить при вызове методов или обращении к полям.
📦 Установка:
pip install gremllm
from gremllm import Gremllm
counter = Gremllm('counter')
counter.value = 5
counter.increment()
print(counter.value) # → 6?
print(counter.to_roman_numerals()) # → VI?
🔥 Google DeepMind представили новую open-source библиотеку на Python для сборки асинхронных AI‑пайплайнов в реальном времени!
Новая библиотека позволяет собирать AI-процессы из компонентов — как LEGO для ИИ-агентов.
🔧 Особенности:
- Построение асинхронных, компонуемых пайплайнов
- Поддержка Gemini и Gemini Live API
- Основана на asyncio
- Обрабатывает мультимодальные данные: текст, изображения, аудио
- Внутри готовые агенты: real-time агент, исследователь, live-комментатор
💡 Подходит для:
- Разработки ИИ-агентов
- Генеративных моделей, работающих в реальном времени
- Быстрой сборки MVP с мультимодальными возможностями
Установка:
pip install genai-processors
📌 Сложная задача для собеседования на Python: «Асинхронный кэш с TTL и инвалидацией».
Условие:
Реализуйте потокобезопасный асинхронный кэш с временем жизни записей, поддержкой инвалидации по ключу и автоматическим удалением устаревших записей. Кэш должен:
1️⃣ Хранить значения не дольше указанного TTL (seconds)
2️⃣ Автоматически очищать устаревшие записи без блокировки основного потока
3️⃣ Поддерживать асинхронные операции get/set
4️⃣ Иметь механизм ручной инвалидации
5️⃣ Гарантировать потокобезопасность
6️⃣ Оптимизировать память
Ожидаемое решение:
import asyncio
import time
from collections import OrderedDict
from typing import Any, Optional
import threading
class AsyncTTLCache:
def __init__(self, maxsize: int = 1024, ttl: int = 60):
self._cache = OrderedDict()
self._maxsize = maxsize
self._ttl = ttl
self._lock = threading.Lock()
self._cleanup_task = asyncio.create_task(self._cleanup_expired())
async def get(self, key: str) -> Optional[Any]:
with self._lock:
if key not in self._cache:
return None
value, expiry = self._cache[key]
if time.time() > expiry:
del self._cache[key]
return None
# Move to end to mark as recently used
self._cache.move_to_end(key)
return value
async def set(self, key: str, value: Any) -> None:
with self._lock:
if key in self._cache:
self._cache.move_to_end(key)
self._cache[key] = (value, time.time() + self._ttl)
if len(self._cache) > self._maxsize:
self._cache.popitem(last=False)
async def invalidate(self, key: str) -> None:
with self._lock:
if key in self._cache:
del self._cache[key]
async def _cleanup_expired(self) -> None:
while True:
await asyncio.sleep(self._ttl)
with self._lock:
now = time.time()
expired_keys = [
k for k, (_, expiry) in self._cache.items()
if expiry <= now
]
for k in expired_keys:
del self._cache[k]
def __del__(self):
self._cleanup_task.cancel()
# Пример использования
async def main():
cache = AsyncTTLCache(ttl=2)
await cache.set("a", 1)
print(await cache.get("a")) # 1
await asyncio.sleep(3)
print(await cache.get("a")) # None
await cache.set("b", 2)
await cache.invalidate("b")
print(await cache.get("b")) # None
asyncio.run(main())
🎙️ pytest-recording — плагин для записи и воспроизведения HTTP-запросов в тестах. Полезный инструмент для Python-разработчиков, который помогает сделать тесты, зависящие от внешних API, более стабильными и быстрыми. Плагин использует VCR.py под капотом, позволяя записывать реальные HTTP-взаимодействия в YAML-кассеты и затем воспроизводить их локально.
Инструмент имеет удобный режим rewrite, который полностью перезаписывает кассеты, а не просто дополняет их. Также есть встроенная блокировка случайных сетевых запросов во время тестирования.
🤖 GitHub
@python_job_interview
🧠 Ускоряй Python циклы без NumPy — через встроенный `array.array`
Если ты используешь большие списки чисел в Python и работаешь с ними в цикле — знай: list медленный и неэффективный по памяти.
Есть способ ускорить операции в 2–5 раз без внешних библиотек — просто используй array точка array. Попробуй и напиши в комментах результат, на сколько ускорились твои функции.from array import array
data = array('f', [0.1] * 10_000_000) # вместо обычного list
# быстрая арифметика
for i in range(len(data)):
data[i] *= 2.5
@python_job_interview
🐍 Python-задача с подвохом: что напечатает код?
def extend_list(val, lst=[]):
lst.append(val)
return lst
list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a')
print("list1 =", list1)
print("list2 =", list2)
print("list3 =", list3)
list1 = [10], list2 = [123], list3 = ['a'] list1 = [10], list2 = [123], list3 = [10, 'a'] list1 = [10, 'a'], list2 = [123], list3 = [10, 'a'] list1 = [10, 'a'], list2 = [123], list3 = ['a']list1 = [10, 'a'] list2 = [123] list3 = [10, 'a']lst=[] создаётся один раз — при определении функции. extend_list(10), значение 10 добавляется в этот общий список. extend_list(123, []), передаём новый список, всё ок. extend_list('a'), снова используется общий список из первого вызова.
def extend_list(val, lst=None):
if lst is None:
lst = []
lst.append(val)
return lst
🖥 Хитрый способ изменить поведение цикла for — без изменения самого цикла
Можно ли сделать так, чтобы весь Python-код, использующий for x in ..., внезапно начал вести себя иначе — без изменения самого цикла?
Ответ: да, если переопределить поведение итератора. На экране показа — трюк, где обычный список «врет» в цикле и выдает неожиданные значения.
Трюк можно использовать и с dict, set и кастомными генераторами. Особенно удобно в юнит-тестах или визуализациях.
class FakeList(list):
def __iter__(self):
return iter(["test", "mock", "override"])
data = FakeList([1, 2, 3])
for x in data:
print(x) # выведет: test, mock, override
Python — это фундамент, на котором можно построить карьеру в аналитике данных.
Современные компании все чаще ищут специалистов, способных не просто писать код, но и извлекать из данных полезные для бизнеса инсайты. И если вы уже владеете Python, у вас есть серьезная фора перед другими кандидатами.
3 июля в 19:00 (мск) Анастасия Зеленова, team lead аналитики в Raiffeisen CIB, расскажет, кто такие аналитики и какие навыки и инструменты необходимы для работы, а также покажет повседневные задачи аналитика на реальных примерах.
Присоединяйтесь к бесплатному онлайн-вебинару: https://clc.to/erid_2W5zFHErDXE
Реклама. ООО "КАРПОВ КУРСЫ". ИНН 7811764627. erid: 2W5zFHErDXE
🖥 Как написать худший возможный Python-код
Иногда проще показать, как не надо, чем объяснять, как надо.
Вот список «правил», которые помогут вам гарантированно испортить любой Python-проект.
1. 🔒 Используйте непонятные имена переменных
Называйте переменные x, y, a, thing. Абстракция — залог путаницы.
def f(x, y, z=None):
a = x * 2
b = y + a if z else y - a
c = [i for i in range(a) if i % 2]
return sum(c) + b
result = [x if x > 0 else (y if y < 0 else z) for x in data if x or y and not z]
eval("d['" + key + "']")
value = "42"
value = int(value)
value = [value] * value
counter = 0
def increment():
global counter
counter += 1
if user.role == "xyz" and user.level > 42:
access_granted()
def foo():print("start")
if True:
print("yes")
else:
print("no")
def complex_logic(x):
return (lambda y: (lambda z: z**2)(y + 1))(x)
class HandlerFactory:
def get_handler(self):
class Handler:
def handle(self, x): return x
return Handler()
def legacy_feature():
print("This feature is deprecated")
return
# нигде не вызывается
def a(x): return x+1
# Просто запускай и смотри глазами
process_user(data)
🐍 Python-совет: используй `functools.lru_cache` для ускорения "дорогих" функций
Если у тебя есть функция, результат которой зависит только от входных данных, — кешируй её! Это может ускорить программы в 10–1000 раз, особенно при рекурсии или повторяющихся запросах.
🔧 Пример:
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n):
if n < 2:
return n
return fib(n - 1) + fib(n - 2)
print(fib(100))
lru_cache:maxsize ограничивает объём кэша (по принципу LRU — least recently used)fib(100) занимает минуты @lru_cache — это одна строка, которая превращает тяжёлую функцию в реактивную. Идеально для оптимизации без изменения логики.
Читать полностью…
⚡️ Прокачивайся через практику: лучшие ресурсы для пет-проектов
Хочешь расти как разработчик — пиши код, а не только читай!
Вот 4 крутых ресурса, где ты будешь учиться через реальные задачи:
App Ideas
Список проектов от джуна до про: калькуляторы, трекеры, приложения. Есть примеры и полезные ссылки.
👉 github.com/florinpop17/app-ideas
Build Your Own X
Хочешь создать свой Git, Redis, Docker или даже ОС? Тут есть всё: гайды, туториалы и код на разных языках.
👉 github.com/codecrafters-io/build-your-own-x
Project-Based Learning
Обучение в формате "берёшь проект — делаешь". Примеры с пошаговыми инструкциями для разных языков.
👉 github.com/practical-tutorials/project-based-learning
Frontend Mentor
Получаешь макет — верстаешь сам. Отлично тренирует HTML/CSS/JS. Идеально для портфолио.
👉 frontendmentor.io
Пиши код, а не резюме. Эти ресурсы реально двигают вперёд.
🧪 Pytest-BDD — фреймворк для Behavior Driven Development на Python. Инструмент позволяет писать тесты в формате Gherkin, используя привычный pytest. Он обладает возможность комбинировать BDD-сценарии с обычными pytest-тестами и фикстурами, что упрощает переход от unit-к интеграционным тестам.
Проект поддерживает параметризацию сценариев, различные парсеры аргументов и интеграцию с другими pytest-плагинами. Подходит для проектов, где важно совмещать технические и бизнес-требования в тестах.
🤖 GitHub
@python_job_interview
🚀 Изучаем Python с нуля до уверенного уровня за 3 месяца — нашли лучший репозиторий для новичков.
📚 Что внутри:
• Чёткая структура по темам — от синтаксиса до ООП, без воды
• Сотни понятных примеров — меняй под себя и учись на практике
• Всё объяснено простым языком — даже если ты никогда не кодил
• Удобный формат Jupyter Notebook — легко читать и запускать
• И главное — абсолютно бесплатно
Начни разбираться в Python уже сегодня:
🔗 github.com/AllenDowney/ThinkPython
@python_job_interview
🚀 Как оптимизировать Python‑код уже на старте — советы для новичков
Не нужно быть профи, чтобы писать быстрый и аккуратный код. Вот 7 простых приёмов, которые реально помогают:
1. Используй профайлеры (cProfile, Py‑Spy)
Перед оптимизацией — измерь время. Часто больше всего тормозят совсем неожиданные места.
2. Перестрой алгоритмы и структуры данных
Выбор между списком, множеством или словарём может кардинально изменить сложность: O(1) вместо O(n) при поиске.
3. Выбирай встроенные функции
map, max, join — всё это написано на C и работает быстрее ручных циклов.
4. Пиши list/dict comprehensions и используй zip, enumerate
Это компактнее, читабельнее и часто быстрее классических for-циклов.
5. Генераторы вместо списков, где не нужен весь набор сразу
Снижают потребление памяти и ускоряют обработку.
6. Переход на PyPy или JIT‑ускорители
PyPy, Numba и Cython могут дать прирост производительности в 2–100 раз для тяжёлых вычислений.
7. Избегай преждевременной оптимизации
Оптимизируй только то, что реально тормозит. Профайлер покажет, где именно.
🧩 Быстрый чек-лист:
• Измерил ли я время выполнения?
• Подходящие ли структуры данных?
• Используются ли встроенные функции?
• Применены ли comprehensions и генераторы?
• Рассматривал ли я PyPy или JIT?
• Код по-прежнему читаемый?
✅ Вывод: даже новичок может писать быстрый и понятный Python-код. Главное — думать, замерять и улучшать без фанатизма.
▶️ Подробности с кодом
🧠 Ускорь import в Python-проектах с помощью lazy loading — без изменения логики
Если у тебя проект с тяжёлыми модулями (`pandas`, torch, tensorflow`), но они не всегда нужны — не загружай их зря. Python позволяет **отложить импорт до первого использования**, через встроённый `importlib.
Вот как это выглядит на практике:
Читать полностью…
import importlib
# Обёртка для ленивого импорта
def lazy_import(name):
return importlib.util.LazyLoader(importlib.import_module(name))
# Использование
np = lazy_import('numpy')
# numpy ещё не загружен
# Теперь загрузится:
print(np.array([1, 2, 3]))
🐍 Совет дня для опытных Python-разработчиков
📌 Используй декораторы с параметрами — мощный приём для логирования, контроля, кэширования и кастомных проверок.
Пример: логгер, у которого можно задать уровень логирования через аргумент:
import functools
import logging
def log(level=logging.INFO):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
logging.log(level, f"Вызов {func.__name__} с args={args}, kwargs={kwargs}")
return func(*args, **kwargs)
return wrapper
return decorator
@log(logging.DEBUG)
def compute(x, y):
return x + y
🎙️ pytest-recording — плагин для записи и воспроизведения HTTP-запросов в тестах Инструмент использует VCR.py под капотом, чтобы сохранять сетевые взаимодействия в YAML-кассеты и переиспользовать их при последующих запусках. Достаточно добавить @pytest.mark.vcr к тесту и все запросы автоматически запишутся или возьмутся из кэша.
Особенно удобно для тестирования API, можно блокировать случайные сетевые вызовы через @pytest.mark.block_network и точечно разрешать только нужные хосты. Поддерживается тонкая настройка через vcr_config и работа в режиме перезаписи кассет.
🤖 GitHub
@python_job_interview
🔍Открытое собеседование на Python-бекендера с разработчиком из Avito и Яндекс в четверг
10 июля(уже в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Савва Демиденко, ТехЛид с опытом в Яндексе и Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Савве
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxjiWL7
⚙️ Подменяй любые импорты в Python “на лету” — без изменения кода
Если ты хочешь протестировать модуль, подменить зависимость, замокать внешний сервис или обмануть импорт — не обязательно редактировать исходники. Python позволяет перехватывать импорты прямо во время выполнения, через sys.modules.
Вот минимальный приём, который делает это прозрачно:
Читать полностью…
import sys
import types
# Создаём фейковый модуль
fake = types.SimpleNamespace()
fake.get_data = lambda: "подмена работает"
# Подменяем импорт
sys.modules['external_service'] = fake
# Теперь даже import будет работать
import external_service
print(external_service.get_data()) # → "подмена работает"
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot
📕Ит-книги: /channel/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
📥 Palanteer — инструмент для глубокого анализа производительности C++ и Python-приложений. Этот проект предлагает детальную телеметрию: от временных меток выполнения функций до отслеживания потребления памяти и переключений контекста.
Инструмент обладает минималистичной интеграцией: в C++ достаточно подключить один заголовочный файл, а Python-код анализируется автоматически. Визуализация в реальном времени включает временные графики, flame graphs и логи с наносекундным разрешением.
🤖 GitHub
🔦 VulnHuntr — ИИ-детектор уязвимостей в Python-коде. Этот инструмент от ProtectAI использует LLM для поиска сложных цепочек уязвимостей, которые традиционные статические анализаторы часто пропускают.
Инструмент анализирует полный путь от пользовательского ввода до опасных операций, выявляя даже многошаговые эксплойты вроде RCE или SSRF. Работает через поэтапный анализ: сначала LLM изучает README, затем исследует код с наращиванием контекста, и наконец формирует отчёт с PoC-эксплойтом и оценкой уверенности.
🤖 GitHub
@python_job_interview
🔍 SQLAlchemy-Filters — удобный инструмент для динамической фильтрации, сортировки и пагинации SQLAlchemy-запросов. Этот проект особенно полезен при разработке REST API, где клиенту нужно гибко управлять выборкой данных.
Библиотека поддерживает сложные условия фильтрации, автоматические джойны связанных моделей и работу с гибридными свойствами. Фильтры задаются простыми словарями, что упрощает интеграцию с фронтендом.
🤖 GitHub
@python_job_interview
🖥 Теперь официально Google выпустили Gemini CLI - AI-агента для работы прямо в терминале
• Лёгкий и мощный инструмент для разработки в командной строке
• Работает на базе Gemini 2.5 Pro
• Код агента в открытом доступе (Apache 2.0)
• Поддержка контекста в 1 миллион токенов
• Бесплатный тариф: до 60 запросов в минуту и 1000 в день
• Привязка к Google Search
• Поддержка плагинов и скриптов
• Интеграция с VS Code (Gemini Code Assist)
Запуск в cli: npx https://github.com/google-gemini/gemini-cli
🔜 Анонс: https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/
🔜 Github: https://github.com/google-gemini/gemini-cli/
@ai_machinelearning_big_data
#AI #ML #agent #Google
🧐ИИ — помощник или угроза тестировщикам?
В одних компаниях требуют использовать ChatGPT, в других за него можно получить "по шапке".
Кто прав? И можно ли вообще доверять искусственному интеллекту автоматизацию тестов?
Честно поговорим о том, где ИИ реально помогает, а где — только мешает и плодит баги на открытом вебинаре "Риски и преимущества использования ИИ в тестировании " 17 июня в 19:00.
Что будет:
💻Реальные кейсы: как ИИ помогает автоматизировать тестирование (и когда мешает)
💻Как выбрать нужный инструмент и не профакапить проект
💻Почему ИИ не заменит тестировщика (если вы не будете халтурить)
💻Как подружить Python + Docker + ChatGPT в CI/CD
💻Что делегируют ИИ ведущие инженеры уже сейчас
Спикеры:
👨💻Павел Балахонов, QA Automation Lead в VK Tech (15+ лет опыта, CI/CD, Docker, автоматизация)
👨💻Викентий Лапа, тестировщик Whamcloud (Linux, кластерные файловые системы, Python)
🎁Подарки участникам:
Чек-лист по автоматизации на Python
Мини-гайд по Docker CLI
Скидка 7% на курсы OTUS
17 июня, 19:00 МСК - бесплатно.
Запишись, пока это за тебя не сделал ИИ - https://tglink.io/91c136fc6b6f
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFGMCkac