Как стать автором
Обновить

Пройти LeetCode за год: экскурсия по сайту и roadmap [обновлено 30.11.2023]

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров109K
Всего голосов 37: ↑36 и ↓1+44
Комментарии30

Комментарии 30

Интересно, спасибо. Чтобы понимать, предложенные три задачи в день это сколько в часах, условно?

А какие есть войтивайти аналоги leetcode?

Среднее даже условно не назову, слишком много факторов. Скажем так: минимально – до 10 минут на все, если задачи совсем не вызывают сложности, но и не однострочники; максимально, соглашусь с позицией сайта, – по 30 минут на задачу + время на разобраться с решением, если самостоятельно так и не вышло, при учёте, что готовое решение понятно. Если нет, тогда стоит отложить такую задачу на потом.
Ну а там уже стоит отталкиваться от собственного среднего – увеличивать количество или сложность хотя бы до получаса, если каждый день за 10 минут решается; снижать сложность и читать дополнительные источники по теме, если каждый день на максимуме.

Про аналоги лучше перенаправлю.
А в целом, айти-то большой, на одном ресурсе всего, даже пусть только вводного уровня, никогда не найдёте. Тут только про АиСД, и то далеко не весь. По каждой теме ищите специальный ресурс, а лучше несколько.

О, спасибо, я из них только проект Эйлер знал.
Иногда, хочется отвлечься от основной работы, порешать какие-то задачки, переключить мозг. Я обычно иду на math.stackexchange или решаю головоломки. Но почему бы не порешать какие-то программерские штуки… ;)

А за сколько "проходятся" все задания литкода?

Можно не упарываться в легкие и средние задачи. Немного попрактиковаться, подтянуть алгоритмы, и более плотно уже заняться хардами - там всё самое жареное.

Упоминал этот подход, и что я с ним не согласен. Можно-то, конечно, но это для уже хорошо разбирающихся в теме, и которым не нужны все эти планы, учебники, соревнования. Зайти на пару дней, решить десяток хардов и закрыть на год. Но таким пользователям этот материал тогда и не нужен. А для всех остальных этот подход только во вред – либо бросят в раздражении от задач не по силам, либо начнут бездумно копипастить готовые решения. Поэтому я за подход – структурно, последовательно, стабильно, тогда будет и толк.

По моим наблюдениям, в хардах упор не на знание алгоритмов, а на пердолинг и запутывание мозгов. Именно подтянуть алгоритмы это изи и мидл.

Харды это, в основном, применение сразу нескольких подходов. В этом и сложность – понять, какая связка требуется для нужного результата, ну и правильно её реализовать, конечно.

Мой опыт:

Изи - одна задача, один массив; тут именно знание и применение структуры данных и алгоритма над ней в пробирке.

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

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

Пердолинг? Не расшифровал.

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

Leetcode отличный ресурс для подготовке к coding interview в FAANG. Покупаете подписку на месяц. Открываете соответствующий список задач и решаете все подряд. Вы должны решать любые задачи уровня medium за 20-30 минут. Именно столько у вас и будет на интервью.
Как все задачи курса прорешали - так к coding interview готовы. На 5-6 уровень этого достаточно. А на system architecture уже по другому готовиться надо.

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

Новый год уже начался?)

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

Цель в том, чтобы лучше овладеть темой, и она и достигается "тратой" времени. Как и всё остальное.

А подписка – просто дополнение к движению, можно и без неё, как будет угодно.

Leetcode великолепен!
Пробовал некоторые известные учебники по алгоритмам, не зашло. На этом сайте всё объясняется отлично.
Плюс, ещё куча толковых мнений, советов, подсказок от других людей, по каждой теме.
Минус только один - нет поддержки С++20 и новее.
Премиум подписка своих денег стоит, однозначно.

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

Там очень хороший материал где-то на 90%. Вы можете найти подобное по отдельным темам в интернете. Но, во-первых такой поиск занимает время. Во-вторых готовьтесь иногда угадывать что же было сказано в скрытых материалах из-за референсов туда. В третьих плата за премиум очень маленькая, порядка 150$ за год.

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

Классный сайт. Можно бесконечно ковыряться в обсуждениях и черпать оттуда идеи для улучшения своего решения.

>За стрик 300+ дней в конце года выдаётся отдельный бейджик

