Почему превращение LeetCode в повседневную привычку — ключ к развитию навыков и карьерному росту

Почему превращение LeetCode в повседневную привычку — ключ к развитию навыков и карьерному росту

20 декабря 2023 г.

Привет, коллеги!

По мере приближения конца 2023 года LeetCode награждает активных участников значками. Я последовательно решал проблемы более 300 дней и заслужил этот значок.

Oo

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

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

В этой статье я хочу поделиться отличным лайфхаком, как всегда оставаться на плаву на IT-рынке и поддерживать себя в форме, уделяя всего 10-30 минут в день по утрам. Для начала просто выделите перед работой 10 или более минут. Я начал свой рабочий день с простой задачи.

Вместо того, чтобы пить кофе и читать статьи, я начал с чтения задач. Позже я изменил это занятие после растяжки и перед завтраком – короткий период, чтобы проснуться, собраться и включить свой мозг. В результате кофе стал не нужен:с облегчением:

В этой краткой статье мы рассмотрим:

  • Два ценных ресурса, с одним из которых вы уже знакомы — LeetCode, а на другом — отличный бесплатный план изучения шаблонов, а также описание проблем на YouTube.

* Стратегии для поиска времени и определения оптимальных инвестиций времени.

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

Частично это так, но когда мы начинаем смотреть не только на API-библиотеки высокого уровня, но и углубляться в логику, мы начинаем удивляться. Работая со временем, мы можем объединять интервалы; занимаясь поиском по словарю, мы можем работать с префиксами; работая с хэш-картой, мы можем применять алгоритмы хеширования. Это лишь верхушка айсберга.

Как только мы начинаем писать много собственного кода, не ограничиваясь использованием фреймворков, мы сталкиваемся с необходимостью оптимизировать код, проверять его сложность, делать более эффективным.

https://leetcode.com/problemset/?embedable=true

LeetCode — отличный способ начать решать простые задачи, чтобы понять, что такое сложность и насколько она влияет на результат. Начиная с простых проблем, мы находим решения, становимся все более эффективными и, в конечном итоге, выявляем закономерности.

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

Что это нам дает? Короче говоря, работая над своим проектом, вы научитесь моментально оценивать эффективность своего кода, особенно если ваш проект постоянно находится под большой нагрузкой.

Если ваш код перейдет от кубической сложности к линейной сложности, ваши серверы и администраторы скажут вам спасибо. Это также экономит компании значительные средства, особенно при использовании таких сервисов, как Amazon.

Это может показаться тривиальным, но такая оптимизация может сэкономить несколько тысяч долларов!

yes, we saved it

Мой путь!

Итак, с чего начать? У вас есть LeetCode и есть проблемы, но что делать дальше?

1. Начните с простых задач.

Рекомендуется начать с решения нескольких задач уровня «==easy==". Не спешите сразу приступать к сложным. Возьмите лист бумаги и ручку и начните анализировать проблему устно, без написания кода.

2. Работайте над решением.

После того, как вы получили общее представление о проблеме и рассмотрели крайние случаи, приступайте к написанию кода.

3. Превратите это в привычку.

Решайте пару задач в неделю, но не торопитесь. Постепенно у вас разовьется понимание закономерностей и подходов к решению проблем.

4. Обратите внимание на шаблоны.

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

Если вы хотите сэкономить, обратитесь к ресурсу netcode, где доступны бесплатные решения проблем.

https://neetcode.io/?embedable=true

Neetcode эффективно организовал все в древовидную структуру, основанную на темах, а также на часто задаваемых задачах. Конечно, в LeetCode точность намного выше, поскольку пользователи могут отмечать, какие проблемы действительно были заданы, и часто обновлять список проблем.

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

patterns tree

Вы можете выбирать темы и задания:

tasks and solutions

5. Используйте системный подход.

Составьте план:

  • Откройте Neetcodee и выберите проблемы из дерева.

* Откройте соответствующую задачу на LeetCode.

* Попробуйте решить.

* Если вы решили задачу или не смогли, посмотрите решение и запишите его в блокнот.

* Перенесите решение из блокнота в код и отправьте.

И помните, неудачи в начале — это нормально. Ключом к этому процессу является изучение и запоминание шаблонов. Как только вы узнаете знакомую закономерность, решать проблемы станет намного проще.

Неважно, решаете ли вы проблемы легкого или среднего уровня — просто решите их! Если запоминание задач — это то, что нужно, дерзайте!

Нет необходимости сравнивать себя с другими, поскольку мы находимся в процессе формирования новой превосходной привычки. Эта привычка, несомненно, приведет к значительному улучшению в долгосрочной перспективе!

Удачи в обучении! Если у вас есть дополнительные вопросы или вам нужна дополнительная помощь, не стесняйтесь спрашивать. Ваше здоровье! 🚀

think about it!


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE