Из-за этой ошибки разработчики безрезультатно тратят дни и месяцы.

Как некоторые из вас, возможно, знают, я работал с людьми, помогая им пройти собеседование в Leetcode. Поделившись своими знаниями о программировании, Leetcode и системном дизайне, я смог создать сообщество из более чем 30 000 инженеров-программистов, менеджеров по продуктам и студентов, которые стремятся пройти собеседование по программированию и сделать следующий шаг в своей карьере.

Какими бы бесполезными они ни были, интервью Leetcode не исчезнут в ближайшее время. По мере улучшения ситуации на рынке компании снова начнут активно нанимать сотрудников. На данный момент я общался с сотнями кандидатов, которые хотят пройти собеседование и вывести свои навыки на новый уровень. В своих беседах с этими людьми я заметил огромную ошибку, которую совершают многие люди, готовящиеся к этим интервью. Эта ошибка является источником месяцев разочарований и неудач и в конечном итоге заставляет многих людей сдаваться. В этой статье я расскажу, что это за ошибка, почему это проблема и что вы должны сделать, чтобы ее исправить.

Готовитесь к интервью Leetcode? Не пропустите это

Присоединяйтесь к более чем 34 тысячам пользователей и получайте самые важные идеи в области искусственного интеллекта и машинного обучения бесплатно на свой почтовый ящик

Самая большая ошибка в литкоде, которую вы, вероятно, совершаете

Leetcode — это не DSA. Если говорить прямо по делу, то ошибка, которую совершают бесчисленные аспиранты, состоит в том, что они путают изучение DSA (структур данных и алгоритмов) с изучением, которое необходимо для того, чтобы хорошо разбираться в проблемах Leetcode. . Это легко допустить ошибку (большинство людей, давая советы, сокращенно называют подготовку Leetcode подготовкой к DSA). К сожалению, это приводит к тому, что многие люди погружаются в ад учебных пособий, где они продолжают смотреть видео на YouTube/покупать книги на DSA, никуда не идя. Leetcode и DSA — это отдельные навыки (связанные, но очень разные по своей природе), и поэтому к ним следует относиться соответственно. Давайте теперь рассмотрим изучение одного, чтобы освоить другое, — это пустая трата времени.

Почему вам не следует тратить свое время на изучение DSA для Leetcode. Предположим, что вы тот, кто хочет изучать структуры данных и алгоритмы только для целей Leetcode (к сожалению, это подавляющее большинство людей, которых я говорить с). В этом случае тратить часы на книги/курсы/видео, посвященные изучению различных структур данных и алгоритмов — как они устроены, их мелкие детали и т. д. — огромная трата времени. Все, что вам действительно нужно, это следующее: предыстория того, почему структура данных/алгоритм полезна, 5 простых примеров того, как эта идея проявляется в вопросе Leetcode (сохраняйте примеры как можно более прямыми на этом шаге. У вас достаточно времени, чтобы пофантазируйте) и соответствующую временную/пространственную сложность. Вам действительно не нужно знать слишком много, чтобы справиться с вопросами Leetcode. Изучение помимо этого отнимает время, которое вы потратите на отработку проблем с Leetcode / перерывы, что в конечном итоге сводит на нет цель. Сосредоточение внимания на чем-либо подобно тому, как если бы вы следовали тренировочной программе олимпийских спринтеров, чтобы стать лучше в футболе (⚽⚽). Да, футбол требует сильной способности бегать, но реально тренироваться можно только так много. Вам лучше работать над упражнениями, которые помогут вам стать лучше в футболе.

Как изучить DSA для Leetcode-

Итак, как вы можете эффективно изучать DSA для Leetcode? Процесс состоит из нескольких этапов:

  1. Черный ящик. Первым шагом является создание черного ящика для DS/A. Проще говоря, поймите две вещи: входные данные, которые он принимает, и результаты, которые он генерирует. Тщательно изучите этот этап — если кто-то попросит вас найти значение в отсортированном списке, вы должны кричать о бинарном поиске, даже если вы еще не можете реализовать бинарный поиск. Это все, что вам нужно сделать на данном этапе; это просто о создании узнаваемости. Если вы скептически относитесь к этому, Лучший конкурентоспособный программист, Колин Гален, также говорил о том, что этот метод — находка, помогающая работать со сложными идеями. Мы также рассказали о пользе черного ящика в посте Как очень быстро выучить новую кодовую базу.
  2. Создание ассоциаций с кодом.Следующий шаг — перевернуть ваш теоретический черный ящик и начать строить ассоциации с кодом. Это делается путем работы над простыми задачами, связанными с вашим конкретным DS/A. Этот шаг имеет решающее значение, чтобы помочь вам с механикой идеи (быстрая реализация основных функций). Я рекомендую использовать простые вопросы для этого этапа (почти исключительно). Чтобы узнать больше об этом, прочитайте пост Как использовать Easy Leetcode Problems.
  3. Повторяйте. Когда вы пытаетесь решить каждую проблему, важно записывать свой опыт решения проблемы. Где ты борешься? Чем ваше решение отличается от фактического решения? Является ли ваше знание проблемы (обнаружение BFS) или реализация (кодирование)? Это поможет вам постоянно работать над своими слабостями.
  4. Создание фреймворка.По мере того, как вы становитесь более продвинутым, может быть полезно создавать фреймворки/шаблоны для решения определенных проблем. Изучая несколько задач одной и той же темы, вы обнаружите сходства, которые можно абстрагировать в шаблон. Это изменит правила игры и поможет вам быстрее решать проблемы (и поможет с уверенностью). В качестве примера шаблонов, которые могут быть полезны, посмотрите шаблон рекурсивной функции, который я описал здесь, который помог множеству людей решить свои проблемы с Leetcode, связанные с рекурсией.