не совсем так, этот бейдж выдается за решение ежедневных задач 300+ дней в году - необязательно подряд, но без учета time travel tickets

Спасибо, актуальное уточнение, как раз жду от представителей сайта разъяснение по нему. А у вас информация из опыта, или это уже где-то обсуждалось? Официальный пост с "for ? more than 300 days" однозначного ответа не даёт, его по-разному трактовать можно.

Из опыта. В 2021г я насчитал у себя около 330 ежедневных задач (по галочкам), а бейдж не дали. Написал в поддержку, они ответили что по их данным у меня 294 дня. Это соответствует количеству зеленых дней в календаре, т.е. ТТТ не идет в годовой зачет. При этом используя ТТТ можно получить месячный бейдж.

В 2022 у меня 344 зеленых дня, бейдж получил. При этом max streak = 89, с учетом ТТТ наверное около 200, но никак не 300.

Понятно. Как же у них, однако, всё запутано.

Закончил общение со службой поддержки. Аналогичная ситуация случилась – 295 уникальных активных дней, 307 по стрику ежедневных заданий с TTT, на 31.12.
Подтвердили, что считается исключительно "total active days", разночтение признали.
Навстречу с исправлением бейджа не пошли, но хотя бы наконец-то убрали путающий "?" из официального сообщения, который там с первого дня присутствовал.

По моим ощущениям задания на LeetCode это что-то между просто и тривиально. Такие иногда дают на собесах, чтобы решить на бумажке за 5мин. Но в целом, не совсем понятен смысл этого сервиса - мне было скучно на нем, и некоторые вещи вроде оч древней джавы раздражали. Кажется что в плане алгоритмов куда интереснее поучаствовать в контестах, на codeforces, скажем, или искать флаги на каких-нибудь ctf'ах. А вы в чем видите пользу LeetCode?

Судя по всему, вы просто недостаточно познакомились с ресурсом. Особенно с учётом "решить за 5 минут", да ещё и на бумаге. Для лёгкого уровня – конечно, так и должно быть, если подход понятен. Но для прочих – даже стабильные многократные лидеры турниров не всегда показывают такой результат.

Дело вкуса, выбирайте, что больше нравится.

Вопрос, полагаю, к комментаторам. Свой взгляд я обозначил в начале поста.

на leetcode есть еженедельные соревнования, если для вас hard задачи тривиальны, то вы с легкостью попадете в первые, скажем, полсотни участников - попробуйте. На этом уровне собеседование в FAANG также не будет представлять проблем, по крайней мере в алгоритмической части, а подготовка к собеседованиям в общем-то и есть смысл существования сайта.

Ну вот я смотрю на таблицу с последнего контеста. Лидер решил все четыре задачи за 5 (!) минут, а топ 20 все уложились в 10. По-моему это очень круто, ну то есть, я сказал, что это задачки решаются за 5 минут, но я имел в виду каждую. Но чтобы за 5 минут все решить, это реально космическая скорость и немалое задротство, эти китайские ребята круты. )) С другой стороны, что-то я сильно сомневаюсь, что умение быстро решать простейшие задачи, это то, чего достаточно для работы в серьезной компании. Впрочем, основной посыл я понял: если чувствуешь что есть сложности с задачками на интервью, или цель придти в тонус или поднабить руку, наверное, имеет свой смысл.

Вам попался удачный новогодний пример. Если взглянуть на следующий за ним, то там только 1 участник еле уложился в 10 минут. 10 справились с вашей оценкой "5 минут на задачу" (и это emmh, а не hhhh). Ещё на следующем – 1 за 15мин, ещё 4 за 20. И так далее. Разные примеры есть.

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

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

сравнивать лидеров рейтинга литкода с типичными интервьюируемыми в ведущие компании это примерно как сравнивать физкультурников в парке с участниками олимпиады.
умение относительно быстро решать умеренной сложности алгоритмические задачи (leetcode medium минут за 20) - ключевой навык для прохождения coding собеседования. Это отдельный скилл, который для большинства программистов требует прокачки, т.к. у >90% из них в реальной работе это практически не используется. К успешности дальнейшей работы в компании это имеет довольно косвенное отношение, но вы не можете начать работать, не пройдя собеседования.

Спасибо автору за качественное и понятное описание))

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории