Подготовься к Go-собесам!
Новый курс для участников сообщества algocode.io
"Подготовься к Go-собесам"
Что внутри:
- 25+ задач на конкурентность — от fan-in/fan-out до свежих задач из секции Advanced Code в Яндексе
- 40+ задач всего, и к каждой есть эталонное решение — именно такое, какое ждёт интервьюер
- ботановская теория — чтобы наконец разобраться, что такое этот ваш GMP
- чат, где можно задать любые вопросы по курсу
---
Если есть кайф — залетай:
https://algocode.io/community
На всякий случай напомню: в подписке доступ не только к Go-курсу, но и к:
- Алгоритмам и структурам данных
- System Design
Так что гошнику можно подготовиться от и до
UPD: а скоро в подписке будет еще курсец по SQL для собесов
Новый курс для участников сообщества algocode.io
"Подготовься к Go-собесам"
Что внутри:
- 25+ задач на конкурентность — от fan-in/fan-out до свежих задач из секции Advanced Code в Яндексе
- 40+ задач всего, и к каждой есть эталонное решение — именно такое, какое ждёт интервьюер
- ботановская теория — чтобы наконец разобраться, что такое этот ваш GMP
- чат, где можно задать любые вопросы по курсу
---
Если есть кайф — залетай:
https://algocode.io/community
На всякий случай напомню: в подписке доступ не только к Go-курсу, но и к:
- Алгоритмам и структурам данных
- System Design
Так что гошнику можно подготовиться от и до
UPD: а скоро в подписке будет еще курсец по SQL для собесов
❤🔥10🌭7
Интервьюер жестко докопался к Big O
В общем, зашел тут ко мне кореш
Тут все просто: друган дал слабину там, где ее показывать нельзя
В тюрьме нельзя ронять мыло, а в алгоритмах — ошибаться в Big O
В целом, ошибаться можно
НО!
Когда кандидат оценивает в Big O память как O(n*n), а время O(n), то и у меня как у интервьюера возникает капец много вопросов
Простое правило: оценка по памяти НЕ МОЖЕТ ПРЕВЫШАТЬ ВРЕМЯ
Ведь аллокация той же самой памяти требует времени
После этого хочется понять — насколько глубоко кандидат реально разбирается
Вот и полетели другану дополнительные вопросы
---
В целом, редко встречаются оценки кроме как:
- O(1)
- O(n)
- O(n*log(n))
- O(n*n)
- O(n^n)
И есть +- понятные правила к каждой оценке
Например, для оценки времени:
- O(n*log(n)) — если используем встроенную сортировку и это самая затратная операция
- O(n) — один или несколько раз пробежаться по массиву
- O(n*n) — вложенный цикл в цикл (не путать с плавающим окном), в общем перебор всех пар в массиве
- O(1) — в оценке по времени почти никогда не используется
- O(n^n) — это полный перебор
- O(log(n)) - бинарный поиск как правило
Если говорить про частотность оценок времени, то я бы сказал так:
- O(n)
- O(n*log(n))
- O(n*n)
- O(n^n)
- O(log(n))
- O(1)
Это обусловлено частотностью разных тем на собесах
Например, сейчас в тренде задачки на массивы, указатели, хеш-таблицы — а это всё как правило O(n)
Сортировка бывает, но не так часто — O(n*log(n)
А по объему памяти обычно это:
- O(1)
- O(n)
- O(log(n))
Остальные оценки по памяти встречаются редко, а различить O(1) и O(n) несложно.
O(log(n)) встречается в сортировках и при рекурсивных обходах сбалансированных деревьев - тут не запутаешься тоже
В общем, тут я раскидал все основные аспекты, чтобы ты не запутался и с кайфом решал алгосы!
В общем, зашел тут ко мне кореш
Максон, был на собесе, но чет душить интервьюер стал
Я замялся с Big O маленько, а он накинулся и не давал писать код, пока не оценю...
Тут все просто: друган дал слабину там, где ее показывать нельзя
В тюрьме нельзя ронять мыло, а в алгоритмах — ошибаться в Big O
В целом, ошибаться можно
НО!
Когда кандидат оценивает в Big O память как O(n*n), а время O(n), то и у меня как у интервьюера возникает капец много вопросов
Простое правило: оценка по памяти НЕ МОЖЕТ ПРЕВЫШАТЬ ВРЕМЯ
Ведь аллокация той же самой памяти требует времени
После этого хочется понять — насколько глубоко кандидат реально разбирается
Вот и полетели другану дополнительные вопросы
---
В целом, редко встречаются оценки кроме как:
- O(1)
- O(n)
- O(n*log(n))
- O(n*n)
- O(n^n)
И есть +- понятные правила к каждой оценке
Например, для оценки времени:
- O(n*log(n)) — если используем встроенную сортировку и это самая затратная операция
- O(n) — один или несколько раз пробежаться по массиву
- O(n*n) — вложенный цикл в цикл (не путать с плавающим окном), в общем перебор всех пар в массиве
- O(1) — в оценке по времени почти никогда не используется
- O(n^n) — это полный перебор
- O(log(n)) - бинарный поиск как правило
Если говорить про частотность оценок времени, то я бы сказал так:
- O(n)
- O(n*log(n))
- O(n*n)
- O(n^n)
- O(log(n))
- O(1)
Это обусловлено частотностью разных тем на собесах
Например, сейчас в тренде задачки на массивы, указатели, хеш-таблицы — а это всё как правило O(n)
Сортировка бывает, но не так часто — O(n*log(n)
А по объему памяти обычно это:
- O(1)
- O(n)
- O(log(n))
Остальные оценки по памяти встречаются редко, а различить O(1) и O(n) несложно.
O(log(n)) встречается в сортировках и при рекурсивных обходах сбалансированных деревьев - тут не запутаешься тоже
В общем, тут я раскидал все основные аспекты, чтобы ты не запутался и с кайфом решал алгосы!
🌭34❤🔥12
Fit-собес — это самый главный этап во всех BigTech.
Тот самый собес, к которому рекрутер говорит "не готовься", но который на самом деле определяет:
- твой грейд
- ЗП
- команду...
Давай по порядку. Есть такие секции собеседований в BigTech:
- Скрининг (иногда скипают) — около 30 минут
- Платформа (проверяют знание языка) — 60 минут
- Алгоритмы — 60 минут
- System Design (для senior)
- Fit-собес
Fit-собес — это финальное интервью с твоим будущим руководителем, который как раз принимает финальное решение: интересно ли ему брать тебя в команду или нет.
а, да — именно Fit-собес, а не технические.
Если ты плохо прошёл технику — это твой ограничитель,
а если хорошо — это ещё не гарант Senior-грейда.
Живой пример — Авито.
Полно ребят, которые прошли все секции на Senior,
но в итоге получили Middle+, потому что не готовились к Fit-собесу...
На fit задают такие вопросы, как:
- Расскажи о себе (в профессиональном контексте)
- Расскажи о самой сложной технической задаче
- Как устроены процессы в команде?
- Как ты решаешь задачи?
- ...
Вопросы могут звучать странно, особенно если ты не понимаешь, на что они нацелены.
Пример хорошего ответа на вопрос "Расскажи о себе":
"Сейчас работаю в компании XYZ — она занимается B2B-решениями в аналитике и предоставляет SaaS-продукты.
Наша команда из шести человек разрабатывает AB-платформу для проведения A/B-тестов внутри всей компании.
Я занимаю роль Feature Lead-а и отвечаю за функциональность двух сервисов.
Первый — админка. Её основные пользователи — аналитики. Главная сложность — поддержание eventual consistency модели с соседними сервисами XYZ и ZYC.
Второй — сплитовалка, которая занимается распределением трафика. Здесь основной фокус — на performance и оптимизации.
Хочу рассказать об интересной челендж-задаче, которую решал для этого сервиса: ..."
Что здесь хорошо:
1. Кратко обозначено, чем занимается компания
2. Чётко описаны команда, роль и зона ответственности
3. Есть контекст по сервисам и взаимодействию с другими частями системы
Рассказывание занимает буквально 30 секунд, но уже создаёт прозрачное понимание, чем ты занимаешься.
Чем выше грейд собеседующего — тем больше он ценит точность формулировок. Поэтому стоит подготовиться заранее.
А теперь мега-фишка!
Найм — это всегда про доверие.
Если лид верит, что ты справишься с задачами — он готов выбивать тебе лучшие условия.
Если нет — то нет.
И вызвать это доверие очень просто:
- Подготовь структурированный рассказ
- Сделай презентацию к своему рассказу (так почти никто не делает!)
- Вместо вопросов вроде "А какая у вас версия Python?" спроси:
— какие планы на квартал или год
— какие ожидания от тебя как от кандидата
— каков основной фокус продукта
Так ты покажешь, что не просто технически подкован, но и умеешь принимать продуктовые решения.
Тех, кто может молча писать код, — пруд пруди.
А вот твоё конкурентное преимущество в 2025 году — это развитые soft skills.
Всё, что я перечислил выше, — это практические навыки, которые выделяют тебя на фоне остальных и дают стабильность даже в турбулентные времена.
Для ребят из сообщества algocode.io я уже провёл три эфира (суммарно более 6 часов), где детально разобрали все на реальных примерах + есть отдельно по Авито.
Если ты уже в сообществе — обязательно посмотри запись:
"Готов к BigTech"
https://t.me/c/2290576342/110
"Матрица компетенций из разбора"
https://t.me/c/2290576342/105
"А ты Senior?"
https://t.me/c/2290576342/99
"Как не упустить жирный офер в Авито"
https://t.me/c/2290576342/70
P.S. В разборах мы смотрели на middle+ инженеров и на их примере провели карьерный разбор
-----
Решил немного карьерой разнообразить канальчик - а то все про алгосы да про алгосы
Если хочешь дальше видеть посты про карьеру, то бахни 🌭
Тот самый собес, к которому рекрутер говорит "не готовься", но который на самом деле определяет:
- твой грейд
- ЗП
- команду...
Давай по порядку. Есть такие секции собеседований в BigTech:
- Скрининг (иногда скипают) — около 30 минут
- Платформа (проверяют знание языка) — 60 минут
- Алгоритмы — 60 минут
- System Design (для senior)
- Fit-собес
Fit-собес — это финальное интервью с твоим будущим руководителем, который как раз принимает финальное решение: интересно ли ему брать тебя в команду или нет.
а, да — именно Fit-собес, а не технические.
Если ты плохо прошёл технику — это твой ограничитель,
а если хорошо — это ещё не гарант Senior-грейда.
Живой пример — Авито.
Полно ребят, которые прошли все секции на Senior,
но в итоге получили Middle+, потому что не готовились к Fit-собесу...
На fit задают такие вопросы, как:
- Расскажи о себе (в профессиональном контексте)
- Расскажи о самой сложной технической задаче
- Как устроены процессы в команде?
- Как ты решаешь задачи?
- ...
Вопросы могут звучать странно, особенно если ты не понимаешь, на что они нацелены.
Пример хорошего ответа на вопрос "Расскажи о себе":
"Сейчас работаю в компании XYZ — она занимается B2B-решениями в аналитике и предоставляет SaaS-продукты.
Наша команда из шести человек разрабатывает AB-платформу для проведения A/B-тестов внутри всей компании.
Я занимаю роль Feature Lead-а и отвечаю за функциональность двух сервисов.
Первый — админка. Её основные пользователи — аналитики. Главная сложность — поддержание eventual consistency модели с соседними сервисами XYZ и ZYC.
Второй — сплитовалка, которая занимается распределением трафика. Здесь основной фокус — на performance и оптимизации.
Хочу рассказать об интересной челендж-задаче, которую решал для этого сервиса: ..."
Что здесь хорошо:
1. Кратко обозначено, чем занимается компания
2. Чётко описаны команда, роль и зона ответственности
3. Есть контекст по сервисам и взаимодействию с другими частями системы
Рассказывание занимает буквально 30 секунд, но уже создаёт прозрачное понимание, чем ты занимаешься.
Чем выше грейд собеседующего — тем больше он ценит точность формулировок. Поэтому стоит подготовиться заранее.
А теперь мега-фишка!
Найм — это всегда про доверие.
Если лид верит, что ты справишься с задачами — он готов выбивать тебе лучшие условия.
Если нет — то нет.
И вызвать это доверие очень просто:
- Подготовь структурированный рассказ
- Сделай презентацию к своему рассказу (так почти никто не делает!)
- Вместо вопросов вроде "А какая у вас версия Python?" спроси:
— какие планы на квартал или год
— какие ожидания от тебя как от кандидата
— каков основной фокус продукта
Так ты покажешь, что не просто технически подкован, но и умеешь принимать продуктовые решения.
Тех, кто может молча писать код, — пруд пруди.
А вот твоё конкурентное преимущество в 2025 году — это развитые soft skills.
Всё, что я перечислил выше, — это практические навыки, которые выделяют тебя на фоне остальных и дают стабильность даже в турбулентные времена.
Для ребят из сообщества algocode.io я уже провёл три эфира (суммарно более 6 часов), где детально разобрали все на реальных примерах + есть отдельно по Авито.
Если ты уже в сообществе — обязательно посмотри запись:
"Готов к BigTech"
https://t.me/c/2290576342/110
"Матрица компетенций из разбора"
https://t.me/c/2290576342/105
"А ты Senior?"
https://t.me/c/2290576342/99
"Как не упустить жирный офер в Авито"
https://t.me/c/2290576342/70
P.S. В разборах мы смотрели на middle+ инженеров и на их примере провели карьерный разбор
-----
Решил немного карьерой разнообразить канальчик - а то все про алгосы да про алгосы
Если хочешь дальше видеть посты про карьеру, то бахни 🌭
🌭70❤🔥3
Что не так с деревьями?
В чём вообще суть любой алгоритмической задачи? Найти оптимальное решение, которое будет эффективно работать на больших данных.
И это правило везде одно: решил не оптимально с точки зрения Big O — НА ВЫХОД!
Но почему-то это правило обошло деревья стороной...
Окей, окей — вот условие задачи прямо с собеса:
Дан корень правильного бинарного дерева поиска и число k. Нужно вернуть k-й наименьший элемент в дереве (отсчёт начинается с 1).
Бинарное дерево — значит, у каждой вершины не более двух детей.
Дерево поиска — значит, все элементы в левом поддереве меньше текущего, а в правом — больше.
Короче, вот пример дерева — и всё сразу станет ясно:
Пусть k = 3. Тогда третий наименьший элемент — это 3, именно её и нужно вернуть по условию.
Чтобы решать задачи на деревья, нужно знать три обхода: preorder, inorder, postorder.
Они позволяют обойти все вершины дерева в определённом порядке.
Для примера выше:
Заметил? inorder выдал отсортированный порядок — и это не совпадение!
Если дерево — правильное бинарное дерево поиска, то inorder всегда выдаёт отсортированную последовательность.
Реализация inorder-обхода:
Простое решение задачи:
1. Запускаем inorder и получаем отсортированный список.
2. Возвращаем k-й элемент (с индексом k - 1).
Оценка: время — O(n), память — O(n).
Но! Такое решение на собеседовании часто не принимают. Слишком много дополнительной памяти — хочется оптимальнее.
Какое решение ждут: нужно прямо во время обхода считать, какой элемент мы посещаем, и если он k-й — вернуть его сразу, не сохраняя все значения вершин дерева.
Оценка: время — O(n), память — O(n).
WTF? Почему такие же оценки, если вроде оптимизировали?
Пусть k = 1, а дерево выглядит вот так — «бамбук» с уклоном влево:
Видишь? Нам всё равно придётся спуститься в самый низ, чтобы достать единицу — самый минимальный элемент.
А память откуда O(n)? Из-за рекурсии, брат! Каждый рекурсивный вызов занимает место в стеке.
В худшем случае это O(h), где h — высота дерева, а если дерево вытянутое, то просто h = n.
P.S. продолжение через минуты
В чём вообще суть любой алгоритмической задачи? Найти оптимальное решение, которое будет эффективно работать на больших данных.
И это правило везде одно: решил не оптимально с точки зрения Big O — НА ВЫХОД!
Но почему-то это правило обошло деревья стороной...
Окей, окей — вот условие задачи прямо с собеса:
Дан корень правильного бинарного дерева поиска и число k. Нужно вернуть k-й наименьший элемент в дереве (отсчёт начинается с 1).
Бинарное дерево — значит, у каждой вершины не более двух детей.
Дерево поиска — значит, все элементы в левом поддереве меньше текущего, а в правом — больше.
Короче, вот пример дерева — и всё сразу станет ясно:
4
/ \
2 6
/ \ / \
1 3 5 7
Пусть k = 3. Тогда третий наименьший элемент — это 3, именно её и нужно вернуть по условию.
Чтобы решать задачи на деревья, нужно знать три обхода: preorder, inorder, postorder.
Они позволяют обойти все вершины дерева в определённом порядке.
Для примера выше:
preorder: 4, 2, 1, 3, 6, 5, 7
inorder: 1, 2, 3, 4, 5, 6, 7
postorder: 1, 3, 2, 5, 7, 6, 4
Заметил? inorder выдал отсортированный порядок — и это не совпадение!
Если дерево — правильное бинарное дерево поиска, то inorder всегда выдаёт отсортированную последовательность.
Реализация inorder-обхода:
from typing import *
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def traversal(node: Optional[TreeNode], result: List[int]) -> None:
if node is None:
return
traversal(node.left, result)
result.append(node.val)
traversal(node.right, result)
def inorder_traversal(root: Optional[TreeNode]) -> List[int]:
result = []
traversal(root, result)
return result
Простое решение задачи:
1. Запускаем inorder и получаем отсортированный список.
2. Возвращаем k-й элемент (с индексом k - 1).
Оценка: время — O(n), память — O(n).
Но! Такое решение на собеседовании часто не принимают. Слишком много дополнительной памяти — хочется оптимальнее.
Какое решение ждут: нужно прямо во время обхода считать, какой элемент мы посещаем, и если он k-й — вернуть его сразу, не сохраняя все значения вершин дерева.
from typing import *
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def smallest_bst_element(root: TreeNode, k: int) -> int:
def inorder(node: TreeNode) -> int:
if node is None:
return None
result = inorder(node.left)
if result is not None:
return result
nonlocal k
k -= 1
if k == 0:
return node.val
return inorder(node.right)
return inorder(root)
Оценка: время — O(n), память — O(n).
WTF? Почему такие же оценки, если вроде оптимизировали?
Пусть k = 1, а дерево выглядит вот так — «бамбук» с уклоном влево:
4
/
3
/
2
/
1
Видишь? Нам всё равно придётся спуститься в самый низ, чтобы достать единицу — самый минимальный элемент.
А память откуда O(n)? Из-за рекурсии, брат! Каждый рекурсивный вызов занимает место в стеке.
В худшем случае это O(h), где h — высота дерева, а если дерево вытянутое, то просто h = n.
P.S. продолжение через минуты
🌭7🍓4
Что не так с деревьями?
🤙🤙🤙 Продолжение поста выше
📌 Много букв, но ты справишься!
---------
А теперь, когда ты всё это прочитал, самый прикол!
Это решение всё ещё не самое оптимальное. Дело в том, что есть обход Морриса (Morris Traversal). Такой обход не использует рекурсию и стек, поэтому решение получается O(n) по времени и O(1) по памяти.
С ним решение выглядит так:
Юху! Решили оптимально!
Но вот интервьюер вряд ли такое оценит...
Во-первых, есть риск, что он не знает про такие оптимальные подходы и просто посчитает решение некорректным
Во-вторых — ну оно реально жёсткое, и легко накосячить на мелочах
В общем, рекурсия в деревьях для решения задачи — это база. Да, не оптимально по памяти в худшем случае, но это база!
Где такое возможно еще??? А вот почти нигде - деревья тут отличились. В остальных темах надо оптимально решать...
Всем достаточно рекурсивного обхода 🙂
P.S. Если встретимся на собесе и ты расскажешь про обход Морриса и напишешь без ошибок — вторую задачу не дам: сразу апрув
Бахни 🌭 если зашел формат лонгрида! Если наберем 80+ сосисонов, то буду чаще в таком формате посты делать
🤙🤙🤙 Продолжение поста выше
📌 Много букв, но ты справишься!
---------
А теперь, когда ты всё это прочитал, самый прикол!
Это решение всё ещё не самое оптимальное. Дело в том, что есть обход Морриса (Morris Traversal). Такой обход не использует рекурсию и стек, поэтому решение получается O(n) по времени и O(1) по памяти.
С ним решение выглядит так:
from typing import *
from algocodelib import TreeNode
def smallest_bst_element(root: TreeNode, k: int) -> int:
curr = root
while curr:
if curr.left is None:
# посещаем узел
k -= 1
if k == 0:
return curr.val
curr = curr.right
else:
# ищем inorder-предшественника (правыйmost узел в левом поддереве)
pred = curr.left
while pred.right and pred.right is not curr:
pred = pred.right
if pred.right is None:
# создаём временную ссылку
pred.right = curr
curr = curr.left
else:
# убираем ссылку и посещаем узел
pred.right = None
k -= 1
if k == 0:
return curr.val
curr = curr.right
return -1 # если k больше, чем количество узлов
Юху! Решили оптимально!
Но вот интервьюер вряд ли такое оценит...
Во-первых, есть риск, что он не знает про такие оптимальные подходы и просто посчитает решение некорректным
Во-вторых — ну оно реально жёсткое, и легко накосячить на мелочах
В общем, рекурсия в деревьях для решения задачи — это база. Да, не оптимально по памяти в худшем случае, но это база!
Где такое возможно еще??? А вот почти нигде - деревья тут отличились. В остальных темах надо оптимально решать...
Всем достаточно рекурсивного обхода 🙂
P.S. Если встретимся на собесе и ты расскажешь про обход Морриса и напишешь без ошибок — вторую задачу не дам: сразу апрув
Бахни 🌭 если зашел формат лонгрида! Если наберем 80+ сосисонов, то буду чаще в таком формате посты делать
🌭115
А Озон-то не так прост!
Вообще, мало где дают задачки на системы счисления — так что Озон тут выделяется.
Недавно попалась вот такая задачка:
Дан номер колонки в Excel. Нужно назвать её порядковый номер.
Примеры:
Чтобы решать такую задачку без проблем, нужно знать операцию ord и уметь ей пользоваться.
ord — это функция, которая возвращает ASCII-код символа.
Например:
Да, без этого можно обойтись, но это база, как говорится.
Таким образом, мы можем сопоставить каждой букве её номер:
Бинго!
Первая часть решения позади — прямо как первый уровень в игре, где ты наконец понял, как устроен мир.
Теперь можно воспринимать строку так:
Откуда взялось 26?
У нас всего 26 различных символов. Если бы алфавит был только A B C, то умножали бы на 3...
Осталось только собрать всё вместе:
ВАЖНО!
Ожидают решение по памяти за O(1), так что составлять массив из чисел, а потом считать результат — не вариант (это было нужно только для объяснения).
В боевом решении всё должно быть оптимально.
Вообще, формула:
— это классика. Она будет часто встречаться, так что смело запоминай.
Решить задачку можно у нас на algocode.io как и другие задачи Озона:
https://algocode.io/courses/algo-big-tech/problem/int-from-excel-column
или на leetcode:
https://leetcode.com/problems/excel-sheet-column-title/description/
Вообще, мало где дают задачки на системы счисления — так что Озон тут выделяется.
Недавно попалась вот такая задачка:
Дан номер колонки в Excel. Нужно назвать её порядковый номер.
Примеры:
A -> 1
B -> 2
...
Z -> 26
AA -> 27
AB -> 28
Чтобы решать такую задачку без проблем, нужно знать операцию ord и уметь ей пользоваться.
ord — это функция, которая возвращает ASCII-код символа.
Например:
ord('A') = 65
ord('B') = 66
...
ord('Z') = 90
Да, без этого можно обойтись, но это база, как говорится.
Таким образом, мы можем сопоставить каждой букве её номер:
'A' -> ord('A') - ord('A') + 1 = 1
'B' -> ord('B') - ord('A') + 1 = 2
...
'Z' -> ord('Z') - ord('A') + 1 = 26
Бинго!
Первая часть решения позади — прямо как первый уровень в игре, где ты наконец понял, как устроен мир.
Теперь можно воспринимать строку так:
'AB' → [1, 2] → 1 * 26 + 2 = 28
'ABCD' → [1, 2, 3, 4] → 1 * 26³ + 2 * 26² + 3 * 26 + 4
Откуда взялось 26?
У нас всего 26 различных символов. Если бы алфавит был только A B C, то умножали бы на 3...
Осталось только собрать всё вместе:
from typing import *
# Время: O(n)
# Память: O(1)
def int_from_excel_column(column: str) -> int:
result = 0
for ch in column:
val = ord(ch) - ord('A') + 1
result = result * 26 + val
return result
ВАЖНО!
Ожидают решение по памяти за O(1), так что составлять массив из чисел, а потом считать результат — не вариант (это было нужно только для объяснения).
В боевом решении всё должно быть оптимально.
Вообще, формула:
result = result * 26 + val
— это классика. Она будет часто встречаться, так что смело запоминай.
Решить задачку можно у нас на algocode.io как и другие задачи Озона:
https://algocode.io/courses/algo-big-tech/problem/int-from-excel-column
или на leetcode:
https://leetcode.com/problems/excel-sheet-column-title/description/
❤🔥22🌭7
Что спросить у СТО, чтобы тебя наняли на высокий грейд?
Проходя собесы, я начал 1.5 года назад активно общаться с СТО на финальной секции
Получается, уже не просто маслёнок...
Как правило, это серьёзные дяди — и разговорить их было не всегда просто
Я прям видел отвращение в лицах после вопросов:
- «А какая версия Go у вас в проектах?»
- «А есть компенсация обедов?»
Просто разрыв живота 99-го уровня — как вспомню своё общение с СТО полтора года назад...
Главное правило общения с лидом и СТО, которое я вынес, чтобы вопросы не вызывали отвращения:
Не спрашивай то, на что может ответить рекрутер или то, что уже написано в вакансии. Потом у рекрутера уточнишь, если тебе важно.
А теперь важно определить цель вопросов:
Для себя с понял: у каждого вопроса должна быть цель, а не просто повыделываться типа умный
Например, для себя я понял:
- Хочу работать в отделе, через который проходят деньги, и который нужен бизнесу. Чтобы я был ценным сотрудником компании, чтобы вокруг были сильные сокомандники, чтобы был возможен ебейший карьерный рост
- Хочу сильного лида, который не зассыт отстоять большую премию своей команде и имеет свой вижен на развитие продукта. Чтобы его не трясло, как банный лист, от каждого нового необдуманного требования продактов
- Хочу работать в богатой компании или там, где знаком с владельцем бизнеса. Всё просто: если компания уже богатая, значит, там дофига людей, с кем можно познакомиться и перенять опыт. Если мелкая — то я хочу вносить импакт на уровне всей компании, а для этого нужно общаться с собственником
И теперь у меня есть простой чеклист
Встречаюсь с командами → задаю свои вопросы → если не матчимся хотя бы по 1 вопросу, то перехожу к следующей команде.
И знаете что?
99% fit-собесов я просто скипаю, потому что я не подхожу команде или она мне...
У меня нет задачи нравиться всем. Я хочу самый пиздатый матч, который только возможен.
Чтобы компания, которая меня нанимала, заработала на мне Х10, а лучше — Х100
Потому что в таком случае и я без денег не останусь, и компании будет капец как выгодно
WIN-WIN
Я не хочу быть посредственным!
Просто не хочу.
Так что вот мои вопросы:
- Какие цели у юнита на год, и у команды, куда меня рассматриваете, в частности?
- Какую роль продукт оказывает на бизнес и является ли ключевым?
- Какие ожидания у бизнеса от продукта? На какие метрики смотрит бизнес?
- Чем отличаетесь от конкурентов / планируете отличаться и кто они?
- Какие направления развиваете: B2B/B2C/B2G, и какие по ним планы?
- Довольны ли вы сейчас работой команды, куда меня нанимают, или есть критические поинты для улучшения?
----
В общем, я отказался от вопросов про ЯП 😂
Ну мне реально стало не особо интересно.Больше хочется про продукт узнать — его экономику и важность.
Этот чеклист точно не для тех, кто ищет первую работу.
Но зато тот 1%, в который попадает матч, выкатывает очень приятные офферына 600+ кэсов.
А какие вопросы на финалах задаёшь ты? Интересно будет глянуть комменты
P.S. экспериментирую с форматами постов так что бахни 🌭 если зашло
Проходя собесы, я начал 1.5 года назад активно общаться с СТО на финальной секции
Получается, уже не просто маслёнок...
Как правило, это серьёзные дяди — и разговорить их было не всегда просто
Я прям видел отвращение в лицах после вопросов:
- «А какая версия Go у вас в проектах?»
- «А есть компенсация обедов?»
Просто разрыв живота 99-го уровня — как вспомню своё общение с СТО полтора года назад...
Главное правило общения с лидом и СТО, которое я вынес, чтобы вопросы не вызывали отвращения:
А теперь важно определить цель вопросов:
Для себя с понял: у каждого вопроса должна быть цель, а не просто повыделываться типа умный
Например, для себя я понял:
- Хочу работать в отделе, через который проходят деньги, и который нужен бизнесу. Чтобы я был ценным сотрудником компании, чтобы вокруг были сильные сокомандники, чтобы был возможен ебейший карьерный рост
- Хочу сильного лида, который не зассыт отстоять большую премию своей команде и имеет свой вижен на развитие продукта. Чтобы его не трясло, как банный лист, от каждого нового необдуманного требования продактов
- Хочу работать в богатой компании или там, где знаком с владельцем бизнеса. Всё просто: если компания уже богатая, значит, там дофига людей, с кем можно познакомиться и перенять опыт. Если мелкая — то я хочу вносить импакт на уровне всей компании, а для этого нужно общаться с собственником
И теперь у меня есть простой чеклист
Встречаюсь с командами → задаю свои вопросы → если не матчимся хотя бы по 1 вопросу, то перехожу к следующей команде.
И знаете что?
99% fit-собесов я просто скипаю, потому что я не подхожу команде или она мне...
У меня нет задачи нравиться всем. Я хочу самый пиздатый матч, который только возможен.
Чтобы компания, которая меня нанимала, заработала на мне Х10, а лучше — Х100
Потому что в таком случае и я без денег не останусь, и компании будет капец как выгодно
WIN-WIN
Я не хочу быть посредственным!
Просто не хочу.
Так что вот мои вопросы:
- Какие цели у юнита на год, и у команды, куда меня рассматриваете, в частности?
- Какую роль продукт оказывает на бизнес и является ли ключевым?
- Какие ожидания у бизнеса от продукта? На какие метрики смотрит бизнес?
- Чем отличаетесь от конкурентов / планируете отличаться и кто они?
- Какие направления развиваете: B2B/B2C/B2G, и какие по ним планы?
- Довольны ли вы сейчас работой команды, куда меня нанимают, или есть критические поинты для улучшения?
----
В общем, я отказался от вопросов про ЯП 😂
Ну мне реально стало не особо интересно.
Этот чеклист точно не для тех, кто ищет первую работу.
Но зато тот 1%, в который попадает матч, выкатывает очень приятные офферы
А какие вопросы на финалах задаёшь ты? Интересно будет глянуть комменты
P.S. экспериментирую с форматами постов так что бахни 🌭 если зашло
🌭94❤🔥9🍓3
Стартует запись на курс по графам!
Курс пройдет с 25 ноября по 9 декабря
- Программа из тем
- Про домашки
- Про проверку домашек
- Как попасть на курс
- ...
https://telegra.ph/Kurs-Grafy-s-0-do-PRO-11-05
Число мест для live-участия ограничего!
Для тех, кто решится на онлайн - советую подавать заявку как можно раньше,
потому что уже начали анализировать заявки
P.S. обязательно буду делиться с вами ключевыми инсайдами по ходу курса, чтобы все могли получить пользу
Курс пройдет с 25 ноября по 9 декабря
- Программа из тем
- Про домашки
- Про проверку домашек
- Как попасть на курс
- ...
https://telegra.ph/Kurs-Grafy-s-0-do-PRO-11-05
Число мест для live-участия ограничего!
Для тех, кто решится на онлайн - советую подавать заявку как можно раньше,
потому что уже начали анализировать заявки
P.S. обязательно буду делиться с вами ключевыми инсайдами по ходу курса, чтобы все могли получить пользу
🌭9❤🔥4🤣1
Как понять графы с нуля? Как объяснить их так, чтобы понял даже мой 14-летний брат?
Я нашёл ответ!
Проанализировав все свои лекции по графам, вопросы, которые задают, и комментарии на YouTube, я понял самое главное: при объяснении таких тем, как DFS и BFS, часто мешает визуализация. Всё дело в восприятии: ты глазами видишь «кратчайший путь»/пытаешься додумать алгоритм — и это сильно мешает пониманию на старте
Я решил эту проблему так: буду визуализировать не то, что видит человек, а то, как это видит компьютер. То есть поле — полностью тёмное, и каждую клетку нужно «открыть» только в тот шаг алгоритма, когда алгоритм действительно до неё дошёл. Это заметно упрощает понимание DFS и BFS. Но при этом не у кого не видел такого объяснения
Если сейчас ты сам учишь графы, особенно DFS и BFS, попробуй нарисовать поле полностью тёмным и открывать клетку только в тот шаг алгоритма, когда нужно её открыть
Чтобы не додумывать и не рисовать вручную, я снял ролик про графы на 40 минут — это будет как вступление к курсу, который готовлю для сообщества algocode.io. Ролик будет на YouTube, так что бахни хот-дог, если хочешь освоить тему графов
P.S. как всегда - самое долгое монтаж, так что выйдет в конце ноября примерно
А я пошёл дописывать курсец по графам и искать для тебя новые способы хакнуть алгосы и получить конкурентное преимущество
Я нашёл ответ!
Проанализировав все свои лекции по графам, вопросы, которые задают, и комментарии на YouTube, я понял самое главное: при объяснении таких тем, как DFS и BFS, часто мешает визуализация. Всё дело в восприятии: ты глазами видишь «кратчайший путь»/пытаешься додумать алгоритм — и это сильно мешает пониманию на старте
Я решил эту проблему так: буду визуализировать не то, что видит человек, а то, как это видит компьютер. То есть поле — полностью тёмное, и каждую клетку нужно «открыть» только в тот шаг алгоритма, когда алгоритм действительно до неё дошёл. Это заметно упрощает понимание DFS и BFS. Но при этом не у кого не видел такого объяснения
Если сейчас ты сам учишь графы, особенно DFS и BFS, попробуй нарисовать поле полностью тёмным и открывать клетку только в тот шаг алгоритма, когда нужно её открыть
Чтобы не додумывать и не рисовать вручную, я снял ролик про графы на 40 минут — это будет как вступление к курсу, который готовлю для сообщества algocode.io. Ролик будет на YouTube, так что бахни хот-дог, если хочешь освоить тему графов
P.S. как всегда - самое долгое монтаж, так что выйдет в конце ноября примерно
А я пошёл дописывать курсец по графам и искать для тебя новые способы хакнуть алгосы и получить конкурентное преимущество
🌭91❤🔥6
Что за топологическая сортировка?
Вот представь, накидывает тебе продакт JIRA-задачки. У каждой задачи есть задачи, которые зависят от текущей — то есть сначала делаем текущую, а потом остальные. Но тут что-то пошло не так:
Выглядит так, что нужно сделать задачу 1 перед задачей 2, задачу 2 перед задачей 3, а задачу 3 перед задачей 1. И тут мы должны послать продакта пересматривать требования
А что если задач 100?
Так вот, тут пригодится детектирование циклов в графе — оно поможет понять, есть ли такая ебучая ситуация или нет
Если ситуация не ебучая, то поможет топологическая сортировка — она как раз и расположит задачи в том порядке, в котором их нужно выполнять
Итого: топологическая сортировка помогает определить порядок выполнения действий с учётом всех зависимостей и может быть выполнена только если нет ебучих циклов
Как можно проверить наличие цикла в графе? → модификация поиска в глубину (DFS)
Как можно выполнить топологическую сортировку? → модификация поиска в глубину (DFS)
P.S. Сейчас как раз эту тему для курса по графам готовлю, так что решил поделиться
Йоу! Бахни 🌭 если не знал о топологической сортировке
Вот представь, накидывает тебе продакт JIRA-задачки. У каждой задачи есть задачи, которые зависят от текущей — то есть сначала делаем текущую, а потом остальные. Но тут что-то пошло не так:
JIRA1 → JIRA2
JIRA2 → JIRA3
JIRA3 → JIRA1
Выглядит так, что нужно сделать задачу 1 перед задачей 2, задачу 2 перед задачей 3, а задачу 3 перед задачей 1. И тут мы должны послать продакта пересматривать требования
А что если задач 100?
Так вот, тут пригодится детектирование циклов в графе — оно поможет понять, есть ли такая ебучая ситуация или нет
Если ситуация не ебучая, то поможет топологическая сортировка — она как раз и расположит задачи в том порядке, в котором их нужно выполнять
Итого: топологическая сортировка помогает определить порядок выполнения действий с учётом всех зависимостей и может быть выполнена только если нет ебучих циклов
Как можно проверить наличие цикла в графе? → модификация поиска в глубину (DFS)
Как можно выполнить топологическую сортировку? → модификация поиска в глубину (DFS)
P.S. Сейчас как раз эту тему для курса по графам готовлю, так что решил поделиться
Йоу! Бахни 🌭 если не знал о топологической сортировке
🌭61🍓2
Почему ты не можешь сменить работу/найти новое место?
Сейчас кризис, денеги дорогие (высокие проценты для кредитов/инвестиций и т д) -> бизнесу тяжеловато. А что происходит, когда тяжело: срезают косты, в том числе на ФОТ (фонд оплаты труда) -> активно не нанимают, а если и нанимают, то в основном джунов или топов
Про «активно не нанимают, а если и нанимают, то в основном джунов или топов» — это не моя выдумка или предположение, а то, что я вижу сейчас в BigTech компаниях
Но нанимают ли? ДА ДА ДА! Там половина бигтеха из кожи вон лезет, чтобы staff-инженеров к себе захапать быстренько, и X2 X3 наваливают офера, пока рынок замер
Во время сложных времён нужны исключительные люди. Те, которые имеют афигительную экспертизу в каком-то направлении, которую компания может раскешить в X10 для себя и обойти конкурентов
Кризис - время отчищения от конкурентов и шанс монополизации рынка. Кто такое упустит)
Ситуация со мной: я долго работал с высоконагруженным ClickHouse, и когда вышел на рынок, то резко стал получать офера 600 000+, хотя недавно вроде были все около 400 000
НО! Только в те команды, кому реально нужен был ClickHouse. В обычные команды — 500, ну 520 максимум
У меня появилась уникальность. Я буквально мог ответь на вопрос: «А чем ты лучше 99% кандидатов? Почему ты?»
Ко мне регулярно заходят рекрутеры, и в целом я как будто не ощутил особо, что кризис есть какой-то
А ты уже придумал, в чём будешь качать экспертизу, чтобы не утонуть в болоте рынка труда в 2026? Инвестиции в какой твой навык дадут наибольшую окупаемость тебе в ближайшие 3 года?
P.S. бахни 🌭 если задумался — ведь именно это главная цель поста.
А это значит, что ты уже на шаг впереди и можешь найти ответ на этот вопрос, пока остальные только начнут соображать, что вообще происходит
А это уже называется — конкрентное преимущество
Если наберем 100 🌭 расскажу про свои ставки
UPD: Кайф, сосисоны набрали - так что в понедельник сделаю пост об этом, включай уведомления, чтобы не пропустить
Сейчас кризис, денеги дорогие (высокие проценты для кредитов/инвестиций и т д) -> бизнесу тяжеловато. А что происходит, когда тяжело: срезают косты, в том числе на ФОТ (фонд оплаты труда) -> активно не нанимают, а если и нанимают, то в основном джунов или топов
Про «активно не нанимают, а если и нанимают, то в основном джунов или топов» — это не моя выдумка или предположение, а то, что я вижу сейчас в BigTech компаниях
Но нанимают ли? ДА ДА ДА! Там половина бигтеха из кожи вон лезет, чтобы staff-инженеров к себе захапать быстренько, и X2 X3 наваливают офера, пока рынок замер
Во время сложных времён нужны исключительные люди. Те, которые имеют афигительную экспертизу в каком-то направлении, которую компания может раскешить в X10 для себя и обойти конкурентов
Кризис - время отчищения от конкурентов и шанс монополизации рынка. Кто такое упустит)
Ситуация со мной: я долго работал с высоконагруженным ClickHouse, и когда вышел на рынок, то резко стал получать офера 600 000+, хотя недавно вроде были все около 400 000
НО! Только в те команды, кому реально нужен был ClickHouse. В обычные команды — 500, ну 520 максимум
У меня появилась уникальность. Я буквально мог ответь на вопрос: «А чем ты лучше 99% кандидатов? Почему ты?»
Ко мне регулярно заходят рекрутеры, и в целом я как будто не ощутил особо, что кризис есть какой-то
А ты уже придумал, в чём будешь качать экспертизу, чтобы не утонуть в болоте рынка труда в 2026? Инвестиции в какой твой навык дадут наибольшую окупаемость тебе в ближайшие 3 года?
P.S. бахни 🌭 если задумался — ведь именно это главная цель поста.
А это значит, что ты уже на шаг впереди и можешь найти ответ на этот вопрос, пока остальные только начнут соображать, что вообще происходит
А это уже называется — конкрентное преимущество
Если наберем 100 🌭 расскажу про свои ставки
UPD: Кайф, сосисоны набрали - так что в понедельник сделаю пост об этом, включай уведомления, чтобы не пропустить
🌭168🤣5
Какая ставка сыграет в 2026 на рынке труда?
Расскажу, на что ставлю лично я — и почему именно так:
- System Design
- Опыт управления командой
- Алгоритмы
- Golang
- ClickHouse
- Kafka
В моём случае это тот набор, который я буду шлифовать до блеска. Особенно — менеджмент. Для меня это сейчас ключевая точка роста
Я не буду тратить время на PostgreSQL, RabbitMQ и ещё тысячу технологий.
Но в тех, что выбрал — я буду просто богом
Очень давно замечаю тренд на вечных среднячков:
- «Средне» знаю PostgreSQL
- «Средне» знаю Kafka
- «Средне» знаю K8s
- «Средне» знаю всё…
И зарплата, соответственно, тоже средняя.
Это нормально, пока ты растёшь до мидла.
Но что потом?
Как конкурировать с человеком, который 10 лет работает с ClickHouse, если это ключевая технология в вакансии?
Никак!
Нужно самому стать тем чуваком с 10 годами опыта.
И ты автоматически попадёшь в топ-1% рынка.
А если хотя бы немного подтянешь медийку — компании сами будут просить тебя забрать у них деньги, лишь бы ты решил их проблему
Но возникает вопрос:
- Когда менять стек, который выбрал?
- Что делать, если ставка не сыграет и ClickHouse станет не актуален?
- И есть ли что-то, на что я ставлю даже сильнее, чем на ClickHouse?
Если соберём 100 🌭 — запишу большой подробный видос на тему
«Нечестная конкуренция: как получать ЗП выше рынка»
и разберу всё от и до
А какие ставки у тебя?
UPD: видосу быть!
Расскажу, на что ставлю лично я — и почему именно так:
- System Design
- Опыт управления командой
- Алгоритмы
- Golang
- ClickHouse
- Kafka
В моём случае это тот набор, который я буду шлифовать до блеска. Особенно — менеджмент. Для меня это сейчас ключевая точка роста
Я не буду тратить время на PostgreSQL, RabbitMQ и ещё тысячу технологий.
Но в тех, что выбрал — я буду просто богом
Очень давно замечаю тренд на вечных среднячков:
- «Средне» знаю PostgreSQL
- «Средне» знаю Kafka
- «Средне» знаю K8s
- «Средне» знаю всё…
И зарплата, соответственно, тоже средняя.
Это нормально, пока ты растёшь до мидла.
Но что потом?
Как конкурировать с человеком, который 10 лет работает с ClickHouse, если это ключевая технология в вакансии?
Никак!
Нужно самому стать тем чуваком с 10 годами опыта.
И ты автоматически попадёшь в топ-1% рынка.
А если хотя бы немного подтянешь медийку — компании сами будут просить тебя забрать у них деньги, лишь бы ты решил их проблему
Но возникает вопрос:
- Когда менять стек, который выбрал?
- Что делать, если ставка не сыграет и ClickHouse станет не актуален?
- И есть ли что-то, на что я ставлю даже сильнее, чем на ClickHouse?
Если соберём 100 🌭 — запишу большой подробный видос на тему
«Нечестная конкуренция: как получать ЗП выше рынка»
и разберу всё от и до
А какие ставки у тебя?
UPD: видосу быть!
🌭185🤣2🍓1
Тернарный поиск — вот это я понимаю!
Все про бинарный знают, а о тернарном почти никто не слышал. А ведь на собеседовании им можно красиво блеснуть, ослепив интервьюера своим скилом)
Он применяется в задачах, где функция сначала растёт, а потом падает — или наоборот.
Результат тернарного поиска — точка максимума или минимума
Пример задачки: Скорость болида на каждом километре:
Скорость сначала растёт, потом падает — унимодальна.
Нужно найти километр, на котором скорость максимальная
Сюда! Это чисто тернарный поиск.
Выглядит похоже на бинарный, но использует два серединных индекса и сужает диапазон в зависимости от сравнения
Пример кода:
Время: O(log₃ n)
Память: O(1)
А это как говорится вам не по циклу пройтись и все варианты перебрать, а кратно быстрее
Ну и если постец дочитываю до конца, то всегда поддержу автора и бахну ему сосисон 🌭
Все про бинарный знают, а о тернарном почти никто не слышал. А ведь на собеседовании им можно красиво блеснуть, ослепив интервьюера своим скилом)
Он применяется в задачах, где функция сначала растёт, а потом падает — или наоборот.
Результат тернарного поиска — точка максимума или минимума
Пример задачки: Скорость болида на каждом километре:
Км: 0 1 2 3 4 5
V: 30 48 62 70 65 40
Скорость сначала растёт, потом падает — унимодальна.
Нужно найти километр, на котором скорость максимальная
Сюда! Это чисто тернарный поиск.
Выглядит похоже на бинарный, но использует два серединных индекса и сужает диапазон в зависимости от сравнения
Пример кода:
def ternary_search_max(a):
l, r = 0, len(a) - 1
while r - l > 3:
m1 = l + (r - l) // 3
m2 = r - (r - l) // 3
if a[m1] < a[m2]:
l = m1
else:
r = m2
# выбираем максимум на оставшемся участке
return max(range(l, r + 1), key=lambda i: a[i])
a = [30, 48, 62, 70, 65, 40]
print(ternary_search_max(a)) # 3
Время: O(log₃ n)
Память: O(1)
А это как говорится вам не по циклу пройтись и все варианты перебрать, а кратно быстрее
Ну и если постец дочитываю до конца, то всегда поддержу автора и бахну ему сосисон 🌭
🌭151
Пост под тихую
Пятница — все расслабились и вряд ли прочитают пост до конца, а с тобой поделюсь
Пока составлял программу курса по графам, уделил особое внимание оптимизациям, чтобы все их рассмотреть. Особенно в таких попсовых темах, как:
- Обход в глубину (DFS)
- Обход в ширину (BFS)
Например:
Если задача решается DFS/BFS и можно изменять входной массив — не обязательно аллоцировать used/visited-массив. Можно редактировать исходный и сэкономить память (неасимптотическая оптимизация)
НО! Только если можно менять исходный массив
И вот тут как раз рождается сильная экспертиза — казалось бы узкий кейс, но теперь ты на собеседовании осознанно можешь зачитать такой монолог:
И именно благодаря набору таких узких кейсов и на собеседовании и при разборе разных решений рождается спокойствие
Ты просто уже все это знаешь
Ты все это видел
И знаешь наверняка в каком кейсе, какое решение оптимально
И я собрал вообще все такие кейсы в ходе анализа множества задач и решений на LeetCode, статей и YouTube. И конечно, задач с собеседований RU BigTech.
25 ноября стартую с ребятами в живом формате курс по графам.
И там раскрою все карты, чтобы дать то самое конкурентное преимущество в алгоритмах
А со всеми вами обязательно поделюсь самым ключевым!
В общем, если есть кайф — заходи в сообщество. Все записи созвонов и задачи курса будут там:
https://algocode.io/community
Пятница — все расслабились и вряд ли прочитают пост до конца, а с тобой поделюсь
Пока составлял программу курса по графам, уделил особое внимание оптимизациям, чтобы все их рассмотреть. Особенно в таких попсовых темах, как:
- Обход в глубину (DFS)
- Обход в ширину (BFS)
Например:
Если задача решается DFS/BFS и можно изменять входной массив — не обязательно аллоцировать used/visited-массив. Можно редактировать исходный и сэкономить память (неасимптотическая оптимизация)
НО! Только если можно менять исходный массив
И вот тут как раз рождается сильная экспертиза — казалось бы узкий кейс, но теперь ты на собеседовании осознанно можешь зачитать такой монолог:
> «А тут можно менять входные данные?
> Если да — и они потом не используются — то сэкономлю память на хранении посещённых вершин и буду перезаписывать входные значения для маркировки уже пройденных вершин.
> Если нет — то тут по классике решу…»
И именно благодаря набору таких узких кейсов и на собеседовании и при разборе разных решений рождается спокойствие
Ты просто уже все это знаешь
Ты все это видел
И знаешь наверняка в каком кейсе, какое решение оптимально
И я собрал вообще все такие кейсы в ходе анализа множества задач и решений на LeetCode, статей и YouTube. И конечно, задач с собеседований RU BigTech.
25 ноября стартую с ребятами в живом формате курс по графам.
И там раскрою все карты, чтобы дать то самое конкурентное преимущество в алгоритмах
А со всеми вами обязательно поделюсь самым ключевым!
В общем, если есть кайф — заходи в сообщество. Все записи созвонов и задачи курса будут там:
https://algocode.io/community
🍓16🌭7
Главный стоп-фактор роста middle-разработчика
На каждом грейде есть ключевые компетенции, влияние на которые сразу бустит на следующую карьерную ступень
Некий джетпак!
Погоняли тут со знакомым лидом на выходных эту тему, чтобы найти ТОП-1 маркер, по которому тебя будут хотеть повысить быстрее, чем других
Чтобы твой лид буквально молил тебя перейти на следующий грейд
Мы сошлись на том, что это — самостоятельное принятие решений
После этого я рефлексировал и действительно нашёл этому множество подтверждений: как только появляется собственное видение продукта, как только появляется самостоятельность в принятии решений и готовность взять за них ответственность —
это сразу +1 уровень в карьере. Просто моментально
Если соберём 100 🌭 — расскажу на неделе про Senior
UPD: посту быть, в пятницу напишу
На каждом грейде есть ключевые компетенции, влияние на которые сразу бустит на следующую карьерную ступень
Некий джетпак!
Погоняли тут со знакомым лидом на выходных эту тему, чтобы найти ТОП-1 маркер, по которому тебя будут хотеть повысить быстрее, чем других
Чтобы твой лид буквально молил тебя перейти на следующий грейд
После этого я рефлексировал и действительно нашёл этому множество подтверждений: как только появляется собственное видение продукта, как только появляется самостоятельность в принятии решений и готовность взять за них ответственность —
это сразу +1 уровень в карьере. Просто моментально
Если соберём 100 🌭 — расскажу на неделе про Senior
UPD: посту быть, в пятницу напишу
🌭160❤🔥2🍓2
Как обгонять на карьерных поворотах?
Вчера на вступительной лекции сообщества курса по графам (ага, в начале всегда мотивация) рассказал про простую формулу
РЕЗУЛЬТАТ = ТОЧНОСТЬ * СИЛА
Точность — это то, насколько правильным и перспективным путём ты идёшь
Сила — это то, как много усилий прилагаешь для результата
Вкладываться в сильных со стороны компании очень выгодно. Показал траекторию, а он там всех дёрнул и точность накачал как бицуха Шварценеггера
Направить как правило не сложно, сложно сделать и результат показать
Я выбрал ебашить и ни разу не пожалел. Work Life Balance? - у меня его нет. Но карьера - прям как мечтал в 20
А на что ставку сейчас делаешь ты? На силу или точность?
----
P.S. Узнал тут про чела с 30+ лет опыта, который работает +-1 час в день и получают по 2 000 000 в месяц за свою экспертизу в архитектуре
Но как же он ебашил, когда ему было 20
Вчера на вступительной лекции сообщества курса по графам (ага, в начале всегда мотивация) рассказал про простую формулу
РЕЗУЛЬТАТ = ТОЧНОСТЬ * СИЛА
Точность — это то, насколько правильным и перспективным путём ты идёшь
Сила — это то, как много усилий прилагаешь для результата
Вкладываться в сильных со стороны компании очень выгодно. Показал траекторию, а он там всех дёрнул и точность накачал как бицуха Шварценеггера
Направить как правило не сложно, сложно сделать и результат показать
Я выбрал ебашить и ни разу не пожалел. Work Life Balance? - у меня его нет. Но карьера - прям как мечтал в 20
А на что ставку сейчас делаешь ты? На силу или точность?
----
P.S. Узнал тут про чела с 30+ лет опыта, который работает +-1 час в день и получают по 2 000 000 в месяц за свою экспертизу в архитектуре
Но как же он ебашил, когда ему было 20
🌭18❤🔥5🤣4
Главный стоп-фактор для Senior
Senior может расти и в лида, и в IC, но я хочу вывести тебя на самую суть - общий стоп-фактор, который работает в любой ветке развития!
Вот несколько примеров из моей практики и практики знакомых лидов:
«Был парень, который схватывал на лету, но недавно в команде. И был тот, кто давно в проекте. Производительность примерно одинаковая, но повысили более опытного — он лучше знал проект».
«Был человек, который очень круто шарил за технику и давно был в проекте, рвался в лиды. И был менее прошаренный в технологиях, но с опытом управления. Взяли того, у кого был опыт управления».
Кажется, что закономерность очевидная?
Тогда ещё пример:
«Был очень резвый парниша — взяли его без опыта вместо человека с опытом управления».
WTF?
Всё просто:на высоких грейдах повышают того, в кого верят. Того, кто точно справится
А критерии доверия у каждого лида чуть отличаются. Так почему бы их не узнать и не забрать должность о которой давно мечтал)
А ты уже понял, что важно твоему лиду?
Если пост зашёл, бахни 🌭. Тебе секунда — а я на следующей неделе заряжен буду деливерить ещё более сочный контент!
Senior может расти и в лида, и в IC, но я хочу вывести тебя на самую суть - общий стоп-фактор, который работает в любой ветке развития!
Вот несколько примеров из моей практики и практики знакомых лидов:
«Был парень, который схватывал на лету, но недавно в команде. И был тот, кто давно в проекте. Производительность примерно одинаковая, но повысили более опытного — он лучше знал проект».
«Был человек, который очень круто шарил за технику и давно был в проекте, рвался в лиды. И был менее прошаренный в технологиях, но с опытом управления. Взяли того, у кого был опыт управления».
Кажется, что закономерность очевидная?
Тогда ещё пример:
«Был очень резвый парниша — взяли его без опыта вместо человека с опытом управления».
WTF?
Всё просто:
А ты уже понял, что важно твоему лиду?
Если пост зашёл, бахни 🌭. Тебе секунда — а я на следующей неделе заряжен буду деливерить ещё более сочный контент!
🌭129❤🔥3
🔥 Чёрная пятница в Algocode — скидка 50%
Доступ ко всем курсам сразу:
• System Design для собеседований
• Алгоритмы для собесов
• Графы: с нуля до PRO
• Алгоритмы для Яндекса
• Golang для собеседований
И это ещё не всё 👇
🎁 Так же скоро в подписке:
• Курс по поиску работы: "Стабильные отклики в нестабильные времена"
• SQL для собесов
• Java для собесов
Получается: платишь за весь контент сейчас и всё, что выйдет дальше получаешь на халяву!
⏳ Только до 31 декабря
Потом повысим цены
Оформи подписку, если устал получать отказы от рекрутеров и жаждешь карьерного буста в
https://algocode.io/community#subscriptions
P.S. Всем, у кого уже есть подпискамогут перейти на более выгодный тариф, но только до 31 декабря
Доступ ко всем курсам сразу:
• System Design для собеседований
• Алгоритмы для собесов
• Графы: с нуля до PRO
• Алгоритмы для Яндекса
• Golang для собеседований
И это ещё не всё 👇
🎁 Так же скоро в подписке:
• Курс по поиску работы: "Стабильные отклики в нестабильные времена"
• SQL для собесов
• Java для собесов
Получается: платишь за весь контент сейчас и всё, что выйдет дальше получаешь на халяву!
⏳ Только до 31 декабря
Потом повысим цены
https://algocode.io/community#subscriptions
P.S. Всем, у кого уже есть подписка
❤🔥14
Как объяснять графы на собесе без паники?
Есть 4 шага, которые интервьюер должен услышать
Не сказал — готовься к странным уточняющим вопросам
Касается задач на обходы (DFS/BFS)
- Откуда запускаем обход
- Когда вершину не посещаем
- Что делаем при обработке вершины
- Каких соседей вершины обходим
Без этих 4 пунктов тебя размотают быстрее клубка шерсти в лапах кошки
Пример на 30 секунд легко это исправить:
Просто придерживайся этой структуры, если не знаешь с чего начать
Ну и бахни 🌭 по-братски, а я пойду еще пост полезный напишу для тебя
Есть 4 шага, которые интервьюер должен услышать
Не сказал — готовься к странным уточняющим вопросам
- Откуда запускаем обход
- Когда вершину не посещаем
- Что делаем при обработке вершины
- Каких соседей вершины обходим
Без этих 4 пунктов тебя размотают быстрее клубка шерсти в лапах кошки
Пример на 30 секунд легко это исправить:
Задача: Нужно посчитать число компонент связности
Хороший ответ для рекурсивного DFS:
1) Запускаю DFS из каждой вершины, пропуская посещённые
2) Внутри DFS проверяю, что вершина ещё не была посещена
3) Помечаю её как посещённую
4) Обхожу всех соседей из списка смежности
После каждого запуска увеличиваю количество компонент
Просто придерживайся этой структуры, если не знаешь с чего начать
Ну и бахни 🌭 по-братски, а я пойду еще пост полезный напишу для тебя
🌭105
