Решение задач Codewars JS | Junior, Middle, Senior | ЧАСТЬ 3

  Рет қаралды 9,039

Эльбрус Буткемп: школа программирования

Эльбрус Буткемп: школа программирования

3 ай бұрын

🎁 Бесплатные мастер-классы 👉🏻 go.elbrusboot.camp/MkS-s
🤓 День открытых дверей в буткемпе 👉🏻 go.elbrusboot.camp/js_-dod
Как джун, миддл и синьор разработчик решают задачи на CodeWars? Узнайте вместе с Александром Князевым, mentor lead направления JavaScript Москва, на примере 6 Kyu!
Кто мы такие❓
Эльбрус Буткемп - это первая и самая крупная в России школа программирования в формате интенсивного обучения. Студенты 12 недель оффлайн или 15 недель онлайн практикуются на реальных проектах и кодят с утра до вечера. Обучение проходит по направлениям JavaScript и Data Science.
В буткемпе студенты решают задачи от реальных работодателей, что особенно важно в постоянно развивающейся сфере IT. 3 месяца оффлайн / 4 месяца онлайн обучения с 9:00 до 19:00 5 дней в неделю, ежедневная работа с кодом, плюс два проекта, командный и персональный, которые студенты защищают на второй и третьей, заключительной, фазе обучения - и вот на выходе уже есть полноценное портфолио, которое можно показать при устройстве на работу.
По окончании обучения всех ждет карьерная неделя, где карьерный коуч помогает подготовиться к собеседованию, подтянуть софт-скиллы и собрать резюме, с которыми 93% студентов находят работу в течение трех месяцев после окончания буткемпа. Также после завершения Эльбрус Буткемп есть возможность получить диплом ДПО.
Приходите на день открытых дверей в онлайне и познакомьтесь с форматом буткемп. Это лучший способ научиться программировать, сменить работу и увеличить свой доход.
VK - elbrusbootcamp
FB - / elbrusbootcamp
Insta - / elbrus.bootcamp
TikTok - www.tiktok.com/@elbrusbootcam...
Сайт школы - elbrusboot.camp
Напишите или позвоните нам, чтобы узнать, как поступить в ближайшую группу:
☎️ +7 (499) 938-68-24
💬 Чат в WhatsApp api.whatsapp.com/send?phone=7...
💬 Чат в Телеграм t.me/elbrusbootcamp1
✉️ info@elbrusboot.camp
Использовалось в видео (музыка/видео):
Fast Forward, Pause - Rebecca Mardal

