Никита Глухов

+2
с 2019
0 подписчиков
26 подписок

Не, общие знания - это помнить, как считать Big-O, мочь назвать асимптотику операций для основных коллекций (массив, хэш-таблица, связный список, двоичная куча, сбалансированное дерево поиска), а так же стоимость основных алгоритмов: поиск (линейный, двоичный), сортировка (самые ходовые - быстрая, слиянием, пирамидальная), алгоритмы на графах (обход в ширину/глубину, топологическая сортировка, раскраска, Дейкстра). Это все, что нужно знать "в идеале" для разработки обычного микросервисного CRUD-a, т.к. там железных только 2 правила хорошего кода касательно производительности:
1. Стараться писать алгоритмы под задачу так, чтобы они были однопроходными.
2. Агрессивно кэшировать.
Остальное касается скорее сопровождаемости кода на длинной дистанции в масштабах команды (всякие солиды, граспы и прочие вещи, которые касаются не производительности кода, а его структуризации).
Если же контора на собесе дает задачи на всякое динамическое программирование, деревья отрезков и прочие вещи, релевантные для задач из мира спортивного программирования - такая контора идет на йух. Просто в моменте прощаешься с интервьювером и завершаешь звонок.

Имхо, разработка (галера ли или продуктовая - неважно) - это наемничество. Разработчику глубоко похуй даже на название компании, где он работает и на продукт/проект. У него есть 1 обязанность - не проебываться по дедлайнам задач, делать их качественно (для того, чтобы делать качественно, достаточно любить разработку, а не заказчика/работодателя и его проекты) и всегда быть на связи. Тут всегда социальная игра формата "сделка" - разработчик называет цифру X, за сколько он может сделать задачу, работодатель в лице промежуточного начальника (тимлид/PM/etc) хочет, чтобы было сделано за (обычно меньший) Y. Через диалог они приходят к конкретной цифре, на которую оба согласны. Разработчик в тайминг на задачу, очевидно, закладывает умеренное раздувание сроков, чтобы делать не в "напряг". Не вижу на удаленке проблем с тем, если нужно в рабочее время куда-то уехать, то кидаю в тачку рабочий ноут, а на мобильнике установлены Slack и Zoom. Если написали что срочно на какой-то созвон или MR посмотреть в гитлабе - без проблем, припарковался или забежал в кафе, сделал. А как, где и когда я делаю продуктовую задачу работодателя ебать не должно, у него есть только дедлайн задачи, к которому должно быть все сделано. Если не сделано - имеет полное право уволить, потому что я сам давал согласие на такие сроки и не уложился. В остальном - идёт нахуй со своими корпоративами, тимбилдингами, KPI и анальными зондами.

1