Comments 116
Я return ему какие-то хорошие комментарии
В предыдущем предложении разработчик писал и показывал. Логически тут тоже должно стоять в прошедшем времени: «Я returned».
А ещё лучше написать «Я returned ему some хорошие comments». Так моднее выглядит. Сразу видно, не чёрте кто, а мощный литкод-коуч, что бы это ни значило.
А если буквы лесенкой чередовать так ваще!
Классика же
Магазин на Брайтоне.
- Мне полпаунда чиза.
- Вам наслайсать или одним писом возьмёте?
Вы не understand, автор просто достиг уровня fluent english (между прочим - за полгода).
Так моднее выглядит
Вообще-то, это классика (точнее реверс классики)
Хорошо забытое старое. Есть такая книга, "дрессировка животных и людей".
Там это всё давно написано
А для чего вообще литкодить каждый день?
Особенно если приходится заставлять себя это делать...
Чтобы гениальные сортирователи списков на вас криво не смотрели. Сейчас такое время, что опыт, навыки и беграунд - это фу-фу-фу, а вот умение вращать деревья однозначно идентифицирует в вас специалиста.
Ох уж эти развороты деревьев, кажется эта байка про автора brew травмировала целое поколение программистов.
А могли бы его спросить на порядок более сложную задачу, например, сортировку пузырьком.
Можно подумать, что автор brew единственный, кто столкнулся с каргокультистами, которые не понимают, что решение литкодовых задач показывает лишь одно - умение решать литкодовые задачи ;)
Карго культ с задачами силен, согласен.
Но я все таки не могу сдержать восторга от того, что постоянно упоминается в суе нечто более простое, чем тупо сортировка пузырьком или проход одном циклом по массиву.
Ну есть что-то в этом странное.
—-
Представьте, допустим, что мы столкнулись с каким-нибудь карго культом у юристов, где их при приеме на работу заставляли бы брать интегралы из Демидовича, мотивируя это тем, что математика мозги в порядок приводит.
Безумие? Безумие.
Но теперь представьте, что все байки про это явления, начинаются с "ну а вот помните, как однажды чувака на собесе попросили найти x в уравнении 5x=7? Найти икс, представляете?".
Ну это же прекрасно. Одновременно как бы указывает на проблему, но при этом одновременно настолько далеко от проблемы.
не хватает ещё
![](https://habrastorage.org/getpro/habr/upload_files/c4d/2b2/a71/c4d2b2a71d4a057f98e1031422e85cc0.png)
Ну есть что-то в этом странное.
Ничего странного тут нет. Вам знакомо выражение "притча во языцех"? Это вот оно самое и есть.
Я думаю, это скорее повторение одного и того же не задумываясь на минуту о смысле сказанного.
Прямо как в карго-культе, бадум-тс.
Я почему-то так и думал, что вы попытаетесь поиграть в зеркалочку, но выглядит это в итоге даже унылее, чем я предполагал. Буквально претензия к устоявшемуся названию.
Еще чуть-чуть - и до претензий к орфографии дойдем, бадум-тс.
Да я ни во что не играю вроде бы, к что тут можно было во что-то играть? И кто выиграл, и что?
Я уже сказал - в зеркалочку.
Ничего не понимаю)
Повторю мой пойнт:
Разворот бинарного дерева - крайне неудачный пример для иллюстрации проблемы. Проблема в том, что от соискателя требуют учить какие-то безумные алгоритмы, на позиции, где они не нужны.
Если соискателя просят найти минимум в массиве их десяти чисел - это не "задрачивание литкода".
В этом примере - речь о ещё более простой разминке, чем поиск минимума в массиве тупо циклом. И уж тем более более простой, чем рассказать сортировку пузырьком. Пример неудачный, не стоит продолжать его распространять.
Вы зачем-то пытаетесь спорить с общепринятым названием подхода и группы лиц. Совершенно не важно, является ли он предметно точным - он передает смысл, и его понимают те, кто в теме.
Как морская свинка. Не морская, и не свинка.
Не вижу проблемы в том, чтобы указать, что неудачное название или термин - неудачные.
Ну и мой опыт показывает, что многие кто передает эту историю не задумываясь, буквально никогда не задумывались о том, что же за задача там имелась в виду, какое зло я несу, когда об этом говорю?
Если соискателя просят найти минимум в массиве их десяти чисел - это не "задрачивание литкода".
Я бы перед применением цикла или LINQ спросил, отсортирован ли он./
по-моему тот же Капица заставлял при приеме к себе на работу решать интегралы. А он вроде не безумец.
Я в топ 20% литкода по мидяхам (это всего 80 медиум, изиков можно штук 50 за день вшатать, а харды я не особо решаю, они от мидях отличаются только количеством геморроя), это дало мне именно ощущение, что я не хуже "их" и если что могу поднапрячься и пройти, а если не пройду, то сделал все, что мог
по-моему тот же Капица заставлял при приеме к себе на работу решать интегралы. А он вроде не безумец.
Ученый проверяет у кандидита знание математики, причем в том обьеме который можно проверить и сложно фальсифицировать. Идеальное собеседование ;)
Слова "Безумие? Безумие." в моем сообщении стоят в контексте конкретного гипотетического примера.
Этот пример к собеседованию программистов-то натягивается с трудом (оно не то иллюстрирует). К Капице притянуть его еще сложнее.
Вот ты с опытом бекграундом приходишь на собеседование... к сожалению
ЗЫ но мой последний собес этого, к счастью, не включал.
Продолжайте мысль, пожалуйста.
Я так понял: вот ты с опытом и бэкграундом приходишь на собес, к сожалению, а литкодер не приходит, ему некогда, топ 5% сам в себя не войдёт...
А от тебя требуют литкодовские задачки :) Из которых потом, хорошо, если хоть что-то пригодится в реальной работе.
А от тебя требуют литкодовские задачки
Недоуменно поднимаю брови и предлагаю отложить эти игры для собеседования мидлов, а со мной говорить по делу :) Если настаивают - разворачиваюсь и ухожу.
От программиста на собеседовании требуют показать, что он умеет программировать. Подонки, однозначно, умение программировать программисту не пригодится в реальной работе..
Решение сферических литкодовых задачек в вакууме требует лишь знания базового подмножества выбранного языка и умение быстро вспомнить какой-нибудь плюс-минус подходящий алгоритм для ее решения. Соответственно, может использоваться исключительно как входной фильтр, и по нему нельзя понять, умеет ли человек не просто задачки программировать, но и решать действительно практические задачи, как подобает инженеру.
Если бы мне пришлось искать работу, я бы просто прикрепил свой гитхаб к резюме. Я принципиально не буду исполнять роль студента на собеседовании и отказываюсь тратить свое время чтобы заниматься подготовкой к бессмысленным ритуалам.
А я принципиально не буду брать на работу балабола, который не может продемонстрировать свои навыки на практике, показывая мне чужой код в своём гитхабе.
Соответственно, может использоваться исключительно как входной фильтр
Это и есть входной фильтр, в том числе. Если вы его не прошли, дальнейший рпзговор не имеет смысла.
требует лишь знания базового подмножества выбранного языка
Что ещё раз нам показывает, что вы совершенно не понимаете, зачем даются эти задачи и что ими проверяется. Это крайне плохая черта для программиста, делать далеко идущие выводы, не разобравшись в вопросе. Вы не прошли собеседование, всего хорошего.
Почему вы каждый раз так болезненно реагируете, когда кто-то не согласен с вашими представлениями о собеседованиях?
Это и есть входной фильтр
Зачем вы повторяете за мной?
Что ещё раз нам показывает, что вы совершенно не понимаете, зачем даются эти задачи и что ими проверяется.
Да что вы говорите! Еще раз: задачи литкода в первую очередь алгоритмические. Для их решения требуется знание лишь базовых структур данных и операторов языка, а так же некоторый набор классики в виде Кнута и О-нотации.
Это крайне плохая черта для программиста, делать далеко идущие выводы, не разобравшись в вопросе.
Да. Хорошо, что это не про меня. Зато у некоторых гордых представителей профессии, вроде вас, наблюдается восторженное поклонение перед определенными подходами, принятыми в отрасли. Это ярко демонстрирует костность мышления.
Вы не прошли собеседование, всего хорошего.
Я не припомню, чтобы собеседовался в какую-то шарашкину контору с карго-культистами на входе. И вообще, в эту игру могут играть двое. Уверены, что выдержите собеседование старого образца, где литкодовые задачки вам не помогут? :)
Это как раз вы болезненно реагируете. Зачем-то продолжаете мне рассказывать, какой вы офигенный, когда я уже русским языком вам написал, что вы не подходите. Зачем, чтобы что?
Ну и тот факт, что вы в своём невежестве упорно продолжаете настаивать на своём, не желая разобраться, тоже отлично вас характеризует и делает всю картину целостной. Я вас сейчас удивлю, наверное, но если вы на собеседовании прочитали условие мегахарда с литкода, а потом просто взяли и молча написали эффективное решение, собес на синьора вы провалили с треском.
За сим откланяюсь, образовательная деятельность на сегодня у меня закончена.
Это как раз вы болезненно реагируете.
Точно?) А вот этот уязвленный сарказм с переходом на личности далее - разве не ваш?
я уже русским языком вам написал, что вы не подходите
Писать по-русски вы можете, а вот читать, похоже, не очень. Повторяю ответ: я к вам не собеседовался, и не испытываю нужды в ваших оценках.
вы в своём невежестве упорно продолжаете настаивать на своём
Я настаиваю на своем, потому что уверен в своей правоте, и потому что основные тезисы о фильтрах вы всё-таки повторяете за мной. Ваша же убежденность в моем якобы невежестве - не более, чем ваши предвзятые домыслы.
Я вас сейчас удивлю, наверное... собес на синьора вы провалили с треском
Я вас сейчас удивлю, наверное - но нет, не удивите. Хотя я знаю, к чему вы клоните - вы хотите, чтобы ваш потенциальный сеньер позадавал вам всякие дополнительные вопросы о роде задачи. Что, в принципе, не является для хорошего инженера каким-то нонсенсом, пусть задача и тренировочная. Мне непонятно лишь, почему вы обычные инженерные практики выдаете за невероятные откровения.
образовательная деятельность на сегодня у меня закончена
Всего хорошего. Я надеюсь, что вы сегодня хоть чему-то научились.
Я себя конечно тоже заставляю в отдельные дни, но вообще просто интересно/прикольно. Такой ежедневный брейнтизер. Чисто отвлечься от постоянных рабочих тасок на что-то маленькое и короткое (и что не рилс/тикток/шортс).
А для чего вообще литкодить каждый день?
А для чего делать зарядку, бегать и штангу таскать в спортзале?
Знал бы, обязательно бы делал зарядку, бегал и штангу таскал в спортзале.
Чтобы не быть в 35 скуфом. А в остальном незачем)
Я нынешний школьный сленг не понимаю, но, судя по всему, ваша фраза переводится на человеческий как "чтобы заслужить одобрение в глазах окружающих". Нет, причина не в этом, на одобрение окружающих полноценной личности наплевать.
![](https://habrastorage.org/webt/o1/q7/ek/o1q7ekul_ixekhibvtn6bzbp2rc.jpeg)
Я нынешний школьный сленг не понимаю
Вы, конечно, писали, что для вас образовательная деятельность на сегодня закончена, но позвольте мне немного расширить ваш кругозор.
Скуф - это популярное нынче слово, но пришло оно с двачей, где использовалось с конца прошлого десятилетия - то есть, уже довольно давно. Произошло от фамлии "Скуфьин" - толстенького лысеющего программиста средних лет, сдеаноненного героя локального срача. Стало именем нарицательным, обозначающим скучного, не очень успешного мужчину оных лет и оной комплекции, не имеющего никаких интересов, кроме телевизора и футбола.
А что до (не)понимания - не так уж сложно поддерживать свой словарный запас в актуальном состоянии. Иначе однажды можно обнаружить себя скучным скуфом, закрытым в своем манямирке и не понимающим, что происходит в живом сегменте интернетов :)
Пытался когда-то решать задачи с Project Euler - забил, скучно, мне лично это неинтересно, за других сказать не могу, знакомые там зависали надолго, и один даже болтался где-то в топах. Для себя же я нашёл другое развлечение, на тот случай, когда хочется попрограммировать чего-то для души и по-приколу: шёл на stackoverflow, открывал вопросы по технологии, которая мне интересна, но на текущей работе невостребована, находил что-то, на мой взгляд, прикольное и решал. Мне, например, тэг "opencv" нравился - на фотографии что-то найти/распознать/выделить/удалить и т. п. Особенно если на Питоне, там ещё всякий Numpy/Scipy заодно вспоминаешь. Но, конечно, материала для хвастовства на зп 300 000$ так не намайнить...
Найм поменялся, теперь нет очереди за программистами, поэтому приходится тренироваться перед собеседованиями.
Целое баунти сработает также, как и его половина или четверть.
![](https://habrastorage.org/getpro/habr/upload_files/f71/e03/091/f71e030912d5ba45ce1c0c5458fda76a.png)
Вы это имели в виду?
Получается бесконечная фабрика баунти, если я правильно понял
Проблема только в том, что равенство выполняется только для bounty = 0.
Соответственно, получается бесконечная фабрика ничего.
Получается бесконечная фабрика баунти
Заходит в ларёк бесконечное число коучей.
Первый говорит: -Мне баунти!
Второй: - Мне пол баунти.
Третий: - Мне четвертушку баунти.
Четвёртый: - Мне осьмушку баунти.
Ларёчник: - Стоп, знаю я ваши приколы. Вот вам, короче, 2 баунти на всех - дальше сами разбирайтесь.
1 ^ 4 = 1 )))
Напомнили. Теперь за баунти идти(
На примере разработчика, о котором статья - в дни когда сил не было. Он просто открывал задачу и сразу шёл смотреть её решение. И таких дней было немало..
Смысл стягивать целыми днями чужие решения и потом хвастаться что попал в топ 4%.
Спустя 2 недели, когда я вернулся в силы, то у меня не появилось ощущения, что я пропустил или бросил. Все эти дни я продолжал делать привычку. И теперь я с ресурсами снова делаю каждый день.
Статья - какой-то кривой перевод.
Заучивание результатов, особенно когда на экзамене, ой, то есть собеседовании требуют конкретных знаний — тоже может сгодиться.
Ну и некоторые нюансы бывают интересными в чужих решениях. Я как-то заинтересовался решением nqueens и придумал отличный способ решения с использованием битовых операций. Потом узнал что в 97-м ещё его Мартин Ричардс придумал почти такой же (я использовал lzcnt, а он нет). Интересно!
Стягивание чужих решений не поможет побеждать в контестах, а значит - не поможет войти в топ 4%.
Но поможет выработать привычку (со слов автора статьи).
Я в топ 2% на SO
![](https://habrastorage.org/getpro/habr/upload_files/85d/dd4/ffc/85ddd4ffcfa909c374765aebc83a8509.png)
И еще у меня большой эм... опыт большой)
Сработало ли для вас целое баунти также, как и его половина или четверть?
а может Вы компенсируете? :)
Ну, раз уж хвастаемся, я в 0.4% на CodeWars.
![](https://habrastorage.org/getpro/habr/upload_files/e86/6cb/033/e866cb03327f7f6dff36e7a632e19451.png)
Подвиньтесь-ка, ребята ?
![](https://habrastorage.org/getpro/habr/upload_files/e60/6b0/21a/e606b021af982f04507acdf532731dfc.png)
А я на 209 mmr на dotabuff...
This year так себе.
Я в 3% по общему(15тыс)
А вообще там в 4% почти все, кто хоть какуюто активность проявляет.
Ко мне в коучинг
Дальше можно не читать
Я с удовольствием прочёл пост, но так и не увидел что такое leetcode
Я иногда люблю просто перед прогулкой или походом в магазин взять какую-нибудь случайную задачку оттуда и по дороге над ней подумать. Мне для чего-либо этот LeetCode нахер не упал, просто, с детства люблю всякие математические головоломки :)
Алгоритмы вполне имеют отношение к математике (дискретной), разве нет?
Решение так сходу не скажу, но, немного подумал и интуиция подсказывает, что это будет, наверное, определенный интеграл от 0 до 1 такой функции: 4 * pi * x^2 * sqrt(1 - x^2)
. По аналогии с тем как можно вычислить объем трехмерного шара.
Лично для меня дисциплина никогда не была проблемой. Вот недостаток интеллекта для решения задач — был. Кто знает, подскажите, как справляетесь?
Литкод-макака вырвалась на свободу, я так понимаю)
Брехня какая то, человек с нуля за три месяца по 20 минут в день даже ни одного харда не решит, ну либо человек уже был олимпиадником.
Так вы услуги коуча не продадите...
Там написано что он 20 лет в разработке, просто leetcode решил подкачать.
В разработке задач для литкода?
Так-то повседневная промышленная разработка ПО (если это только не какие-то очень специфичные вещи) и решение литкодовых задач - это совершенно ортогональные виды деятельности, одно другому очень слабо помогает.
Да ну. Зависит от области, но в целом вы не правы. Если вы не 100% времени формошлепством занимаетесь, то у вас хоть какие-то данные есть и с ними хоть что-то да сделать надо. И это уже практически easy задачка с литкода. Иногда случаются и medium. А если вы пилите сложное приложение, вроде браузера, то у вас и hard запросто вылезают.
Плюс, факт в том, что крупные компании оправданно дают задачи с литкода. А куча мелких бездумно это копируют. Эта реальность дана нам в ощущениях. Вы можете или ругаться, что собеседования не нужные и вредные, и исключить для себя львиную долю рынка работы; или вы можете потратить суммарно пару дюжин часов времени, чтобы потренироваться в решении задачек с литкода. Вы же наверняка крутой специалист и, стоит лишь чуть вникнуть в терминологию и подходы, вам вообще не составит труда потом написать 5 строк кода для разворота того же пресловутого дерева? Тут вам достаточно лишь научиться решать некоторый процент medium и вы уже большинство интервью сможете пройти.
Если во фронтенде есть что-то похоже на задачи с литкода, значит скорее всего этот фронтенд спроектирован неправильно. Исключение - анимации, там может быть что-то похожее, но не сильно.
С одной стороны, вы правы - очень много сайтов и страниц, которые по уму должны быть статическим html. Это прям беда современного интернета. Но их фронтовик вообще трогать не должен.
В оставшихся же случаях - вы вообще не правы.
Вот хотя бы тот же хабр рассмотрите. Вот захотели сделать динамическую подгрузку комментариев. Ну так их с сервера получить, да в DOM воткнуть - чем не easy с литкода? А вот фичу со старого хабра, о которой я несколько раз просил, все никак не запилят - чтобы при нажатии на "следующий непрочитанный комментарий" экран прыгал не на следующий коммент в жестком списке, а следующий непрочитанный ниже текущего положения страницы. Вот тут уже и medium, потому что нужно бинпоиск воткнуть (или set какой-нибудь применить, что там у вас в js есть).
Вы возразите, что есть же готовые фреймворки, ну так, во-первых, их кто-то писать должен, а, во-вторых, они не всегда делают именно то, что нужно конкретно вам, и вам придется что-то допиливать и понимать как и что работает.
Вы правы, просто для того чтобы сейчас пройти собеседование в БигТех - нужно именно пройти этап c задачами LeetCode. А некоторые "хотят быть как гугл" - и тоже их добавляют.
Поэтому и появился этот культ, а программисты тратят время на решение этих задачек при подготовке к интревью.
Литкод очень сильно помогант в каждодневной работе. Программист начинает понимать, что он пишет, на уровне подсознания начинает оценивать сложность и писать более эффективный код, внимательнее относится к граничным условиям, начинает использовать библиотечные реализации разных структур данных к месту, а не лепить везде велосипеды на списках и т.д. Банально, начинает задавать себе вопросы: а какой размер будет у входных данных, подходящее ли я решение выбрал?
И это совершенно не является прерогативой литкода. Достаточно простого понимания вычислительной ложности, О-нотации и обладания обзорными знаниями алгоритмов и структур данных. А уж такие банальные вещи, как оценка входных данных - часть обычной инженерной культуры.
И всем эти не владеет 90% кандидатов, приходящих на интервью на должность мидл+, поэтому у них так бомбит, когда их просят эти навыки продемонстрировать.
А вот это, увы, правда. Поэтому я и говорю, что это хороший входной фильр. Но надо понимать, что подход к собеседованию должен быть гибким: если у человека есть какие-то заведомо известные навыки, нет никакого смысла заниматься литкодом. Если он покажет, скажем, хороший гитхаб - можно начать говорить предметно, а не экзаменовать его.
@Boomburum как это из песочницы вырвалось? Модератор одобрил или по другой причине?
К чему приводят такие тренировки? Появляется автоматизм, навыки становятся рефлексами. А еще они позволяют не очень умным людям казаться умнее. (c) Джек Ричер
«Я в топ 4% мира на LeetCode» — это оказалось на удивление просто и недолго
И не нужно.
20 минут в день ))) и в топ 4% )) за короткое время. Если топ считать по числу решенных задач, а не по чему-то еще, то прикинем: предположим на литкоде решает/решало больше 2 млн. пользователей, 4% это пусть 80-100 тысяч. Это примерно 500-600 задач(могу ошибаться, но где-то так). За последний месяц начал много решать задач на литкоде, около 300 за 3 недели. Сейчас примерно рейтинг 170 000 - ну то есть топ 10%. Но сказки по 20 минут )), подержите мои тапочки, это пишет писатель, а не "решатель" )). Иногда можно решить 5-10 изи задач в час, а иногда попадется и только одну решить получится, бывает и с поиском решения в чужих головах)) - короче все свободное время ушло на это
Когда я начинал решать задачи на литкоде то rank был в районе 3.5кк, так что скорее всего 170 000 это около 20%, по сути не важно, просто уточнил)
Не пойму, чего все на автора ополчились - дал готовую систему создания положительных привычек. Для того, чтобы сформировать эту систему самостоятельно, как минимум пришлось бы почитать пару книжек или пробиваться через бесполезные видосы от ботов на ютубе. А тут 5 минут и можно использовать.
Претензии к литкоду вообще смешно читать. Ну надо было человеку решать литкод - вот он и решал. Автор то тут причём?
Думаю многим не понравились малая правдоподобность описанного в статье, а также стиль изложения. Уже написали, что 20 минут в день на уровне Hard невозможно ничего решить, если только ты не просто копируешь откуда-то решение. Я не считаю себя умным или натасканным на алгоритмы, и даже на medium задачки у меня уходит по часу, но даже сильно умные и натасканные маловероятно, что сделают что-то за 20 минут. Там иногда только в постановку задачи минут пять въезжаешь. Ну а стиль изложения и вовсе отвратный. Всё слеплено в кашу, а вставка английских слов лишь показывает слабый словарный запас автора или желание казаться модным, что тут не к чему. Это не чат школьников.
Безусловно, это прям круто. Но а будет что то кроме сферического программирования в вакууме)?
"Каждый раз, решив харда на Литкоде, я вознаграждал себя сигареткой. Бросить курить оказалось удивительно легко - как бросил литкодить, так и отпустило."
Зачем вы зовёте в свой канал, а потом оттуда посылаете людей к психологу?
![](https://habrastorage.org/getpro/habr/upload_files/c87/62a/0d1/c8762a0d1e394c80dae3527f6e617953.png)
Удивительно, как закидали минусами человека за хорошую статью. Невероятная гибкость ума у минусующих: хотят одновременно получить идеальный контент и засрать одновременно все. Результат такого - люди вообще перестанут писать на хабре из-за слишком токсичной среды. Потом жалуйтесь на английских форумах.
Вполне рабочая методика. Я часто забываю, например, что лучше сделать 5-20% от нормы, чем вообще забить, когда некогда/плохо.
Хорошая статья? С рекламой телеги? Да еще и вот в таком стиле?
У меня есть целый гайд и большая free книга в телеграм канале, куда я также пишу много примеров и кейсов с прививанием привычки.
Англицизмы - ну к ним еще народ как то привык, но у автора еще вставки тупо английских слов. И предложения часто выстроены будто перевод промптом с английского. Вот пример из статьи: "Все эти дни я продолжал делать привычку" - по русски так не говорят.
![Что-то сломалось Что-то сломалось](https://habrastorage.org/getpro/habr/upload_files/e41/e9b/fc6/e41e9bfc6537b81e32c6323f9a30d48f.png)
Обновлял страницу, где-то полчаса ждал и снова обновлял. Что-то при подсчёте пошло не так.
«Я в топ 4% мира на LeetCode» — это оказалось на удивление просто и недолго