На долгом пути изучения алгоритмов многие люди продвигаются вперед, но часто сбиваются с пути. Недавно, оглядываясь назад на свой процесс обучения, я глубоко осознал, что у многих моих друзей были серьезные проблемы с изучением алгоритмов и структур данных. Имея многолетний опыт изучения алгоритмов, я надеюсь, что мои идеи помогут всем прояснить туман и осветить путь вперед. Далее я сначала продемонстрирую ошибки, затем объясню правильный метод обучения, кратко обсужу ключевые моменты собеседования и рассмотрю сценарии вопросов.
Метод обучения во многих учебниках по алгоритмам подобен изучению китайского языка с помощью современного китайского словаря. В качестве примера возьмем главу о связанном списке. С самого начала мы непосредственно определяем связанный список, рисуем диаграмму для объяснения, а затем перечисляем общие операции, такие как поиск и вставка узлов. Студенты вроде бы понимают, но на самом деле не могут вспомнить. Они все еще полны сомнений: какая польза от связанных списков? Зачем учиться? Где вы использовали полученные знания? Эти вопросы могут оставаться без ответа, пока вы не прочтете всю книгу. Большинство курсов передают знания таким образом. Чтобы помочь всем более четко понять проблему, я специально проверил два курса по открытым структурам данных от ведущих зарубежных университетов: 6.006 MIT и CS106B Стэнфорда (оба курса можно посмотреть онлайн бесплатно).
Даже если вы правильно учитесь, как упоминалось выше, вам все равно нужны навыки, чтобы успешно сдать экзамены и собеседования. Во время собеседования недостаточно знать, что такое связанный список. Что ценит интервьюер, так это ваша способность использовать связанные списки для решения сложных задач в реальных проектах. Например, в своем резюме я упомянул создание сетевой игры с несколькими пулями. Однако игра лагает из-за слишком большого количества пуль. В это время тысячи маркеров были заранее инициализированы с использованием связанного списка и был создан пул объектов маркеров, что эффективно решило проблему задержки. Во время собеседования в сочетании с реальным соревнованием оно оставит у интервьюера глубокое впечатление. Другой пример — использование связанных списков для реализации распределения памяти операционной системы, использование связанных списков для соединения памяти, а также вырезание и вставка узлов в зависимости от использования. Это приложение более убедительно на собеседовании, чем простое описание концепции связанного списка. Если вы хотите узнать больше о практическом применении структур данных, вы можете обратиться к инструментам искусственного интеллекта.
При изучении вопросов многие учебники часто дают ответы сразу после того, как вопросы заданы. Однако на самом деле нужно изучать не сами вопросы и ответы, а извилистый мыслительный процесс от вопросов к ответам. Есть книга «Как решать проблемы». Хотя основное внимание уделяется математике, здесь не преподаются конкретные проблемы, а преподаются идеи решения проблем, которые заслуживают внимания каждого. То же самое верно и при опросе вопросов по алгоритмам. Если вы после трех минут молчания напишете свои ответы прямо на доске, вы оставите у интервьюера только общее впечатление, поскольку он не сможет понять ваше мышление и коммуникативные навыки и даже может заподозрить, что вы запомнили вопросы. . Во время интервью полностью общайтесь с интервьюером и покажите свой мыслительный процесс. Даже если вы столкнетесь с вопросом, который не понимаете, возможно, вы сможете получить подсказки благодаря хорошему общению и, наконец, дать ответ на вопрос.
Оглядываясь назад на свою учебную карьеру, я обнаружил, что более половины курсов и учебников использовали зубрежку для привития знаний. Я надеюсь, что, изучив эту статью, вы сможете избежать недопонимания, связанного с обучением алгоритмам, и найти подходящий вам путь обучения. Если эта статья оказалась для вас полезной, не забудьте нажать три раза. Вы также можете поделиться своим опытом обучения и вопросами в области комментариев, чтобы мы могли вместе добиться прогресса на пути изучения алгоритмов.
Опубликовать в Twitter Опубликовать в Facebook
Комментарии
Пока комментариев нет