Пікірлер: 44
@user-iq8ns9jv9q
@user-iq8ns9jv9q 3 ай бұрын
senior не будет проходить весь массив абсолютно каждый раз. Он будет использовать для этой задачи обычные циклы и напишет brake, если на текущей итерации стало понятно, что массив unordered
@ElbrusBootcamp
@ElbrusBootcamp 3 ай бұрын
Это хорошая оптимизация, респект! В худшем случае мы можем понять неупорядоченность массива только в самом конце, поэтому на сложность алгоритма это условие не влияет 🤓
@dmitryts9093
@dmitryts9093 3 ай бұрын
Не хотел бы я в проекте увидеть такой сеньёрский код, и сидеть думать что происходит
@suspenseorigin5542
@suspenseorigin5542 3 ай бұрын
да никто так не пишет, это задрота бест практис тиснули с кодварс, разобрали и выкатили) с реальными задачами не имеет ничего общего
@ekozincew
@ekozincew 3 ай бұрын
@@suspenseorigin5542 в реализации некоторых криптографических алгоритмов так и пишут)
@YellowPanamka
@YellowPanamka Ай бұрын
Это прикольный код с точки зрения оптимизации, если нужен очень-очень быстрый код и есть много времени его писать, но по факту лучший код для прода это код по принципу KISS, что больше всего подходит к решению джуна.
@placid3495
@placid3495 3 ай бұрын
Моя любимая рубрика) Жду еще!
@ElbrusBootcamp
@ElbrusBootcamp 3 ай бұрын
Нам очень приятно, новый выпуск уже снят, ожидайте в ближайшее время на канале :)
@-Pechorin-
@-Pechorin- 3 ай бұрын
Большое спасибо за материал! Открыли новый взгляд на решения.
@gladalex3824
@gladalex3824 3 ай бұрын
Спасибо за рубрику)
@antononoprienko9027
@antononoprienko9027 3 ай бұрын
Страшно, очень страшно, если бы мы знали, что это такое но мы не знаем, что это такое. Видео отобьёт любое желание заниматься программированием у начинающих.
@zmmr013
@zmmr013 3 ай бұрын
Забей вообще. Даже не думай. Это приколы просто с математических кружков. Типа у кого писька длиннее, кто круче напишет. В 99% реальности такое не встречается. Последний пример реально для сениоров, сениоров извращенцев 😂
@petrblinkov508
@petrblinkov508 3 ай бұрын
алгоритм также будет оптимизирован по памяти если использовать arr.reduce и Set как аккумулятор. Использование битовых операторов не показатель сеньора, битовые операторы тяжело читать и его используют только в местах которые редко читают - кор компоненты или команды из одного сеньора
@MrBurikella
@MrBurikella 3 ай бұрын
А копию массива сделать (который как говорилось в видео может миллион элементов содержать) чисто ради того, чтобы нормальный цикл не писать - это точно норм для синьора? Точно ли оптимально по памяти выйдет?
@bloodborn9632
@bloodborn9632 3 ай бұрын
Я прям повысил свою самооценку :)) у меня опыта в программировании 3 года , но 15 лет в математике , алгоритмы оптимальные придумать не проблема, а вот перенести на код занимает больше времени. Хотя эта задача простая, попадались и такие где алогитм придумать уходила неделя, потому что бизнеспроцесс приходилось изучать подробно, а код написать уже день два. Так что все относительно.
@KK-cf2me
@KK-cf2me 3 ай бұрын
Спасибо за видео! Подскажите, пожалуйста, варианты где подобная задача может использоваться на практике?
@DS-iz4xw
@DS-iz4xw 3 ай бұрын
Есть вариант с рейтингом чего либо. Например 1го числа у штерна было 100 слушателей, 2-110, 3-120. Берешь массив [100,110,120] - рейтинг растущий. Это условно, в твоем проекте если это надо посчитать на миллион моргенштернов плохая затея, а если на пару сотков строк в таблице - то норм
@flashz1
@flashz1 3 ай бұрын
если усложнение это то чему способствует опыт, тогда совет новичкам, не гонитесь за опытом)))
@EgorMoscowNeverSleep
@EgorMoscowNeverSleep 3 ай бұрын
Если ваше последнее решение для сеньёров, то: 1. совместимость с `Intl.Collator().compare` (в случае массива строк) и 2. предварительный выход из цикла, если обнаружено unsorted; это видимо для надмозгов, не меньше. ```javascript function sequenceClassifier(arr) { let flags = 0, prev = arr[0]; for (let i = 1, len = arr.length ; i < len ; i++) { const item = arr[i]; // the [-1, 0, 1] is compatible with `new Intl.Collator().compare` if ((flags |= ((0b011 & ( item === prev ? 0// ((0b11 & 0) + 1) === 0b001 : item > prev ? 1// ((0b11 & 1) + 1) === 0b010 : -1// ((0b11 & -1) + 1) === 0b100 )) + 1)) === 0b111) { break; } prev = item; } if (flags >= 0b110)return 0; if (flags === 0b001)return 5; return flags - 1; } ```
@EgorMoscowNeverSleep
@EgorMoscowNeverSleep 3 ай бұрын
Сразу же поправлюсь, что в решении из видео для сеньёров есть совместимость с `Intl.Collator().compare`: с помощью функции Math.sign, так что остаётся только предварительный выход из цикла, если с массивом и так понятно, что он unsorted.
@moscowtv5767
@moscowtv5767 3 ай бұрын
Классный, очевидный код!
@rbars96
@rbars96 3 ай бұрын
Middle: много вычислний size + математические операции над массивом (тем более, если он будет большим) - тоже не сильно оптимальнее первого варианта джуна
@coderlweer7060
@coderlweer7060 3 ай бұрын
Почему так мало комментариев и лайков ? Хорошая рубрика, хороший материал, хорошая подача, спасибо!.
@-Pechorin-
@-Pechorin- 3 ай бұрын
Предполагаю, потому что действительно увлекающихся мало.
@goodman.965
@goodman.965 3 ай бұрын
Срасибо за видео, интересно. Но пожалуйста озвучивайте задачу полностью, пришлось пересматривать что бы понять почему входные данные не проверяются))
@user-ty1gy4sy9z
@user-ty1gy4sy9z 3 ай бұрын
const classifier = (numbers) => { let first = numbers.shift(); return numbers.reduce((acc, item, index) => { console.log(first, item); if (item < first) { return VALUES.decrease } if (item > first) { return VALUES.increase } if (item === first) { return VALUES.same } first = item; }, 0); }; вроде работает без СИНЬЕРСКОГО КОДА
@andrii9755
@andrii9755 3 ай бұрын
это если было бы три условия было, а там пять условий в задаче, еще not increase и not decrease
@mk3mk3mk
@mk3mk3mk 3 ай бұрын
Мне кажется что синьер не стал бы решать такую джунскую задачу, а поручил бы первому попавшемуся джуну 🎉😮😅
@pandalove6795
@pandalove6795 3 ай бұрын
А если я просто 3 переменные создал куда просто посчитал, количество числе которые > предыдущих, < предыдущих или равны предыдущему. И по ним определил? Кто я? P.s. риторический вопрос. Как по мне это самый лучший способ (можно конечно вообще весь массив не проходить, но для понятности решил написать так, но битовые операции это уже оверхед как по мне, не знаю, мне кажется сеньор не стал бы запариваться так).
@romanbrandt7986
@romanbrandt7986 3 ай бұрын
Могу только сказать, что решение Джуна быстрее выполняется )) если возьмем допустим массив из 100.000 то Jun 0.800, а Mid 1.6! А если от 1 млн то 7.00 и 16.00 ))
@andreikhotko5206
@andreikhotko5206 3 ай бұрын
Я бы сказал, что получившийся код сеньора - это код крепкого олимпиадника по программированию. Как правило, в реальной жизни не требуется настолько сильной оптимизации. Что гораздо более важно - это писать понятный, легко расширяемый и поддерживаемый код. Конечно, не стоит писать так, как было показано в первом примере, но и чрезмерно оптимизировать код в угоду читабельности в современном мире тоже вредно (за исключением задач, которые требуют таких оптимизаций)
@sawertsand
@sawertsand 3 ай бұрын
а нельзя за 1н проход определить тип через for? просто каждый раз сравнивать элементы текущий и следующих. Все равно прийдется пройтись минимум 1 раз
@zeOnni
@zeOnni 3 ай бұрын
У вас там копия массива и замыкание. Откуда константность по памяти?
@user-zj5jj4uf9y
@user-zj5jj4uf9y 3 ай бұрын
для определения неупорядоченной последовательности необязательно проходить весь массив
@Bring_You_Up
@Bring_You_Up 3 ай бұрын
первое решение (джуновское) - выполнение за 3242ms. второе решение (миддловское) - выполнение за 6080ms (должно быть оптималеньнее, по идее). по третьему вопросов нет.
@daniyarbaizhaksynov9230
@daniyarbaizhaksynov9230 3 ай бұрын
я думал наоборот код сеньора всегда элегантен и прост для чтения
@profesor08
@profesor08 3 ай бұрын
код из видео ревью не пройдет и даже не оптимален
@user-wf8kp2or6i
@user-wf8kp2or6i 3 ай бұрын
К сожалению это не сеньорское решение, а скорее задротское. В реальности сеньор понимает, что после него код должны понимать мидлы и джуны…и по факту такой код будет плохой практикой.
@vitek0585
@vitek0585 3 ай бұрын
очень не хорошее решение, куча масок, главное ничего не забыть захендлить, я бы сказал это код джуна ‘когда понял как работать с битами’. Проще в цикле и используя паттерн rules
@Shiro-bz2ws
@Shiro-bz2ws 3 ай бұрын
Как говорят умные люди, синьёрский код это код который понятен даже джунам, я не уверен, что такой вариант оптимальный, так как код поймёт не каждый разработчки, редьюс было использовать изначально очевидно, но остальное просто выпендрёж.
@valpalchenko3982
@valpalchenko3982 3 ай бұрын
Это не код джуна, а код идиота. Или джаваскиптизеров не учат все делать за один проход цикла? Да и мидл мог бы заполнять сет на том же проходе и использовать брейк. Про читабельность всех вариантов вообще молчу, такое у меня ревью бы не прошло. Руки поотрывал бы за километровые строки
@sergey53689
@sergey53689 3 ай бұрын
да уж такую херню такими дурацкими способами решают
@bloodborn9632
@bloodborn9632 3 ай бұрын
Ну серьезно это не сеньерское решение :))) почти все последовательности в этом мире не являются константами или строго монотонны и не строгомонотонны. А тут всгда алгоритм проходит по всему массиву. Есть более оптимальный алгоритм .
Решение задач Codewars JS | Junior, Middle, Senior | ЧАСТЬ 2
14:39
Эльбрус Буткемп: школа программирования
Рет қаралды 2,7 М.
🍟Best French Fries Homemade #cooking #shorts
00:42
BANKII
Рет қаралды 57 МЛН
小女孩把路人当成离世的妈妈,太感人了.#short #angel #clown
00:53
Чай будешь? #чайбудешь
00:14
ПАРОДИИ НА ИЗВЕСТНЫЕ ТРЕКИ
Рет қаралды 2,8 МЛН
Собеседование Data Science Junior: Вопросы и задания | Эльбрус Буткемп
48:51
Эльбрус Буткемп: школа программирования
Рет қаралды 954
Как учатся программисты? День из жизни школы программирования Elbrus Bootcamp
9:44
Эльбрус Буткемп: школа программирования
Рет қаралды 3,4 М.
JavaScript - 6 задач на собеседовании + решение
20:28
Василий Муравьев
Рет қаралды 15 М.
Кто такие Middle разработчики. Разница Junior Middle Senior
9:26
Обучение программированию с 0 за 3 месяца. Школа Elbrus Bootcamp
14:59
Эльбрус Буткемп: школа программирования
Рет қаралды 4,7 М.
🍟Best French Fries Homemade #cooking #shorts
00:42
BANKII
Рет қаралды 57 МЛН