я уже месяц пытаюсь написать курсовую по хешированию и работа так тянулась , писала сама не понимая что пишу, но после твоего видео... Это лучшее видео из всех просмотренных) все поняла и вот уже написала половину курсовой и завтра еще продолжу и думаю, что допишу до конца) Спасибо за твой труд! Не представляешь как я тебе благодарна) Десятки сайтов и других видео об этой теме мало чего дали, но именно твоё видео стало толчком к осознанному написанию курсовой))) Подписалась тут же)
Жесть, вот пишешь ты код, а на деле видишь только верхушку айсберга, вместе с твоими видео можно окунуться в самую глубину и понять, что ты ничего не знаешь, как все устроено на самом деле. Спасибо тебе за твою работу, которая мотивирует продвигаться в изучении)
Это называется уровнем абстракции. Без этого ни одна программа не была бы написана, т.к. никто не может держать в голове всё. А так, ты гоняешь свои онклики, не особо парясь, чем в это время занимаются электроны в транзисторах. И не только интересно, а и полезно, иногда узнать, как это работает под капотом.
Первый раз оставляю комментарий под видео. Вспоминаю своего препода, который сам не понимал, как это работает, так статью из matenit нормально не мог прочитать. Но после твоих видео появляется желание открыть IDE и начать: перепивать код, добавить новое алгоритмы, поломать его и тем самым разобраться ещё практически. Это не программирование - это искусство. Браво, маэстро! :)
крайне крутой контент, спасибо большое. к сожалению или счастью я не смог найти даже аналогов такого качества. доступно, красиво, интересно. было бы крайне круто ещё послушать про деревья, красно чёрные и про set
Спасибо большое, очень интересно объясняешь и что важно, на низком уровне абстракции, чего очень не хватает множеству других источников. Спасибо тебе за труд, ты крутой!
"Написание кода, который не будет использован где-то в продакшене, считается бессмысленной тратой времени." Тестировщики и аналитики в этот момент напряглись, я думаю)
Лайк, как всегда. Для совсем начинающих из целевой аудитории ролика подойдёт книга П. Луридас. "Алгоритмы для начинающих. Теория и практика для разработчика.". В главе "Гардероб, коллизия и слот" всё разложено по полочкам.
лайк за объяснение, хорошо и понятно объяснил тему которую многие не сразу понимают. дизлайк за рекламу платформы, что не то что не помогает в получении профессии, а напротив мешает.
Очень полезный ролик, помог мне разобраться в хештаблицах! Но только в момент, когда ты рассказывал про то, что размеры массива нельзя брать числа представляемые 2^k - 1, я не мог понять, почему, и вот только после того как ты рассказал про то, что сам хеш мы будем рассчитывать, умножая на число вида 2^k - 1, тогда уже стало понятно. Надо бы поменять местами эти две части видео
Смотрю и думаю: это ж сколько программисты в прошлом морочились, чтобы такое сделать, а сейчас можно за 5 секунд написать вызов нужного метода и не запариваться
Было бы интересно услышать про разные виды хеширование (хэш-алгоритмы) с ключом, например, можно ли доверять JWT-токенам, если в них дано a - информация(данные в base64), b - результат(подпись), и надо найти с - ключ(secret)?
Смотрел этот канал раньше из-за крутой подачи. Когда поступил на программного инженера, этот канал стал для меня спасением. Спасибо, Алек ❤️ Вот бы преподы в вузе так же материал разбирали ;(
Столкнулся тут с оптимальным поиском, почитывая какую-то книгу… была приведена ссылка на статью о том, что оптимальный поиск задан как суперпозиция поиска в глубину и ширину с разными весами, и веса подобраны в статье эмпирически. Поистине нет предела совершенству, некорректных мат задач тьма тьмущая, и огромная зияющая дыра в развитии методов их решений. Чем дальше заходим с развитием выч техники, тем больше проблем для решения)
Очередное прекрасное видео про доступные знания, спасибо тебе Алек! За свой опыт (C,C#,Python,Js) не разу не притрагивался к хеш-таблицам только с открытым ртом смотрел как работает sha256 и думал о том какой вообще должна быть хеш-функция чтобы исключить коллизии потом понял что буду говорить что это невозможно пока кто нибудь не сделает такую реализацию наверно это уже и не будут называть страшным словом хеш-функция. Так вот я думаю что скорее всего этим типом хранения данных я займусь в следующим году)))
Интересно, что же будет, если запросить у хэш-таблицы значение по ключу, которого нет, но хэш которого совпадает тем ключом, которой есть в таблице? Ведь не каждый же элемент хэш-таблицы есть связный список?
От 0 до (2^32)-1 в инт может поместится значений. Если мы говорим что хэш 32бита то на все равно положительное там число или отрицательные, мы все равно будем его использовать поэтому для наглядности чтения его записывают как unsigned int. Или я что то не понял?
В конце (выбор хэш-функции), надо полагать, имелось в виду не "создание объекта В хэш-таблице", а "создание объекта хэш-таблицы". И еще мне не совсем понятно, при чем тут "взлом". Специально выбирать данные для максимизации числа коллизий - это достаточно странное занятие. Не уверен, что в реальной жизни можно с этим столкнуться, учитывая, если только вместо произвольных данных для вставки не выбирать одинаковые, приводящие к коллизиям.
чего я в хешировании не понимаю, так это как именно ускоряется доступ к данным без необходимости прохода по всем данным. Когда работал с размерами в 2-4 Гб файлов то моя программа делал все вычисления за 5 часов, а использование хеширования свело работу к
А почему для 32-битного инта возможно только 2^31 - 1 значений хэш-функции (см. 5:13)? В Python отрицательные значения хэш-фукции совершенно точно возможны даже у объектов самых базовых типов, и что мешает сопоставить номера строк в хэш-таблицы в том числе и отрицательным значениям хэш-функции? Почему не честные 2^32?
вопрос: откуда взято, что при модуле 2^k -1 при делении строки(я так понимаю набор char-ов cклеенных) на такой модуль, получится то же, что и при любой перестановке char-ов и повторении операции с ней аналогично? Меня просто интересует какой-то учебник или материалы, где подобные глубокие штуки выводятся. Не уверен даже, есть ли это в Кормене или в Кнуте.
Доброго дня! на какой структуре данных лучше всего реализовать хэш таблицу (ключ-значение) для миллиарда записей. нужно делать извлечение,вставку,удаление,изменение. удаление,изменение,вставка не должны снижать скорость извлечения ?
Автор, вы сами говорите, что необходимы базовые знания в математике для программирования и тут же рекламируете чудодейственные сжатые курсы, где ни материал нормально не подан (обратная связь фактически отсутствует, а раз нельзя задать уточняющие вопросы в реальном сремени - эффективность обваливается) ни практические задания не дают закрепить знания. Нормально материал подать, с шансом на реальное понимание - это в университете, исключительно на очном отделении, когда с преподавателем можно вживую обсудить а не печатать запрос и ждать, пока ответят. Даже в универе не всегда выходит научиться. А тут сжатые курсы. Я знаю человека, который у них начал обучение и собеседовал такого выпускника. Вы абсолютно правы - без базовых знаний математики и теории обработки и хранения данных (то, что на первых курсах не по одному семестру проходится) - ловить нечего. От этих курсов выигрывает только организатор. Ни знаний, ни навыков по их добыче (а этому университет и учит) люди не получают. "Говнокод" который пишут "программисты" после подобной экспресс подготовки не позволяет им работать в команде. Что дальше делать такому "программисту" после выпуска, вы бы лично его на работу взяли, будь вы lead или PM?
Разве кто-то ведётся по ссылке рекламы? Программирование почти не требует физических навыков. Это значит, что лишь цифровая информация понадобится для обучения. Раз в интернете можно найти всё разрешённое и не, то почему бы не сыскать готовые материалы по нужной тематике? Новичкам зачастую нужны дороги изучения, чтобы не блуждать и изучить только необходимое для работы. Насколько известно, ИНФОЦЫГАНЕ используют синдром упущенной выгоды. Да вообще, что за тренд создавать курсы в пространстве СНГ? напишу для целеустремлённых. Курсы всегда раскрывают план или силлабус бесплатно. вот и вам темы, по которой становятся профи. Да, сертификат не получишь, но это неважно. Лучше ходить корочкой, чем сертификатами от инфоцыгане. Знающий программист не останется безработным. Стартапы в помощь.
Тут стоит также понимать, что изготовление подобного видео с такого качества анимацией - большой труд, поэтому должен оплачиваться, а как вы понимаете когда просмотров ещё не так много, рекламодателей выбирать не приходиться.
Таким образом автор дал тебе подсказку, что идти туда не надо) Все пробелы в знаниях математике можно закрыть в ходе самостоятельного обучения. Не нужно знать весь матан)))
Во-первых прошел ли ты сам эти курсы чтобы так рассказывать о них, во вторых - это реклама, в третьих реклама ресурса легального он не обманывает и все такое, а значит она правоверная и в четвертых любая работа должна оплачиваться
@@xmahz 1. Я собеседовал человека после них. И лично знаю того, кто на них учится. Пробовать что-то тухлое, чтобы узнать его вкус не обязательно 2. Есть разница, что рекламировать, именно о этом и моё сообщение. 3. При чем тут обман или что-то нелегальное? Я про это и не писал, остальное - ваши домыслы. 4. Должна. И что?
Разве нельзя проблему коллизии свести к приемлемому минимуму путём добавления соли к ключу, который в свою очередь сам есть строка фиксированной длины? Или путём получения индекса пересечением двух или даже более хэшей одного ключа?
Я вот очень долго думал над тем, зачем вообще придумали хэш таблицы, если по сути можно в разы проще реализовать через бинарное дерево, где значением будет выступать пара из ключа и значения. Но рассматривая снова хэш-таблицу в ролике, я вдруг понимаю, что так можно сделать не только через дерево, но и списком, массивом, динамическим массивом, просто именно реализация в виде хэширования с массивом позволяет обращаться к индексам за чуть не ли за константное время, к тому же по идее должно намного меньше занимать места. Но, вариант с деревом мне так же очень нравится, потому что получаешь вдобавок отсортированность и быстрый поиск(хотя, с хэшированием тоже поиск быстрый, просто хэшируешь искомый ключ, и если он попадается в индексе, то значит нашел).
Зачем работать над коллизиями таблицы, если можно изменить функцию хэширования так, что бы банально не выходило два индекса, типо делить, брать модуль и домножать пока не получится уникальный индекс?
5:09 неверно. в беззнаковом целом (а для хранения индекса нужен именно беззнаковый тип, т.к отрицательных индексов не бывает) ни одного бита не "уходит под знак" - поэтому и называется БЕЗзнаковое. например 8битное беззнаковое целое может хранить число от 0 до 2^8-1 то есть от 0 до 255. почему минус 1? почему не до 256? потому что нумерация начинается от нуля, а от 0 до 7 - это 8 чисел. количество возможных значений для типа = два в степени количество бит в нём. значит если хранить в них положительные и ноль то максимальное будет 2^x-1. если бы было верно то что сказал автор ("самый старший бит уходит под знак") то ЦЕЛЫЙ БИТ бы уходил под знак, что сокращало бы максимальное значение не на один а ВДВОЕ. то есть если хранить в 8 битах целое со знаком то значения могут быть от -128 до +127 (а не до 255). то есть до 2^(x-1)-1 а не (2^x)-1
Миф про то, что не нужно знать ничего за пределами своих прямых обязанностей порождён теми, кто заинтересован, чтобы программисты пахали, никуда не стремились и умерли на работе. Современный программист -- почти полный аналог фабричного рабочего 19го века.
После первого просмотра осталось очень много открытых вопросов, но закрывать их не вижу смысла, так как я на своем пути пока не сталкивался с необходимостью понимать внутреннее устройство. Может быть изза того что я новичок. Хз
Массив Tuple ? 2 массива string ? Двумерный массив? Меиод поиска И всё. Смысл этого? Скорость. Ладно. Я Контент интересный, спасибки Алекс. Как обычно информативно и без лишнего.
Привет , анимация не перекроет то, что всё скомкано. Человек , который первый раз знакомиться с этой темой, просто н проймет. Может стоит останавливаться на некоторых моментах. Не раскидывать код по разным частям экрана. Может вместо c#(это вроде он?) стоит использовать псевдокод?
Почему 32 бита, если int? Int разве не зависит от архитектуры? Но это для примера, взятого из головы, ладно. Другой вопрос: вот есть хэш по какому-то ключу. Т.е. хранится хеш (строчка, которая получилась по определенному значению) и есть значение. Случается коллизия, т.е. получился такой же хеш по другому значению. Мы создаем связный список, ссылку на next храним в значении на объект, в котором сохранено не хешированное значение ключа и значения. Что со значением предыдущим? Т.е. и без коллизий хранится по хеш адресу объект с ключом (первоначальным) и значением? А зачем тогда вообще хеш? Мы же все равно храним первоначальный ключ? Кто вумный? Кто расскажет?
Алек, спасибо за информативный контент! Помнится, ты говорил в одном из роликов, что устроишь голосование в телеге на тему создания подробного, но платного, обучающего курса. Скажи ещё жива эта идея?
Телеграм-канал: t.me/Alek_OS
я уже месяц пытаюсь написать курсовую по хешированию и работа так тянулась , писала сама не понимая что пишу, но после твоего видео... Это лучшее видео из всех просмотренных) все поняла и вот уже написала половину курсовой и завтра еще продолжу и думаю, что допишу до конца) Спасибо за твой труд! Не представляешь как я тебе благодарна) Десятки сайтов и других видео об этой теме мало чего дали, но именно твоё видео стало толчком к осознанному написанию курсовой))) Подписалась тут же)
Понимаю, что поздно пишу. Как курсовую сдали?
Восхищён трудолюбием в изготовлении этой анимации ..
Жесть, вот пишешь ты код, а на деле видишь только верхушку айсберга, вместе с твоими видео можно окунуться в самую глубину и понять, что ты ничего не знаешь, как все устроено на самом деле. Спасибо тебе за твою работу, которая мотивирует продвигаться в изучении)
Это называется уровнем абстракции. Без этого ни одна программа не была бы написана, т.к. никто не может держать в голове всё. А так, ты гоняешь свои онклики, не особо парясь, чем в это время занимаются электроны в транзисторах. И не только интересно, а и полезно, иногда узнать, как это работает под капотом.
@@ИмяФамилия-э4ф7в, да, только иногда голова от такого болит...
@@heterometrus9873 наоборот не болит, если оставаться абстрактным
@@AlexandroLavichez, я про последнее предложение
Только это не глубина, а всё ещё вершина айсберга)
Мда. Сказать круто - ничего не сказать! Сам материал, сама форма подачи - высший класс! Низкий поклон за такой шедевр!
Первый раз оставляю комментарий под видео. Вспоминаю своего препода, который сам не понимал, как это работает, так статью из matenit нормально не мог прочитать. Но после твоих видео появляется желание открыть IDE и начать: перепивать код, добавить новое алгоритмы, поломать его и тем самым разобраться ещё практически. Это не программирование - это искусство. Браво, маэстро! :)
не удержался ещё раз прокоментирую. вот это шедевр. здоровья автору и прибыли за старания
крайне крутой контент, спасибо большое. к сожалению или счастью я не смог найти даже аналогов такого качества. доступно, красиво, интересно. было бы крайне круто ещё послушать про деревья, красно чёрные и про set
Спасибо Alek, так долго ждал эту тему.
Первый. Красава,ты лучший братишка спасибо тебе,любим тебя друже
Спасибо большое, очень интересно объясняешь и что важно, на низком уровне абстракции, чего очень не хватает множеству других источников. Спасибо тебе за труд, ты крутой!
Спасибо за видео, полезная тема и подача информации как всегда на высшем уровне!
Алек, спасибо большое за видео. Ты рассказываешь интересно то, что я долго обходила стороной
Приветствую. Отличное высказывание - Знание должны быть достойные и доступные!
"Написание кода, который не будет использован где-то в продакшене, считается бессмысленной тратой времени." Тестировщики и аналитики в этот момент напряглись, я думаю)
Нет. Потому что их код сам по себе является продуктом, применяемым ими же самими)
Алек, большое спасибо. Благодаря тебе смог сдать вопрос преподу по теме. Ты так классно и доходчиво объясняешь! Побольше бы такого контента)
Большое спасибо за этот ролик в целом и объяснение, продолжайте!
Спасибо большое за интересное видео!!!
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
extremecode🐤
Лайк, как всегда. Для совсем начинающих из целевой аудитории ролика подойдёт книга П. Луридас. "Алгоритмы для начинающих. Теория и практика для разработчика.". В главе "Гардероб, коллизия и слот" всё разложено по полочкам.
Как раз хотел увидеть видео по этой теме, спасибо!
Круто, спасибо за видос!
четко изложен материал, не нужно скучную часовую лекцию смотреть чтобы понять)
классное видео, анимации вообще огонь, даже засматривался иногда, отвлекаясь от сути
черт возьми,как же я обожаю этот канал за подробности) спасибо
Большое спасибо, отличный разбор темы!
Спасибо за ролик,хороший получился. Можно ещё видео про графы и способы их хранения
Спасибо за видео! Было бы интересно от тебя услышать про многопоточность)
Спасибо большое! Видео огонь! Как и всегда
Надо по федеральным каналам такое крутить
Спасибо за ролик!
Крайне полезно и интересно!
лайк за объяснение, хорошо и понятно объяснил тему которую многие не сразу понимают.
дизлайк за рекламу платформы, что не то что не помогает в получении профессии, а напротив мешает.
Спасибо за видео. Коммент в поддержку!
Отличная подача, красиво, ёмко, доходчево, подписка продана 🙃
Очень полезный ролик, помог мне разобраться в хештаблицах! Но только в момент, когда ты рассказывал про то, что размеры массива нельзя брать числа представляемые 2^k - 1, я не мог понять, почему, и вот только после того как ты рассказал про то, что сам хеш мы будем рассчитывать, умножая на число вида 2^k - 1, тогда уже стало понятно. Надо бы поменять местами эти две части видео
Привет,очень хорошие видосы у тебя,если можно давай про многопоточность.думаю многим будет интересно.
единственный и неповторимый канал!
большое спасибо за все видео так держать 👍👍👍
Это очень годно, спасибо за труды!
32-битный int имеет 1
Класс, как раз делаю практическую работу по структурам данных
Крайне полезное видео. Спасибо
лайк в поддержку канала!
Продолжай в том же духе 🙂👍🏻
Очень круто!!!
Круто!
Смотрю и думаю: это ж сколько программисты в прошлом морочились, чтобы такое сделать, а сейчас можно за 5 секунд написать вызов нужного метода и не запариваться
Я наконец смог осознать, как это работает. Спасибо тебе огромное
Просто супер, молодец, очень классно все разложил 👍👍👍
Было бы интересно услышать про разные виды хеширование (хэш-алгоритмы) с ключом, например, можно ли доверять JWT-токенам, если в них дано a - информация(данные в base64), b - результат(подпись), и надо найти с - ключ(secret)?
Сверхкомплексно, превосходное видео
Смотрел этот канал раньше из-за крутой подачи. Когда поступил на программного инженера, этот канал стал для меня спасением. Спасибо, Алек ❤️
Вот бы преподы в вузе так же материал разбирали ;(
1:44 перепутал местами HT.get и HT.delete но все равно спасибо за такое тщательно проработанное объяснение
Как вовремя, как раз в вузе проходим)
как не вовремя, уже прошли((
вообще круто объяснил хотелось более длинные видео с более подробными объяснениями
Не сказал бы, что я узнаю что-то реально новое из твоих видосов, но то, что они упорядочивают имеющиеся данные в башке - факт. Спасибо :)
Столкнулся тут с оптимальным поиском, почитывая какую-то книгу… была приведена ссылка на статью о том, что оптимальный поиск задан как суперпозиция поиска в глубину и ширину с разными весами, и веса подобраны в статье эмпирически. Поистине нет предела совершенству, некорректных мат задач тьма тьмущая, и огромная зияющая дыра в развитии методов их решений. Чем дальше заходим с развитием выч техники, тем больше проблем для решения)
Очень крутой видос
какое умное видео, действительно а зачем вообще говорить о том что всё решает увеличение размера хеша
принцип Дирихле очень круто объяснил
1:32 Как минимум в Python не все типы данных могут быть ключами, потому что у неизменяемых типов метод __hash__ не переопределён
Очередное прекрасное видео про доступные знания, спасибо тебе Алек! За свой опыт (C,C#,Python,Js) не разу не притрагивался к хеш-таблицам только с открытым ртом смотрел как работает sha256 и думал о том какой вообще должна быть хеш-функция чтобы исключить коллизии потом понял что буду говорить что это невозможно пока кто нибудь не сделает такую реализацию наверно это уже и не будут называть страшным словом хеш-функция. Так вот я думаю что скорее всего этим типом хранения данных я займусь в следующим году)))
*Осталось совсем немного*
@@nakidai да))))
Помогите пожалуйста! Что значит "все перестановки одной и той же строки ключа ... "? 13:56
Интересно, что же будет, если запросить у хэш-таблицы значение по ключу, которого нет, но хэш которого совпадает тем ключом, которой есть в таблице? Ведь не каждый же элемент хэш-таблицы есть связный список?
Самое крутое в этой рекламе это «индивидуальный проект» у всех одинаковый 😅
Комментарий в поддержку автора
От 0 до (2^32)-1 в инт может поместится значений. Если мы говорим что хэш 32бита то на все равно положительное там число или отрицательные, мы все равно будем его использовать поэтому для наглядности чтения его записывают как unsigned int.
Или я что то не понял?
спасибо!
Мне очень нравится твой канал и контент
Ты лучший (из тех что я знаю) в своём роде
p.s. Откуда такой классный шрифт? Сам рисовал?
Не понял, а почему хеш с множителем 2^k по модулю (2^k) - 1независимо от перестановки букв в слову dog выдаёт индекс 4?
Ля! Я б даже проданатил бы тему от Тебя. Хочу услышать про многопоточность в твоей интерпретации
В конце (выбор хэш-функции), надо полагать, имелось в виду не "создание объекта В хэш-таблице", а "создание объекта хэш-таблицы". И еще мне не совсем понятно, при чем тут "взлом". Специально выбирать данные для максимизации числа коллизий - это достаточно странное занятие. Не уверен, что в реальной жизни можно с этим столкнуться, учитывая, если только вместо произвольных данных для вставки не выбирать одинаковые, приводящие к коллизиям.
круто, однако!
чего я в хешировании не понимаю, так это как именно ускоряется доступ к данным без необходимости прохода по всем данным. Когда работал с размерами в 2-4 Гб файлов то моя программа делал все вычисления за 5 часов, а использование хеширования свело работу к
5:04 Если у тебя бит уходит под знак, то так и надо писать от -2^31, а не от нуля
А почему для 32-битного инта возможно только 2^31 - 1 значений хэш-функции (см. 5:13)? В Python отрицательные значения хэш-фукции совершенно точно возможны даже у объектов самых базовых типов, и что мешает сопоставить номера строк в хэш-таблицы в том числе и отрицательным значениям хэш-функции? Почему не честные 2^32?
А на сколько (в процентах) отличаются 2^32 и 2^31 - 1 ?
и как критична "эта разница" при данном "количестве" значений хэш-функции ?
@@78Spaceman отличие в 2 раза
вопрос: откуда взято, что при модуле 2^k -1 при делении строки(я так понимаю набор char-ов cклеенных) на такой модуль, получится то же, что и при любой перестановке char-ов и повторении операции с ней аналогично?
Меня просто интересует какой-то учебник или материалы, где подобные глубокие штуки выводятся.
Не уверен даже, есть ли это в Кормене или в Кнуте.
Доброго дня! на какой структуре данных лучше всего реализовать хэш таблицу (ключ-значение) для миллиарда записей. нужно делать извлечение,вставку,удаление,изменение. удаление,изменение,вставка не должны снижать скорость извлечения ?
Автор, вы сами говорите, что необходимы базовые знания в математике для программирования и тут же рекламируете чудодейственные сжатые курсы, где ни материал нормально не подан (обратная связь фактически отсутствует, а раз нельзя задать уточняющие вопросы в реальном сремени - эффективность обваливается) ни практические задания не дают закрепить знания. Нормально материал подать, с шансом на реальное понимание - это в университете, исключительно на очном отделении, когда с преподавателем можно вживую обсудить а не печатать запрос и ждать, пока ответят. Даже в универе не всегда выходит научиться. А тут сжатые курсы. Я знаю человека, который у них начал обучение и собеседовал такого выпускника. Вы абсолютно правы - без базовых знаний математики и теории обработки и хранения данных (то, что на первых курсах не по одному семестру проходится) - ловить нечего. От этих курсов выигрывает только организатор. Ни знаний, ни навыков по их добыче (а этому университет и учит) люди не получают. "Говнокод" который пишут "программисты" после подобной экспресс подготовки не позволяет им работать в команде. Что дальше делать такому "программисту" после выпуска, вы бы лично его на работу взяли, будь вы lead или PM?
Разве кто-то ведётся по ссылке рекламы? Программирование почти не требует физических навыков. Это значит, что лишь цифровая информация понадобится для обучения. Раз в интернете можно найти всё разрешённое и не, то почему бы не сыскать готовые материалы по нужной тематике? Новичкам зачастую нужны дороги изучения, чтобы не блуждать и изучить только необходимое для работы. Насколько известно, ИНФОЦЫГАНЕ используют синдром упущенной выгоды. Да вообще, что за тренд создавать курсы в пространстве СНГ? напишу для целеустремлённых. Курсы всегда раскрывают план или силлабус бесплатно. вот и вам темы, по которой становятся профи. Да, сертификат не получишь, но это неважно. Лучше ходить корочкой, чем сертификатами от инфоцыгане. Знающий программист не останется безработным. Стартапы в помощь.
Тут стоит также понимать, что изготовление подобного видео с такого качества анимацией - большой труд, поэтому должен оплачиваться, а как вы понимаете когда просмотров ещё не так много, рекламодателей выбирать не приходиться.
Таким образом автор дал тебе подсказку, что идти туда не надо) Все пробелы в знаниях математике можно закрыть в ходе самостоятельного обучения. Не нужно знать весь матан)))
Во-первых прошел ли ты сам эти курсы чтобы так рассказывать о них, во вторых - это реклама, в третьих реклама ресурса легального он не обманывает и все такое, а значит она правоверная и в четвертых любая работа должна оплачиваться
@@xmahz 1. Я собеседовал человека после них. И лично знаю того, кто на них учится. Пробовать что-то тухлое, чтобы узнать его вкус не обязательно 2. Есть разница, что рекламировать, именно о этом и моё сообщение. 3. При чем тут обман или что-то нелегальное? Я про это и не писал, остальное - ваши домыслы. 4. Должна. И что?
Разве нельзя проблему коллизии свести к приемлемому минимуму путём добавления соли к ключу, который в свою очередь сам есть строка фиксированной длины? Или путём получения индекса пересечением двух или даже более хэшей одного ключа?
Почему нельзя ключ хранить также в массиве?
Я вот очень долго думал над тем, зачем вообще придумали хэш таблицы, если по сути можно в разы проще реализовать через бинарное дерево, где значением будет выступать пара из ключа и значения. Но рассматривая снова хэш-таблицу в ролике, я вдруг понимаю, что так можно сделать не только через дерево, но и списком, массивом, динамическим массивом, просто именно реализация в виде хэширования с массивом позволяет обращаться к индексам за чуть не ли за константное время, к тому же по идее должно намного меньше занимать места. Но, вариант с деревом мне так же очень нравится, потому что получаешь вдобавок отсортированность и быстрый поиск(хотя, с хэшированием тоже поиск быстрый, просто хэшируешь искомый ключ, и если он попадается в индексе, то значит нашел).
Зачем работать над коллизиями таблицы, если можно изменить функцию хэширования так, что бы банально не выходило два индекса, типо делить, брать модуль и домножать пока не получится уникальный индекс?
Я не понял! Зачем ТГ канал если про видос мы узнаем из ютуба? Не надо так!
ps За видос мега-лайк! Оч круто! Пожалуйста не пропадай!
Не очень понял как работает случай , когда у нас место в массиве заканчивается. Может кто нибудь пояснить? И rehash
Связанные списки в ячейках хэштаблицы? Ну да, ну да, технологии 90х еще живее всех живых.
никто не использует int для длины массива) Зачем упоминать про знак, если всегда есть uint?
5:09 неверно. в беззнаковом целом (а для хранения индекса нужен именно беззнаковый тип, т.к отрицательных индексов не бывает) ни одного бита не "уходит под знак" - поэтому и называется БЕЗзнаковое. например 8битное беззнаковое целое может хранить число от 0 до 2^8-1 то есть от 0 до 255. почему минус 1? почему не до 256? потому что нумерация начинается от нуля, а от 0 до 7 - это 8 чисел. количество возможных значений для типа = два в степени количество бит в нём. значит если хранить в них положительные и ноль то максимальное будет 2^x-1. если бы было верно то что сказал автор ("самый старший бит уходит под знак") то ЦЕЛЫЙ БИТ бы уходил под знак, что сокращало бы максимальное значение не на один а ВДВОЕ. то есть если хранить в 8 битах целое со знаком то значения могут быть от -128 до +127 (а не до 255). то есть до 2^(x-1)-1 а не (2^x)-1
какой-то винегрет из информации которая пролетела перед глазами на первой космической
Миф про то, что не нужно знать ничего за пределами своих прямых обязанностей порождён теми, кто заинтересован, чтобы программисты пахали, никуда не стремились и умерли на работе. Современный программист -- почти полный аналог фабричного рабочего 19го века.
После первого просмотра осталось очень много открытых вопросов, но закрывать их не вижу смысла, так как я на своем пути пока не сталкивался с необходимостью понимать внутреннее устройство. Может быть изза того что я новичок. Хз
Массив Tuple ? 2 массива string ? Двумерный массив?
Меиод поиска
И всё. Смысл этого? Скорость. Ладно. Я
Контент интересный, спасибки Алекс. Как обычно информативно и без лишнего.
Привет , анимация не перекроет то, что всё скомкано. Человек , который первый раз знакомиться с этой темой, просто н проймет. Может стоит останавливаться на некоторых моментах. Не раскидывать код по разным частям экрана. Может вместо c#(это вроде он?) стоит использовать псевдокод?
Так это и есть псевдокод
Немогли бы вы уточнить про веб разработчиков?
this is such a relevant video
так что такое хэш-таблица в итоге? для чего они нужны?
Почему 32 бита, если int? Int разве не зависит от архитектуры? Но это для примера, взятого из головы, ладно. Другой вопрос:
вот есть хэш по какому-то ключу. Т.е. хранится хеш (строчка, которая получилась по определенному значению) и есть значение. Случается коллизия, т.е. получился такой же хеш по другому значению. Мы создаем связный список, ссылку на next храним в значении на объект, в котором сохранено не хешированное значение ключа и значения. Что со значением предыдущим? Т.е. и без коллизий хранится по хеш адресу объект с ключом (первоначальным) и значением? А зачем тогда вообще хеш? Мы же все равно храним первоначальный ключ?
Кто вумный? Кто расскажет?
Так, я прошарил. Вначале не допёр. Хеш - прямой адрес к ячейки, а не какая-то строка, типо результат жизнедеятельности md5
Алек, спасибо за информативный контент! Помнится, ты говорил в одном из роликов, что устроишь голосование в телеге на тему создания подробного, но платного, обучающего курса. Скажи ещё жива эта идея?
Ролик хорош, но 2 рекламы за одно видео это перебор
В начале по превьюхи подумал,что это очередной выпуск варламова
Спасибо! Пойду тик-токи снимать