Почему вам не следует использовать Leetcode для изучения DSA-

Я также говорил с некоторыми людьми, которые думают, что изучения Leetcode достаточно, чтобы освоить DSA. Даже сложные проблемы с Leetcode очень мало влияют на освоение DS/A для вашей работы в качестве инженера-программиста. Вот несколько причин, почему:

  • Проблемы с Leetcode часто очень специфичны и не дают хорошего представления об основных концепциях. У них есть очень подробные рекомендации (сколько раз ваши клиенты очень четко сообщают вам о входных данных, выходных данных и ограничениях).
  • Проблемы с Leetcode часто разрабатываются так, чтобы быть сложными, что может привести к разочарованию и разочарованию.
  • Проблемы с литкодом не учат вас думать о проблемах в общих чертах.

Следующий шаг — полагаться на книги / курсы и т. Д. Они лучше, но все же не оптимальны. Эти источники дают вам много знаний, но упускают один важный аспект, который имеет решающее значение для освоения DSA на этапе приложения — контекст. Я мог бы превзойти вас с моим 600-страничным учебником по абстрактной алгебре до тех пор, пока вы не запомните каждое слово и не сможете решить каждую задачу, но это может не отразиться на вашей способности использовать группы для лучшего проектирования объектов. Гораздо проще указать вам на инженерный блог/выступление, где команда рассказывает о своих проблемах и о том, чем полезна теория групп.

Как учиться на основе инженерных блогов/выступлений. У меня есть целая статья о том, как люди могут использовать научные статьи/блоги, чтобы добиться успеха в машинном обучении. Используйте метод, упомянутый там, но замените ML тем, что вы хотите изучить. Это действительно так. Важно понимать, что отраслевые инструменты и СОП постоянно меняются. Важно учиться немного регулярно, а не перегружать свое обучение в течение нескольких месяцев, а затем не поддерживать связь с полем.

Это все для этого произведения. Я ценю ваше время. Как всегда, если вы хотите поработать со мной или ознакомиться с другими моими работами, мои ссылки будут в конце этого письма/сообщения. «Если вам нравится то, что я пишу, я был бы очень признателен за анонимный отзыв. Вы можете бросить его здесь. И если вы нашли ценность в этой статье, я был бы признателен, если бы вы поделились ею с большим количеством людей. Рекомендации из уст в уста, такие как ваши, помогают мне расти.

Сэкономьте время, энергию и деньги, просмотрев все эти видео, курсы, продукты и "тренеров" и легко найдя все, что вам нужно, в одном месте Технологии стали проще! Оставайтесь на шаг впереди в области искусственного интеллекта, разработки программного обеспечения и технической отрасли с помощью экспертных идей, советов и ресурсов. Скидка 20 % для новых подписчиков, перешедших по этой ссылке. Подпишитесь сейчас и упростите свое путешествие в мир технологий!

Использование этой скидки снизит цены-

800 индийских рупий (10 долларов США) → 640 индийских рупий (8 долларов США) в месяц

8000 индийских рупий (100 долларов США) → 6400 индийских рупий (80 долларов США) в год (533 индийских рупии в месяц)

Получи скидку 20% на 1 год

Свяжитесь со мной

Воспользуйтесь ссылками ниже, чтобы ознакомиться с другим моим контентом, узнать больше о репетиторстве, связаться со мной по поводу проектов или просто поздороваться.

Небольшие фрагменты о технологиях, искусственном интеллекте и машинном обучении здесь

Информационный бюллетень ИИ- https://artificialintelligencemadesimple.substack.com/

Любимый технический бюллетень моей бабушки — https://codinginterviewsmadesimple.substack.com/

Ознакомьтесь с другими моими статьями на Medium. : https://rb.gy/zn1aiu

Мой Ютуб: https://rb.gy/88iwdd

Свяжитесь со мной в LinkedIn. Подключаемся: https://rb.gy/m5ok2y

Мой Инстаграм: https://rb.gy/gmvuy9

Мой Твиттер: https://twitter.com/Machine01776819