TGViewer
Algorithmics: хакаем алгоритмические собесы Algorithmics: хакаем алгоритмические собесы @algorithmics_cl · 1.44K subscribers
Post #7 845
Как готовиться?

Решение алгоритмических задач (во всяком случае на том уровне, который вам понадобится на собеседованиях) - это навык. И как любой другой навык, его можно наработать и довести до совершенства (было бы желание).

Что нужно, чтобы начать прорабатывать этот навык?

🔘 Базовое знание любого языка программирования

Можно, конечно, использовать псевдокод или рисовать блок-схемы, но, раз вы готовитесь к прохождению этой секции, скорее всего от вас так или иначе потребуется знание какого-нибудь языка :). Обычно, для решения базовых алгоритмических задачек достаточно уметь работать с условными конструкциями и циклами, уметь отличить указатель от экземпляра и знать несколько дефолтных функций (отсортировать массив, извлечь/добавить элемент в массив, проверить наличие элемента в хеш-мапе и т.д.)

🔘 Минимальное количество теории

Вам точно не обойтись без понимания таких структур данных, как строка, массив и хеш-мапа. Иногда вам может потребоваться понимание очереди и стека. Чуть реже вам потребуются связанные списки и деревья (а также понимание рекурсии, чтобы можно было их обходить) и кучи. Также, вам придется оценивать и сравнивать алгоритмы между собой - тут вам понадобится зверь по имени «асимптотическая сложность». Не пугайтесь названия, это не так сложно, но точно нужно уметь ее посчитать.

🔘 Много практики

Чем больше, тем лучше. Знатоки говорят, что вам в среднем потребуется прорешать 500-800 задач, чтобы окончательно перевести этот навык в разряд мастерски освоенных.

🔘 Читать наш канал 🙂

Несмотря на то, что это шутка, в ней есть доля правды. Посмотреть за процессом решения или попробовать научить решать других - тоже один из способов обучения. Более того, часть задач можно отнести к категории «посмотреть как решать задачу, запомнить и пойти дальше». Обычно у таких задач просто есть канонически верное решение.

Стоит оговориться, что тут речь идет о базовом наборе для старта. Естественно, сами алгоритмы и структуры данных являются одним из основополагающих кирпичиков в computer science. Теория же практически необъятна. Начав с десятка базовых алгоритмов и структур, спустя тысячи часов изучения и практики можно прийти к академическому уровню познания. Обычно, люди, идущие этим путем занимаются разработкой уникальных систем, например, алгоритмов для работы распределенных систем, которые впоследствии используются повсеместно.

НО, сейчас перед нами не стоит подобных грандиозных задач. Наша цель куда ближе и проще - научиться решать простые локальные задачки и понимать как строятся и работают базовые структуры. Поэтому, я точно не советую вам закапываться в теорию. Вам точно не нужно читать все 7 томов «Искусства программирования» Кнута перед тем как приступать к практике.
  • ❤ 5
  • 👍 1
  • 🔥 1
More from @algorithmics_cl
  1. Feb 8, 2025Количество провинций Давайте закрепим знания про Disjoint Set новой задачей. Сложность: 🟡…
  2. Feb 4, 2025Disjoint Set Привет, друзья! Сегодня мы с вами не будем решать конкретную задачу, а познак…
  3. Dec 4, 2024Так как в этой задаче баланс между операциями записи и чтения смещен в сторону записи, нам…
  4. Dec 4, 2024Система поиска подсказок Ранее мы уже разбирали задачу, в которой нужно было реализовать с…
  5. Oct 29, 2024Префиксное дерево (Trie) Префиксное дерево, или Trie (произносится как «три») — это структ…
  6. Oct 11, 2024Максимальная сумма парных элементов связного списка Продолжаем изучение связанных списков…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →